/* Shared screen styles. Keep Excel/PDF templates and browser print layouts independent. */
@media screen {
  :root {
    --ui-font: "BIZ UDPGothic", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
    --ui-text-sm: 13px;
    --ui-text-label: 14px;
    --ui-text-body: 16px;
    font-size: var(--ui-text-body);
    --ui-heading-page: 26px;
    --ui-heading-section: 20px;
    --ui-heading-card: 17px;
    --ui-ink: #203e37;
    --ui-muted: #5b6e64;
    --ui-accent: #244c41;
    --ui-accent-hover: #183c32;
    --ui-accent-soft: #e8f0e9;
    --ui-select-surface: #fff;
    --ui-select-segment: #f1f3f0;
    --ui-canvas: #f3f1eb;
    --ui-surface: #fffefa;
    --ui-border: #d8ddd3;
    --ui-control-border: #a9bbb0;
    --ui-warning: #7b541b;
    --ui-warning-soft: #fff4de;
    --ui-danger: #a33725;
    --ui-danger-soft: #fff0eb;
    --ui-radius: 10px;
    --ink: var(--ui-ink);
    --ink-soft: var(--ui-muted);
    --forest: var(--ui-accent);
    --forest-deep: var(--ui-accent-hover);
    --forest-pale: var(--ui-accent-soft);
    --green: var(--ui-accent);
    --petrol: var(--ui-ink);
    --paper: var(--ui-canvas);
    --paper-bright: var(--ui-surface);
    --paper-deep: var(--ui-accent-soft);
    --line: var(--ui-border);
    --line-strong: var(--ui-control-border);
    --terra: var(--ui-accent);
    --warning: var(--ui-warning);
    --error: var(--ui-danger);
    --vermillion: var(--ui-danger);
    --shadow: 0 4px 18px rgb(24 62 51 / 4%);
  }

  /* A single family overrides the older per-screen font shorthands. */
  body, body :is(h1, h2, h3, h4, button, input, select, textarea, summary,
    .brand strong, .current-child strong, .entry-header span, .workspace-page-title) {
    font-family: var(--ui-font) !important;
  }
  body, body.ai-page, body.crieba-login {
    color: var(--ui-ink);
    background: var(--ui-canvas);
    font-size: var(--ui-text-body);
    line-height: 1.7;
  }
  .workspace { color: var(--ui-ink); }
  :is(h1, h2, h3, h4) { text-wrap: balance; }
  :is(p, dd, li) { text-wrap: pretty; }
  :is(button, input, select, textarea, summary) { line-height: 1.6; }
  :is(h1, h2, h3, h4, button, label, th) { letter-spacing: normal; }
  :is(input, select, textarea) { color: var(--ui-ink); accent-color: var(--ui-accent); }
  :is(button, input, select, textarea, a, summary):focus-visible {
    outline: 2px solid var(--ui-accent); outline-offset: 3px;
  }
  .field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible,
  .button:focus-visible, .section-tabs button:focus-visible,
  .entry-writing-footer .entry-writing-toggle:focus-visible {
    outline: 2px solid var(--ui-accent); outline-offset: 3px; box-shadow: none;
  }

  /* Same role, same size: page title, section title, card title, metadata. */
  body h1, .page-heading h1, .reference-heading h1, .login-card h1, .crieba-login .login-card h1 {
    color: var(--ui-ink); font-size: var(--ui-heading-page); font-weight: 700; line-height: 1.45;
    letter-spacing: normal;
  }
  body h2, .page-view h2, .dialog-heading h2, .service-card h2,
  .ai-page h2, #view-documents .document-lane h2, .line-workspace .service-card h2,
  #assessment-editor-form .dialog-heading h2, #view-service-settings .service-card > h2 {
    color: var(--ui-ink); font-size: var(--ui-heading-section); font-weight: 700; line-height: 1.5;
    letter-spacing: normal;
  }
  body h3, .page-view h3, .record-card h3, .ai-page h3,
  .reference-card > h2, .entry-card h2, .reference-section-title,
  #view-admin .staff-card h2, #view-documents .document-reference-shared summary strong,
  .assessment-daily-support > h3, .daily-support-item > h4 {
    color: var(--ui-ink); font-size: var(--ui-heading-card); font-weight: 700; line-height: 1.6;
  }
  .workspace-page-title { font-size: var(--ui-heading-section); font-weight: 700; letter-spacing: normal; }
  .person-workspace-bar[hidden] { display: none !important; }
  .person-workspace-bar:not([hidden]) { position: sticky; z-index: 14; top: 76px; display: flex; align-items: center; gap: 14px; padding: 10px clamp(22px, 4vw, 54px); border-bottom: 1px solid var(--ui-border); background: rgb(255 254 250 / 96%); box-shadow: 0 5px 16px rgb(24 62 51 / 5%); backdrop-filter: blur(12px); }
  .person-workspace-bar .current-child { width: min(28vw, 280px); min-width: 200px; flex: 0 1 280px; padding: 8px 12px; border-radius: 10px; box-shadow: none; text-align: left; }
  .person-workspace-bar .current-child::after { display: none; }
  .person-workspace-bar .current-child .eyebrow { display: flex; justify-content: space-between; gap: 10px; width: 100%; font-size: 11px; }
  .current-child-change { color: var(--ui-accent); font-size: 11px; font-style: normal; font-weight: 700; white-space: nowrap; }
  .person-workspace-bar .current-child strong { margin: 1px 0; font-size: var(--ui-text-body); }
  .person-workspace-bar .current-child span:last-child { font-size: 11px; }
  .person-workspace-nav { display: flex; min-width: 0; flex: 1; gap: 6px; overflow-x: auto; scrollbar-width: thin; }
  .person-workspace-nav button { min-height: 42px; flex: 1 0 auto; padding: 8px 16px; border: 1px solid transparent; border-radius: 9px; color: var(--ui-muted); background: transparent; font-size: var(--ui-text-label); font-weight: 700; white-space: nowrap; }
  .person-workspace-nav button:hover { color: var(--ui-accent); background: var(--ui-accent-soft); }
  .person-workspace-nav button[aria-current="page"] { border-color: var(--ui-accent); color: #fff; background: var(--ui-accent); }
  .eyebrow, .reference-date, .service-muted, .line-secondary,
  .field-help, .author, .ai-page .help, .crieba-login .login-intro,
  .field small, .record-meta, .record-update-meta, .daily-support-intro,
  .daily-support-example, .daily-support-pair .field > .daily-support-help {
    color: var(--ui-muted); font-size: var(--ui-text-sm); line-height: 1.7; letter-spacing: normal;
  }
  .eyebrow { font-weight: 700; }
  .detail-grid dt, .field > span, .field > label > span, .reference-filter .field > span,
  .ai-page label, .login-card label, .crieba-login .login-card label,
  .entry-card label, .checkbox-field legend, .editor-group > legend {
    color: var(--ui-ink); font-size: var(--ui-text-label); font-weight: 700; line-height: 1.6;
  }
  .detail-grid dd, .record-body, .reference-journal-body,
  #journal-list .journal-field dd, .memo-body, .line-message-body {
    color: var(--ui-ink); font-size: var(--ui-text-body); line-height: 1.8;
  }
  .detail-grid dd { font-weight: 400; }
  .reference-list-row strong, .reference-journal-entry strong { font-size: var(--ui-text-body); font-weight: 700; }
  .reference-list-row small, .reference-journal-entry small, .reference-memo small,
  .reference-empty, .reference-profile dt { color: var(--ui-muted); font-size: var(--ui-text-sm); }

  .client-directory-heading { margin-bottom: 22px; }
  .client-directory-heading p { margin: 0; color: var(--ui-muted); font-size: var(--ui-text-label); line-height: 1.7; }
  #view-service-clients .client-search { display: grid; grid-template-columns: minmax(0, 1fr) 200px; gap: 18px; align-items: end; margin-bottom: 18px; padding: 20px; border: 1px solid var(--ui-border); border-radius: 12px; background: var(--ui-surface); }
  #view-service-clients .client-search .field { min-width: 0; max-width: none; }
  #view-service-clients .client-search .field > span { font-size: var(--ui-text-label); }
  .client-results-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 38px; margin-bottom: 10px; }
  .client-results-heading p { margin: 0; color: var(--ui-muted); font-size: var(--ui-text-label); }
  .client-results-heading .button { min-height: 36px; padding: 5px 12px; font-size: var(--ui-text-sm); }
  .client-list { margin: 0; padding: 0; list-style: none; border: 1px solid var(--ui-border); border-radius: 12px; overflow: hidden; background: var(--ui-surface); }
  .client-list > li + li { border-top: 1px solid var(--ui-border); }
  .client-row.reference-list-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(120px, .45fr) auto 132px; gap: 22px; padding: 20px 24px; border: 0; border-radius: 0; min-height: 94px; }
  .client-row:hover, .client-row.is-last-opened { background: var(--ui-accent-soft); }
  .client-row:focus-visible { outline: 3px solid var(--ui-accent); outline-offset: -3px; }
  .client-identity { display: flex; align-items: center; gap: 16px; min-width: 0; }
  .client-avatar { display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 48px; border: 1px solid var(--ui-control-border); border-radius: 50%; color: var(--ui-accent); background: var(--ui-accent-soft); font-size: 22px; font-weight: 700; }
  .client-identity-copy { display: flex; align-items: flex-start; flex-direction: column; gap: 4px; min-width: 0; }
  .client-row .client-identity-copy strong { font-size: var(--ui-heading-section); line-height: 1.5; overflow-wrap: anywhere; }
  .client-grade, .client-code, .client-last-opened { color: var(--ui-muted); font-size: var(--ui-text-sm); }
  .client-code { display: grid; gap: 5px; overflow-wrap: anywhere; }
  .client-code > span:first-child { font-size: 11px; }
  .client-last-opened { color: var(--ui-accent); font-weight: 700; }
  .client-status { padding: 4px 9px; border-radius: 6px; background: var(--ui-accent-soft); color: var(--ui-accent); font-size: var(--ui-text-sm); white-space: nowrap; }
  .client-status[data-status="inactive"] { background: #eeeee8; color: var(--ui-muted); }
  .client-open { display: flex; justify-content: flex-end; align-items: center; gap: 12px; color: var(--ui-accent); font-size: var(--ui-text-label); font-weight: 700; white-space: nowrap; }
  .client-open > span { font-size: 24px; line-height: 1; }
  .client-empty { padding: 36px 20px; border: 1px solid var(--ui-border); border-radius: 12px; background: var(--ui-surface); text-align: center; }
  .client-empty strong { font-size: var(--ui-text-body); }
  .client-empty p { color: var(--ui-muted); font-size: var(--ui-text-label); }
  .client-tools-panel { margin-top: 20px; border: 1px solid var(--ui-border); border-radius: 10px; background: var(--ui-surface); }
  .client-tools-panel > summary { padding: 16px 20px; color: var(--ui-muted); font-size: var(--ui-text-label); font-weight: 700; cursor: pointer; }
  .client-tools-content { padding: 0 20px 20px; margin: 0; }
  .client-tools-content .reference-alert:last-child { margin-bottom: 0; }

  @media (max-width: 740px) {
    .client-row.reference-list-row { grid-template-columns: minmax(0, 1fr) auto; gap: 12px 16px; padding: 18px 16px; }
    .client-code { grid-column: 1; grid-row: 2; margin-left: 64px; gap: 3px; }
    .client-status { grid-column: 2; grid-row: 2; justify-self: end; }
    .client-open { grid-column: 2; grid-row: 1; }
  }
  @media (max-width: 480px) {
    #view-service-clients .client-search { grid-template-columns: minmax(0, 1fr); padding: 16px; gap: 14px; }
    .client-identity { gap: 10px; }
    .client-avatar { width: 36px; height: 36px; flex-basis: 36px; font-size: 18px; }
    .client-row .client-identity-copy strong { font-size: var(--ui-text-body); }
    .client-code { margin-left: 46px; }
    .client-open { gap: 6px; font-size: var(--ui-text-sm); }
  }

  /* Shared surfaces and controls across the workspace and standalone tools. */
  .detail-sheet, .subsection-card, .record-card, .guardian-card, .document-workspace,
  .document-lane, .admin-section, .staff-card, .facility-card, .workflow-card,
  .record-workspace, .service-card, .reference-card, .reference-list,
  .line-history-table, .entry-card, .memo-card, .ai-page section.card, .ai-page article {
    background: var(--ui-surface); border-color: var(--ui-border); box-shadow: var(--shadow);
  }
  .field input, .field select, .field textarea, .service-workspace input:not([type=checkbox]),
  .service-workspace select, .service-workspace textarea, .login-card input,
  .crieba-login .login-card input, .entry-card input:not([type=checkbox]),
  .entry-card select, .entry-card textarea, .ai-page input, .ai-page select, .ai-page textarea {
    color: var(--ui-ink); background: #fff; border-color: var(--ui-control-border);
    min-height: 50px; border-radius: 8px; font-size: var(--ui-text-body); font-weight: 400; line-height: 1.6;
  }
  .button, .service-workspace .button, .reference-actions .button, .reference-filter .button, .service-tabs .button,
  .line-panel-nav .button, .topbar .button, .entry-card button, .save-bar button,
  .ai-page button, .ai-page .button, .login-card form button, .crieba-login .login-card form button {
    min-height: 44px; padding: 10px 16px; border-radius: var(--ui-radius);
    font-size: var(--ui-text-label); font-weight: 700; line-height: 1.6; box-shadow: none;
  }
  .button.button-secondary, .button.button-quiet, .button.button-ghost,
  .reference-actions .button, .service-tabs .button, .line-panel-nav .button,
  .entry-card button, .save-bar .secondary, .ai-page button, .ai-page .quiet {
    color: var(--ui-accent); background: var(--ui-surface); border: 1px solid var(--ui-control-border);
  }
  .button.button-primary, .topbar .topbar-memo, .entry-card .primary, .save-bar .primary,
  .login-card form button, .crieba-login .login-card form button,
  .ai-page button[type=submit], .ai-page nav [aria-current],
  .service-tabs button[aria-current=page], .line-panel-nav .button[aria-current=page],
  .reference-actions [aria-current=page] {
    color: #fff; background: var(--ui-accent); border-color: var(--ui-accent);
  }
  .button.button-primary:hover, .topbar .topbar-memo:hover, .entry-card .primary:hover,
  .save-bar .primary:hover, .login-card form button:hover, .ai-page button[type=submit]:hover {
    background: var(--ui-accent-hover); border-color: var(--ui-accent-hover); transform: none;
  }
  .button.button-secondary:hover, .button.button-quiet:hover, .button.button-ghost:hover,
  .reference-actions .button:hover, .ai-page .quiet:hover {
    background: var(--ui-accent-soft); transform: none;
  }
  .button.button-danger { color: var(--ui-danger); background: var(--ui-danger-soft); border-color: var(--ui-danger); }
  .button.button-danger:hover { background: #f9e1d9; }
  .button.button-quiet[aria-pressed=true], #reorder-child-profile-button[aria-pressed=true] {
    color: var(--ui-accent); background: var(--ui-accent-soft); border-color: var(--ui-accent);
  }
  .reference-heading .button, .reference-alert-row .button, .service-actions .button {
    font-size: var(--ui-text-label); font-weight: 700;
  }
  .form-dialog > form { padding-bottom: 0; }
  .form-dialog .document-save-actions { border-top: 1px solid var(--ui-border); background: var(--ui-surface); }
  .section-tabs { border-color: var(--ui-border); background: var(--ui-accent-soft); box-shadow: none; }
  .section-tabs button { color: var(--ui-muted); font-size: var(--ui-text-label); font-weight: 700; }
  .section-tabs button[aria-selected=true] { color: #fff; background: var(--ui-accent); box-shadow: none; }
  .field-writing-footer .assessment-writing-toggle, .entry-writing-footer .entry-writing-toggle {
    color: var(--ui-muted); font-size: var(--ui-text-sm); background: transparent;
  }
  .field-writing-footer .assessment-writing-toggle:hover, .entry-writing-footer .entry-writing-toggle:hover {
    color: var(--ui-accent); background: var(--ui-accent-soft);
  }

  /* Navigation has its own dark surface, with the same accent as the actions. */
  .sidebar, .entry-header, .ai-page > header, .crieba-login .login-header {
    background: var(--ui-accent); border-color: var(--ui-accent-hover);
  }
  .primary-nav button { color: #e0eae4; font-size: var(--ui-text-label); font-weight: 700; }
  .primary-nav button[aria-current=page] { color: #fff; background: #396355; box-shadow: inset 3px 0 #dfb28c; }
  .primary-nav .nav-icon, .primary-nav .nav-icon svg { color: #c2d4c8; }
  .nav-group-label, .nav-more > summary, .sidebar-account .staff-context span { color: #c2d4c8; font-size: var(--ui-text-sm); letter-spacing: normal; }
  .sidebar-account { border-color: #567469; }
  .sidebar .brand strong, .entry-header > a:first-child { font-size: 22px; font-weight: 700; letter-spacing: normal; }
  .entry-header a, .ai-page > header a, .ai-page > header h1 { color: #fffefa; }
  .entry-header > a:first-child span { color: #d6e3db; font-size: var(--ui-text-sm); }
  .ai-page > header h1 { font-size: var(--ui-heading-section); }
  .topbar { background: var(--ui-surface); border-color: var(--ui-border); }
  .app-shell[data-view=service-home] .workspace-page-title { display: none; }
  @media (min-width: 861px) {
    .app-shell[data-view=service-home] .topbar { min-height: 0; padding: 0; border: 0; box-shadow: none; }
  }
  .topbar-memo::before { font-size: 18px; }
  .person-workspace-bar .current-child { color: var(--ui-muted); background: var(--ui-surface); border-color: var(--ui-border); }
  .person-workspace-bar .current-child strong { color: var(--ui-ink); }
  .person-workspace-bar .current-child span { color: var(--ui-muted); }
  #view-child .child-back-link { color: var(--ui-muted); font-size: var(--ui-text-sm); }
  .child-profile-photo { color: var(--ui-accent); background: var(--ui-accent-soft); border-color: var(--ui-border); }

  /* Tables and record states keep color meaningful rather than decorative. */
  .service-table, .reference-matrix, .line-history-table table { color: var(--ui-ink); background: var(--ui-surface); font-size: var(--ui-text-label); }
  .service-table th, .reference-matrix th, .line-history-table th, .reference-card > h2 {
    color: var(--ui-accent); background: var(--ui-accent-soft); border-color: var(--ui-border); font-weight: 700;
  }
  .service-table td, .line-history-table td { color: var(--ui-ink); border-color: var(--ui-border); }
  .reference-matrix-scroll, .service-scroll, .line-history-table { border-color: var(--ui-border); }
  .reference-matrix th:first-child, .reference-matrix td:first-child { background: var(--ui-surface); }
  .reference-profile, .service-table, .reference-matrix, .line-history-table,
  .attendance-record-progress, time, input[type=number] { font-variant-numeric: tabular-nums; }
  .reference-alert, .line-notice, .service-status:not([data-error=true]), .ai-page .notice, .ai-page .sources {
    color: var(--ui-accent); background: var(--ui-accent-soft); border-color: var(--ui-control-border); font-size: var(--ui-text-label);
  }
  .reference-alert.warning { color: var(--ui-warning); background: var(--ui-warning-soft); border-color: #d9c08e; }
  .reference-alert-row { border-color: #d9c08e; }
  .service-status[data-error=true], .notice.error, .line-error { color: var(--ui-danger); }
  .reference-visit[data-state=final], .line-result[data-result=sent], .status-chip {
    color: var(--ui-accent); background: var(--ui-accent-soft); border-color: var(--ui-control-border);
  }
  .reference-visit[data-state=draft] { color: var(--ui-warning); background: var(--ui-warning-soft); border-color: #d9c08e; }
  .reference-visit[data-state=absent], .reference-visit[data-state=empty] { color: var(--ui-muted); background: #f0f1ed; border-color: var(--ui-border); }
  .reference-visit strong { font-size: var(--ui-text-label); font-weight: 700; }
  .reference-visit small, .status-chip, .tag-list li, .attendance-history-status, .line-result { font-size: var(--ui-text-sm); line-height: 1.6; }
  .reference-week-day { border-color: var(--ui-border); background: var(--ui-surface); }
  .reference-week-day > header { background: var(--ui-accent-soft); border-color: var(--ui-border); }
  .reference-week-day > header strong { font-size: var(--ui-heading-section); font-weight: 700; }
  .reference-week-day > header small { font-size: var(--ui-text-sm); color: var(--ui-muted); }
  .reference-week-day.is-today > header { color: #fff; background: var(--ui-accent); }
  .reference-week-day.is-today > header small { color: #fff; }
  .reference-week-day > .button { color: var(--ui-accent); font-size: var(--ui-text-sm); }
  .calendar-month-nav > .button:last-child { font-size: var(--ui-text-label); font-weight: 700; }
  .reference-memo, .entry-writing, .assessment-writing-disclosure[open], .daily-support-item { background: var(--ui-accent-soft); border-color: var(--ui-border); }
  .ai-launch { color: #fff; background: var(--ui-accent); border-color: var(--ui-accent); font-size: var(--ui-text-label); font-weight: 700; }
  .ai-page a, .login-actions a, .crieba-login .login-actions a { color: var(--ui-accent); }
  .ai-floating-dialog, .ai-notice, .login-card, .crieba-login .login-card { background: var(--ui-surface); border-color: var(--ui-border); }
  .save-bar { background: var(--ui-canvas); border-color: var(--ui-border); }
  .crieba-login .login-brand small, .crieba-login .login-kicker { color: #d6e3db; font-size: var(--ui-text-sm); letter-spacing: normal; }
  .crieba-login .login-brand strong { font-size: 28px; letter-spacing: normal; }

  /* Home separates facility tasks from the person selected for work. */
  .record-settings { max-width: 960px; }
  .record-settings > section { margin-top: 28px; }
  .record-tag-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: end; gap: 16px; margin: 14px 0; }
  .record-tag-row .field { margin: 0; }
  .record-tag-row > label:not(.field) { display: flex; align-items: center; gap: 8px; min-height: 44px; }
  .record-tag-row > span { display: flex; gap: 6px; }
  @media (max-width: 640px) {
    .record-tag-row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; }
    .record-tag-row > .field { grid-column: 1 / -1; }
  }
  #view-service-home > .reference-workspace > .reference-heading { position: static; width: auto; height: auto; overflow: visible; clip-path: none; }
  .app-shell[data-view=service-home] .workspace > main { padding-top: 32px; }
  .home-date { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin: 0 0 18px; color: var(--ui-muted); font-size: var(--ui-text-label); }
  .home-date > span { padding: 2px 10px; border: 1px solid var(--ui-border); border-radius: 6px; font-size: var(--ui-text-sm); }
  .home-summary { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin-bottom: 28px; }
  .home-metric { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px 14px; min-width: 0; padding: 18px; border: 1px solid var(--ui-border); border-radius: 12px; background: var(--ui-surface); color: var(--ui-ink); text-align: left; }
  .home-metric > span { font-size: var(--ui-text-label); font-weight: 700; }
  .home-metric > strong { grid-column: 2; grid-row: 1; font-size: 28px; line-height: 1.25; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .home-metric strong > span { margin-left: 6px; font-size: var(--ui-text-label); font-weight: 400; color: var(--ui-muted); }
  .home-metric > small { grid-column: 1 / -1; font-size: var(--ui-text-sm); color: var(--ui-muted); }
  .home-metric:hover, .home-feature:hover, .home-record-task:hover { border-color: var(--ui-control-border); background: var(--ui-accent-soft); }
  .home-workspace-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .home-directory { margin-bottom: 28px; }
  .client-directory + .roster-tools { margin-top: 20px; }
  .home-directory-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 20px; }
  .home-directory-heading h1 { margin: 0; }
  .home-directory-title .home-date { margin: 6px 0 0; font-size: var(--ui-text-sm); }
  .home-directory-actions { display: flex; align-items: center; gap: 10px; }
  @media (max-width: 480px) { .home-directory-actions { width: 100%; } .home-directory-actions > .button:last-child { margin-left: auto; } }
  .client-card-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; padding: 0; margin: 0; list-style: none; }
  .client-card-grid li { min-width: 0; }
  .client-card { display: flex; flex-direction: row; align-items: center; gap: 10px; width: 100%; height: 100%; min-height: 76px; padding: 12px; border: 1px solid var(--ui-border); border-radius: 10px; background: var(--ui-surface); color: var(--ui-ink); text-align: left; cursor: pointer; }
  .client-card strong { font-size: var(--ui-text-body); line-height: 1.6; overflow-wrap: anywhere; }
  .client-card-copy { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
  .client-card-copy small { color: var(--ui-muted); font-size: var(--ui-text-sm); }
  .client-card-avatar { position: relative; display: grid; place-items: center; width: 40px; height: 40px; flex: 0 0 40px; overflow: hidden; border-radius: 50%; background: var(--ui-accent-soft); color: var(--ui-accent); font-size: 19px; font-weight: 700; }
  .client-card-avatar img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
  @media (min-width: 1101px) and (max-width: 1450px) { .client-card-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
  .client-card:hover, .client-card.is-last-opened { background: var(--ui-accent-soft); border-color: var(--ui-control-border); }
  .client-card:focus-visible { outline: 3px solid var(--ui-accent); outline-offset: 3px; }
  .client-pagination { display: flex; justify-content: center; align-items: center; gap: 16px; margin-top: 18px; }
  .client-pagination > span { font-size: var(--ui-text-sm); white-space: nowrap; }
  @media (max-width: 1100px) { .client-card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
  @media (max-width: 740px) { .client-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .client-card { padding: 10px; gap: 8px; } .client-card-avatar { width: 32px; height: 32px; flex-basis: 32px; } }
  .home-section-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
  .home-section-heading > h2 { margin: 0; }
  .home-section-heading > h3 { margin: 0; }
  .home-section-heading > .button { min-height: 36px; padding: 6px 10px; font-size: var(--ui-text-sm); }
  .home-actions { padding-top: 24px; border-top: 1px solid var(--ui-border); }
  .home-actions-header { display: grid; gap: 16px; margin-bottom: 16px; }
  .home-actions-header > h2 { margin: 0; }
  .home-person-context { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; width: 100%; min-width: 0; }
  .home-person-select { display: flex; flex: 1; align-items: center; justify-content: space-between; gap: 20px; min-width: 280px; padding: 10px 16px; border: 1px solid var(--ui-control-border); border-radius: 10px; background: var(--ui-surface); color: var(--ui-ink); text-align: left; }
  .home-person-select:hover { background: var(--ui-accent-soft); border-color: var(--ui-accent); }
  .home-person-copy { display: grid; grid-template-columns: max-content auto minmax(0, 1fr); align-items: baseline; gap: 4px 14px; min-width: 0; flex: 1; }
  .home-person-copy > span, .home-person-copy > small { color: var(--ui-muted); font-size: var(--ui-text-sm); font-weight: 400; }
  .home-person-copy > strong { font-size: var(--ui-text-body); font-weight: 700; line-height: 1.6; overflow-wrap: anywhere; }
  .home-person-copy > small { overflow-wrap: anywhere; }
  .home-person-change { display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0; color: var(--ui-accent); font-size: var(--ui-text-sm); font-weight: 700; }
  .home-person-change svg { width: 16px; height: 16px; }
  .home-features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .home-utilities { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
  .home-utilities .home-feature:only-child { grid-column: 1 / -1; }
  .home-utilities .home-feature { min-height: 70px; padding: 12px 18px; }
  .home-utilities .home-feature strong { font-size: var(--ui-text-body); }
  .home-feature { display: flex; align-items: center; gap: 14px; min-width: 0; min-height: 104px; padding: 18px; border: 1px solid var(--ui-border); border-radius: 10px; background: var(--ui-surface); color: var(--ui-accent); text-align: left; }
  .home-features .home-feature { min-height: 76px; }
  .home-feature > span:nth-child(2) { display: grid; gap: 5px; min-width: 0; }
  .home-feature strong { font-size: var(--ui-heading-card); }
  .home-feature small { font-size: var(--ui-text-sm); color: var(--ui-muted); font-weight: 400; }
  .home-feature-icon { display: grid; place-items: center; flex: 0 0 28px; }
  .home-feature-icon svg { width: 28px; height: 28px; }
  .home-feature-arrow { margin-left: auto; font-size: 24px; font-weight: 400; }
  .home-feature-record { color: #fff; background: var(--ui-accent); border-color: var(--ui-accent); }
  .home-feature-record small { color: #e0ebe4; }
  .home-feature-record:hover { color: #fff; background: var(--ui-accent-hover); }
  .home-notices { padding: 20px; border: 1px solid var(--ui-border); border-radius: 12px; background: var(--ui-surface); }
  .home-pending-records { padding: 0 0 18px; margin-bottom: 18px; border-bottom: 1px solid var(--ui-border); }
  .home-pending-records .home-section-heading { margin-bottom: 8px; }
  .home-notices > h2 { margin: 0 0 16px; }
  #home-notices-title { scroll-margin-top: 100px; }
  #documents-title { scroll-margin-top: 200px; }
  .home-section-help, .home-empty { margin: 0; color: var(--ui-muted); font-size: var(--ui-text-sm); }
  .home-pending-records ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; padding: 0; margin: 12px 0 0; list-style: none; }
  .home-pending-records li { border-bottom: 1px solid var(--ui-border); }
  .home-record-task { display: flex; align-items: center; gap: 12px; width: 100%; padding: 12px 6px; color: var(--ui-ink); background: transparent; border: 0; border-radius: 6px; text-align: left; }
  .home-record-task strong { flex: 1; font-size: var(--ui-text-label); overflow-wrap: anywhere; }
  .home-record-task span { flex-shrink: 0; font-size: var(--ui-text-sm); color: var(--ui-muted); }
  .home-notice-groups { display: grid; gap: 12px; }
  .home-notices .reference-alert { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; margin: 0; padding: 14px 16px; }
  .home-notices .reference-alert:last-child { margin-bottom: 0; }
  .home-notices .reference-alert > strong { grid-column: 1 / -1; font-size: var(--ui-text-label); }
  .home-notices .reference-alert-row { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 8px 12px; margin-top: 8px; }
  .home-notices .reference-alert.warning .reference-alert-row { min-height: 54px; margin-top: 10px; padding: 8px 10px; border: 1px solid #d9c08e; border-radius: 8px; background: var(--ui-surface); }
  .home-notices .reference-alert-row:only-of-type { grid-column: 1 / -1; }
  .home-notices .reference-alert-row > .button { max-width: 100%; padding: 5px 9px; min-height: 36px; font-size: var(--ui-text-label); overflow-wrap: anywhere; }
  .home-notices .reference-alert-row > span { font-size: var(--ui-text-sm); overflow-wrap: anywhere; }

  @media (max-width: 1100px) and (min-width: 641px) {
    .home-summary, .home-features { gap: 10px; }
    .home-feature { gap: 10px; padding: 16px 12px; }
    .home-feature-icon { flex-basis: 22px; }
    .home-feature-icon svg { width: 22px; height: 22px; }
    .home-feature strong { font-size: var(--ui-text-body); }
  }
  @media (max-width: 640px) {
    .home-summary { grid-template-columns: minmax(0, 1fr); gap: 10px; margin-bottom: 24px; }
    .home-metric { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px; padding: 16px; }
    .home-metric > strong { grid-column: 2; grid-row: 1; align-self: center; font-size: 28px; }
    .home-metric > small { grid-column: 1 / -1; }
    .home-actions-header { gap: 12px; }
    .home-person-context { flex-wrap: wrap; gap: 8px; }
    .home-person-select { width: 100%; min-width: 0; padding: 12px; gap: 12px; }
    .home-person-copy { grid-template-columns: minmax(0, 1fr); gap: 1px; }
    .home-person-copy > small { overflow-wrap: anywhere; }
    .home-features, .home-utilities, .home-pending-records ul, .home-notices .reference-alert { grid-template-columns: minmax(0, 1fr); }
    .home-feature { padding: 16px; min-height: 88px; }
    .home-notices { padding: 16px; }
  }

  /* Weekly records: dates, names and state labels have separate visual roles. */
  #view-service-journals .journal-week-workspace { display: flex; flex-direction: column; min-height: calc(100vh - 230px); }
  #view-service-journals .reference-week-nav { align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
  .journal-week-range { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 24px; }
  .journal-week-range > h2 { margin: 0; font-size: var(--ui-heading-section); font-variant-numeric: tabular-nums; }
  .journal-week-controls { display: inline-flex; align-items: center; gap: 6px; }
  .journal-week-controls .button { min-width: 44px; padding: 8px 12px; }
  .journal-week-controls .button:not([data-service-action=week-current]) { font-size: 20px; }
  #view-service-journals .reference-week { flex: 1; grid-auto-rows: minmax(220px, 1fr); gap: 12px; align-items: stretch; }
  #view-service-journals .reference-week-day { display: flex; flex-direction: column; min-width: 0; min-height: 220px; border-radius: 12px; }
  #view-service-journals .reference-week-day > header { display: flex; align-items: flex-start; align-content: flex-start; flex-wrap: wrap; gap: 6px; min-height: 112px; padding: 16px 12px 12px; text-align: left; background: var(--ui-surface); }
  #view-service-journals .reference-week-day h3 { flex: 1 0 100%; margin: 0; }
  #view-service-journals .reference-week-day time { display: block; }
  #view-service-journals .reference-week-day > header strong { display: block; margin-top: 2px; font-size: 24px; line-height: 1.35; }
  #view-service-journals .reference-week-day > header small { font-weight: 400; }
  #view-service-journals .reference-week-day.is-today { border-color: var(--ui-accent); box-shadow: inset 0 3px var(--ui-accent); }
  #view-service-journals .reference-week-day.is-today > header { color: var(--ui-accent); background: var(--ui-accent-soft); }
  #view-service-journals .reference-week-day.is-today > header small { color: var(--ui-accent); }
  #view-service-journals .reference-week-day[data-weekday='6'] > header strong { color: #376a9b; }
  #view-service-journals .reference-week-day[data-weekday='0'] > header strong { color: var(--ui-danger); }
  .journal-today-badge, .journal-day-count { font-size: var(--ui-text-sm); line-height: 1.6; font-weight: 700; }
  .journal-today-badge { padding: 0 7px; border-radius: 5px; color: #fff; background: var(--ui-accent); }
  .journal-day-count { color: var(--ui-muted); margin-left: auto; }
  #view-service-journals .journal-day-records { flex: 1; padding: 12px 10px; gap: 8px; align-content: start; }
  .journal-day-empty { display: grid; min-height: 48px; place-content: center; margin: 0; color: #89968d; }
  #view-service-journals .reference-visit { padding: 10px; border-radius: 8px; }
  #view-service-journals .reference-visit strong { display: block; font-size: var(--ui-text-label); line-height: 1.6; }
  #view-service-journals .reference-visit small { display: flex; align-items: center; gap: 6px; margin-top: 6px; font-size: var(--ui-text-sm); }
  .journal-state-dot { display: inline-block; flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%; background: #89968d; }
  [data-state=final] .journal-state-dot { background: var(--ui-accent); }
  [data-state=draft] .journal-state-dot { background: #ae781f; }
  [data-state=absent] .journal-state-dot { background: #89968d; border-radius: 2px; }
  #view-service-journals .reference-week-day > footer { border-top: 1px solid var(--ui-border); padding: 6px 10px; }
  #view-service-journals .reference-week-day > footer .button { width: 100%; min-height: 36px; padding: 6px 0; border: 0; border-radius: 6px; color: var(--ui-accent); background: transparent; font-size: var(--ui-text-sm); }
  #view-service-journals .reference-week-day > footer .button:hover { background: var(--ui-accent-soft); }
  .journal-week-legend { display: flex; flex-wrap: wrap; gap: 12px 20px; margin: 14px 0 28px; color: var(--ui-muted); font-size: var(--ui-text-sm); }
  .journal-week-legend > span { display: inline-flex; align-items: center; gap: 6px; }
  .journal-week-empty { margin: 14px 0 28px; color: var(--ui-muted); font-size: var(--ui-text-sm); }
  .journal-week-memos > header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
  .journal-week-memos > header h2 { margin: 0; font-size: var(--ui-heading-card); }
  .journal-week-memos > .service-muted { margin: 0; }

  @media (max-width: 860px) {
    .person-workspace-bar:not([hidden]) { top: 64px; }
  }
  @media (max-width: 1100px) and (min-width: 641px) {
    #view-service-journals .reference-week { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  }
  @media (max-width: 640px) {
    .person-workspace-bar:not([hidden]) { top: 64px; align-items: stretch; flex-direction: column; gap: 6px; padding: 8px 14px; }
    .person-workspace-bar .current-child { display: flex; width: 100%; min-width: 0; flex: none; align-items: baseline; flex-wrap: wrap; gap: 3px 8px; padding: 7px 10px; }
    .person-workspace-bar .current-child strong { margin: 0; }
    .person-workspace-bar .current-child span:last-child { margin-left: auto; }
    .person-workspace-nav { width: 100%; flex: none; }
    .person-workspace-nav button { min-height: 38px; padding: 6px 12px; }
    #view-service-journals .journal-week-workspace { min-height: 0; }
    #view-service-journals .reference-week-nav { align-items: flex-start; gap: 16px; }
    .journal-week-range { flex: 1 0 100%; justify-content: space-between; }
    .journal-week-range > h2 { flex: 1 0 100%; font-size: 18px; }
    #view-service-journals .reference-week-nav > a { margin: 0; }
    #view-service-journals .reference-week { flex: initial; grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; gap: 10px; }
    #view-service-journals .reference-week-day { display: grid; grid-template-columns: 90px minmax(0, 1fr); min-height: 120px; }
    #view-service-journals .reference-week-day > header { grid-row: 1 / 3; flex-direction: column; align-content: flex-start; align-items: flex-start; padding: 14px 12px; border: 0; border-right: 1px solid var(--ui-border); background: var(--ui-accent-soft); }
    #view-service-journals .reference-week-day h3 { flex: 0 0 auto; }
    .journal-day-count { margin-left: 0; }
    #view-service-journals .journal-day-records { padding: 10px; }
    #view-service-journals .reference-week-day > footer { padding: 4px 10px; }
  }

  /* Journal reading: a quiet history rail, a clear heading, and one continuous text area. */
  #journal-list .journal-history { min-width: 0; }
  #journal-list .journal-history-title { margin: 0 0 12px; font-size: var(--ui-text-label); color: var(--ui-muted); }
  #journal-list .reference-journal-entry { padding: 14px; border-radius: var(--ui-radius); border-color: var(--ui-border); background: var(--ui-surface); }
  #journal-list .journal-entry-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
  #journal-list .journal-entry-heading > strong { font-size: var(--ui-text-label); }
  #journal-list .reference-journal-entry small { margin-top: 8px; font-size: var(--ui-text-sm); line-height: 1.6; }
  #journal-list .reference-journal-entry[aria-pressed="true"] { border: 1px solid var(--ui-accent); box-shadow: inset 3px 0 var(--ui-accent); background: var(--ui-accent-soft); }
  #journal-list .journal-status-chip { display: inline-flex; flex: 0 0 auto; padding: 3px 7px; border-radius: 5px; color: var(--ui-accent); background: var(--ui-accent-soft); font-size: 12px; font-weight: 700; line-height: 1.5; }
  #journal-list .journal-status-chip[data-status="draft"] { color: var(--ui-warning); background: var(--ui-warning-soft); }
  #journal-list .record-item { padding: 24px; background: var(--ui-surface); border-color: var(--ui-border); }
  #journal-list .journal-detail-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding-bottom: 18px; border-bottom: 1px solid var(--ui-border); }
  #journal-list .record-date { flex: 1 1 240px; margin: 0; padding: 0; border: 0; color: var(--ui-muted); font-size: var(--ui-text-label); }
  #journal-list .record-date .journal-activity-title { display: block; margin: 8px 0 0; color: var(--ui-ink); font-size: var(--ui-heading-section); line-height: 1.6; overflow-wrap: anywhere; }
  #journal-list .journal-edit-action { flex: 0 0 auto; }
  #journal-list .record-body { padding-top: 18px; }
  #journal-list .journal-record-footer { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-top: 18px; }
  #journal-list .journal-update-info { min-width: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--ui-muted); font-size: var(--ui-text-sm); }
  #journal-list .journal-update-info > summary { display: list-item; padding: 12px 0; cursor: pointer; }
  #journal-list .journal-update-info .record-update-meta { margin: 0 0 8px; color: var(--ui-muted); font-size: 12px; overflow-wrap: anywhere; }
  #journal-list .journal-record-footer .record-actions { flex: 0 0 auto; margin: 0; }
  #journal-list .record-draft-note { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 12px; margin: 0 0 16px; padding: 10px 12px; border-radius: 6px; background: var(--ui-warning-soft); color: var(--ui-warning); font-size: var(--ui-text-sm); font-weight: 400; }
  #journal-list .record-draft-note strong { font-size: var(--ui-text-sm); }
  #journal-list .record-body > .journal-memo { margin: 0 0 16px; padding: 10px 12px; border-color: var(--ui-border); border-radius: 6px; background: var(--ui-canvas); font-size: var(--ui-text-label); }
  #journal-list .journal-details { gap: 0; margin: 0; }
  #journal-list .journal-field { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 20px; padding: 20px 0; border: 0; border-bottom: 1px solid var(--ui-border); border-radius: 0; background: transparent; }
  #journal-list .journal-field dt { margin: 0; padding: 3px 0 0; border: 0; color: var(--ui-accent); font-size: var(--ui-text-label); line-height: 1.7; }
  #journal-list .journal-field dd { font-size: var(--ui-text-body); line-height: 1.9; }
  #journal-list .journal-field[data-empty="true"] { padding: 14px 0; }
  #journal-list .journal-field[data-empty="true"] dd { color: var(--ui-muted); font-size: var(--ui-text-label); }
  #journal-list .record-actions { margin: 18px 0 0; justify-content: flex-end; }
  #journal-list .record-actions .button-danger { background: transparent; border-color: transparent; font-size: var(--ui-text-sm); }
  @media (max-width: 860px) {
    #journal-list .reference-journal-nav { padding-bottom: 6px; }
    #journal-list .reference-journal-entry { flex: 0 0 230px; }
  }
  @media (max-width: 600px) {
    #journal-list .record-item { padding: 18px; }
    #journal-list .record-date { flex-basis: 100%; }
    #journal-list .record-date .journal-activity-title { font-size: var(--ui-heading-card); }
    #journal-list .journal-edit-action { margin-left: auto; }
    #journal-list .journal-field { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 18px 0; }
    #journal-list .journal-field[data-empty="true"] { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 12px 0; }
    #journal-list .journal-field dt { padding: 0; }
  }

  @media (max-width: 768px) {
    :root { --ui-heading-page: 24px; }
    .button, .reference-actions .button, .reference-filter .button, .service-tabs .button,
    .line-panel-nav .button { padding: 10px 12px; }
    .child-heading-actions { justify-content: flex-start; }
  }
}
/* 原本の3記録欄を、日付と本文に分けて入力する。 */
#support-record-editor-form[data-crieba-record="true"] #support-record-editor-fields {
  display: grid;
  gap: 24px;
}
#support-record-editor-form[data-crieba-record="true"] #support-record-editor-fields > .field {
  max-width: 280px;
}
.crieba-record-section {
  padding-block: 20px 0;
  border-top: 1px solid var(--line);
}
.crieba-record-section > header {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 4px 10px;
  align-items: center;
  margin-bottom: 18px;
}
.crieba-record-number {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: var(--accent-soft, #e7f0eb);
  color: var(--accent, #224c40);
  font-weight: 700;
}
.crieba-record-section > header h3 { margin: 0; font-size: 18px; }
.crieba-record-section > header small { grid-column: 2; color: var(--muted, #587067); }
.crieba-record-section label:has([name="programName"]) { grid-column: 1 / -1; }
.crieba-record-other { border-top: 1px solid var(--line); padding-top: 18px; }
.crieba-record-other > summary { font-weight: 700; cursor: pointer; }
.crieba-record-other > .field { margin-top: 16px; }
.crieba-record-preview > summary { cursor: pointer; font-weight: 700; }
.crieba-record-preview section { border-top: 1px solid var(--line); padding-top: 14px; margin-top: 16px; }
.crieba-record-preview h3 { margin: 0 0 8px; font-size: 16px; }
.crieba-record-preview p { white-space: pre-wrap; overflow-wrap: anywhere; }
#view-documents[data-recording="true"] .document-lane-index,
#view-documents[data-recording="true"] .document-lane-heading,
#view-documents[data-recording="true"] .document-jump-nav,
#view-documents[data-recording="true"] .document-lane-controls,
#view-documents[data-recording="true"] #support-record-picker-guide { display: none; }
#view-documents .document-lane[hidden] { display: none !important; }
#view-service-home .home-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#view-service-home .home-utilities { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 600px) {
  .crieba-record-section > .field-grid { grid-template-columns: minmax(0, 1fr); }
  .crieba-record-section > header small { overflow-wrap: anywhere; }
  #view-service-home .home-summary { grid-template-columns: minmax(0, 1fr); }
}

/* Daily records use the main workspace, with one support panel at a time. */
#main-content.record-editing > :not(.record-editor-page) { display: none !important; }
body[data-record-editing="true"] #person-workspace-bar { display: none !important; }
.record-page-back, .record-page-save-status { display: none; }
#support-record-editor-dialog.record-editor-page {
  position: static; inset: auto; display: block; width: 100%; max-width: 1100px;
  max-height: none; margin: 0 auto; padding: 0; border: 0; border-radius: 0;
  background: transparent; box-shadow: none; overflow: visible; animation: none;
}
#support-record-editor-dialog.record-editor-page > form {
  max-height: none; overflow: visible; padding: 0 0 28px; scrollbar-gutter: auto;
}
.record-editor-page .record-page-back { display: inline-flex; margin-bottom: 18px; }
.record-editor-page .dialog-heading { margin-bottom: 20px; }
.record-editor-page .dialog-heading h2 { font-size: 26px; }
#support-record-editor-dialog.record-editor-page .dialog-actions {
  position: static; margin-top: 24px; padding: 20px 0 0; border-top: 1px solid #ccd8d0;
  background: transparent; display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
}
.record-editor-page .record-page-save-status { display: block; margin-right: auto; color: var(--ink-soft); font-size: 13px; }
.crieba-record-tabs { display: flex; gap: 6px; padding: 5px; background: #e8eee9; border-radius: 10px; }
.crieba-record-tabs button { flex: 1; padding: 13px 8px; border: 0; border-radius: 7px; color: #35574e; background: transparent; font: inherit; font-weight: 700; cursor: pointer; }
.crieba-record-tabs button[aria-selected="true"] { background: #fff; color: #214c40; box-shadow: 0 1px 4px #214c401c; }
.crieba-record-tabs button:focus-visible { outline: 3px solid #a64d30; outline-offset: 2px; }
#support-record-editor-form[data-crieba-record="true"] .crieba-record-section { padding: 22px; border: 1px solid #d4ded7; border-radius: 12px; background: #fffefa; }
.crieba-record-section[hidden] { display: none !important; }
#support-record-editor-form .crieba-record-section > header { display: block; margin-bottom: 18px; }
#support-record-editor-form .crieba-record-section > header h3 { margin: 0; font-size: 18px; }
#crieba-record-panel-0 .field-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 2fr); gap: 16px; }
#crieba-record-panel-0 .field:has([name="programName"]) { grid-column: auto; }
.record-editor-page .program-record-notes { margin-top: 10px; }
.record-editor-page .program-record-manual textarea { min-height: 180px; }
.record-editor-page .program-record-writing textarea { min-height: 180px; }
.crieba-record-excel-help { font-size: 13px; color: var(--ink-soft); }
.crieba-record-excel-help summary { cursor: pointer; padding-block: 8px; }
@media (max-width: 650px) {
  #support-record-editor-form[data-crieba-record="true"] .crieba-record-section { padding: 16px; }
  #crieba-record-panel-0 .field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #crieba-record-panel-0 .field:has([name="programName"]) { grid-column: 1 / -1; }
  .crieba-record-tabs button { font-size: 13px; padding-inline: 4px; }
  .record-editor-page .record-page-save-status { flex-basis: 100%; }
}
/* 利用者情報は、1人分のExcelと同じ項目名・内容の表で入力する。 */
.child-profile-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 15px; line-height: 1.6; }
.child-profile-table th, .child-profile-table td { border: 1px solid var(--ui-border, #d7e2dc); padding: 12px 16px; vertical-align: top; text-align: left; overflow-wrap: anywhere; white-space: pre-wrap; }
.child-profile-table th { width: 32%; background: #edf3ee; font-size: 13px; font-weight: 600; }
.child-profile-table td { background: var(--ui-surface, #fff); }
.child-profile-table td.is-empty { color: var(--ui-muted); font-size: 14px; }
.child-profile-table td > .field { margin: 0; min-width: 0; }
.child-profile-table .excel-profile-control { display: grid; gap: 6px; min-width: 0; }
.child-profile-table .excel-profile-control > span:not(.profile-monthly-day-input) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.child-profile-table input, .child-profile-table select, .child-profile-table textarea { width: 100%; min-width: 0; min-height: 40px; padding: 8px 10px; font-size: 16px; }
.child-profile-table textarea { min-height: 88px; resize: vertical; }
.child-profile-table input[readonly] { background: #e8f0ea; color: var(--ui-ink); }
.child-profile-table.is-editing td { padding: 8px; }
#child-profile-panel-contacts > h3 { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
#child-contact-actions .button { min-height: 44px; font-size: 14px; }
#guardian-list .guardian-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
#guardian-list .guardian-actions .button { min-height: 44px; padding: 6px 10px; font-size: 13px; }
#guardian-list td { overflow-wrap: anywhere; }
#guardian-list [role="alert"] .button { margin-left: 12px; }
@media (max-width: 640px) {
  #guardian-list .guardian-actions { flex-basis: 100%; margin-left: 0; }
  .child-profile-table th { width: 34%; }
  .child-profile-table th, .child-profile-table td { padding: 10px 8px; }
  .child-profile-table.is-editing td { padding: 6px; }
  .child-profile-table input, .child-profile-table select, .child-profile-table textarea { padding: 8px 4px; }
}
/* 入力画面は背景を覆わず、通常の作業ページとして表示する。 */
#main-content.record-editing > .record-editor-page:not(.is-editor-active) { display: none !important; }
#main-content > dialog.app-dialog.record-editor-page {
  position: static; inset: auto; display: block; width: 100%; max-width: 1280px;
  height: auto; max-height: none; margin: 0 auto; padding: 0; border: 0; border-radius: 0;
  background: transparent; box-shadow: none; overflow: visible; animation: none;
}
#main-content > dialog.app-dialog.record-editor-page > form {
  display: block; height: auto; max-height: none; overflow: visible; padding: 0 0 28px; scrollbar-gutter: auto;
}
#main-content > dialog.app-dialog.record-editor-page .dialog-actions {
  position: sticky; bottom: 0; z-index: 7; display: flex; flex-direction: row; flex-wrap: wrap;
  align-items: center; gap: 12px; margin-top: 24px; padding: 16px 0;
  border-top: 1px solid var(--ui-border); background: var(--ui-background, #f3f1e9);
  box-shadow: none;
}
#main-content > dialog.app-dialog.record-editor-page .dialog-actions .button { width: auto; }
#main-content > dialog.app-dialog.record-editor-page .child-profile-nav {
  position: sticky; top: 100px; height: auto; overflow: visible;
}
#main-content > dialog.app-dialog.record-editor-page .child-profile-panels { overflow: visible; padding-right: 0; }
.record-editor-page .dialog-heading h2:focus { outline: none; }
#main-content > dialog.app-dialog.record-editor-page .assessment-step-nav { position: static; }
.assessment-adl-options { min-width: 0; margin: 0; padding: 0; border: 0; }
.assessment-adl-options legend { margin-bottom: 10px; font-size: 14px; font-weight: 600; }
.assessment-adl-choices { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.assessment-adl-choices label { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 10px; border: 1px solid var(--ui-border); border-radius: 8px; background: var(--ui-surface); cursor: pointer; }
.assessment-adl-choices label:has(input:checked) { border-color: var(--forest); background: var(--forest-pale); font-weight: 700; }
.assessment-adl-choices label:has(input:focus-visible) { outline: 3px solid var(--forest); outline-offset: 2px; }
.assessment-adl-choices input[type=radio] { width: 18px; height: 18px; min-height: 18px; margin: 0; accent-color: var(--forest); }
.assessment-adl-options > .button { justify-self: start; min-height: 36px; margin-top: 6px; padding: 6px 0; font-size: 13px; }
@media (max-width: 650px) { .assessment-adl-choices { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) {
  #main-content > dialog.app-dialog.record-editor-page .dialog-actions { gap: 8px; }
  #main-content > dialog.app-dialog.record-editor-page .dialog-actions .button { flex: 1 1 auto; }
}

#crieba-record-panel-0 .field-wide { grid-column: 1 / -1; }

.meeting-participants { min-width: 0; margin: 20px 0 0; padding: 0; border: 0; }
.meeting-participants > legend { margin-bottom: 12px; padding: 0; font-size: 14px; font-weight: 700; color: var(--forest); }
.meeting-participant-list { display: grid; gap: 12px; margin-bottom: 12px; }
.meeting-participant-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: end; }
.meeting-participant-row > .field { min-width: 0; margin: 0; }
.meeting-participant-row > .button { min-height: 50px; padding: 8px 12px; }

/* Record history: primary creation, compact dated rows, optional export. */
.record-list-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: 16px; }
.record-list-heading .support-record-picker { margin: 0; }
.record-list-heading .support-record-picker > h3, .record-list-heading #support-record-picker-guide { display: none; }
.record-list-heading .support-record-kind-choices { display: flex; flex-wrap: wrap; gap: 8px; }
.record-list-heading .support-record-kind-button { display: inline-flex; width: auto; min-height: 42px; padding: 10px 16px; text-align: center; }
.record-list-heading .support-record-kind-button.button-primary { background: var(--forest); color: #fff; border-color: var(--forest); }
.record-list-heading .support-record-kind-button.button-primary:hover { background: var(--forest-deep); }
#support-record-list-tools { margin: 16px 0; align-items: end; gap: 14px; }
#support-record-list-tools .field { flex: 0 1 240px; margin: 0; }
#support-record-list-tools .field > span { font-size: 12px; }
#support-record-list-tools p { margin: 0 0 12px; }
.support-record-pagination[hidden] { display: none !important; }
#support-record-list-tools .support-record-pagination { margin-left: auto; }
#supplemental-record-list.document-list { gap: 0; }
#supplemental-record-list > .document-item { grid-template-columns: minmax(0, 1fr) auto; gap: 12px 24px; padding: 20px 0; border: 0; border-bottom: 1px solid var(--line); }
#supplemental-record-list > .document-item + .document-item { border-top: 0; padding-top: 20px; }
.record-list-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
#supplemental-record-list .record-list-summary > strong { font-size: 17px; }
.record-kind-label { font-size: 13px; color: var(--ink-soft); }
#supplemental-record-list .document-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
#supplemental-record-list .document-actions .button { flex: none; width: auto; min-width: 0; padding: 8px 14px; }
.record-download-link { color: var(--ink-soft); font-size: 13px; }
#supplemental-record-list .crieba-record-preview { grid-column: 1 / -1; font-size: 13px; }
.record-export-details { margin: 20px 0 0; }
.record-export-details > summary { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 16px; border: 1px solid var(--line); border-radius: 10px; background: var(--ui-accent-soft); cursor: pointer; color: var(--ink); font-size: 14px; list-style: none; }
.record-export-details > summary::-webkit-details-marker { display: none; }
.record-export-details > summary:hover { border-color: var(--ui-accent); }
.record-export-details > summary:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 3px; }
.record-export-heading { display: grid; gap: 5px; }
.record-export-heading small { color: var(--ink-soft); font-size: 13px; font-weight: 400; }
.record-export-toggle { color: var(--ui-accent); font-weight: 700; white-space: nowrap; }
.record-export-details .when-open, .record-export-details[open] .when-closed { display: none; }
.record-export-details[open] .when-open { display: inline; }
.record-export-details .support-record-exports { margin: 16px 0 0; }
.support-record-exports .field select,
.support-record-exports > .button { height: 50px; min-height: 50px; border-radius: 9px; font-size: 16px; line-height: 1.3; }
.support-record-exports > .button { padding: 8px 14px; }
@media (max-width: 650px) {
  .record-export-details .support-record-exports { display: grid; grid-template-columns: minmax(0, 1fr); }
  .support-record-exports .field select,
  .support-record-exports > .button { width: 100%; height: 60px; min-height: 60px; }
  .record-list-heading { align-items: flex-start; flex-direction: column; }
  #supplemental-record-list > .document-item { gap: 12px; }
  .record-list-summary { align-items: flex-start; flex-direction: column; gap: 6px; }
  #supplemental-record-list .document-actions { gap: 8px; }
}

.crieba-record-supplement { border-top: 1px solid var(--line); padding-top: 16px; }
.crieba-record-supplement > summary { cursor: pointer; font-weight: 600; color: var(--muted); }
.crieba-record-supplement > .field-grid { margin-top: 16px; }

#supplemental-record-list.document-list { gap: 24px; }
.record-day-group { border: 0; border-radius: 8px; overflow: hidden; background: var(--paper-bright); }
.record-day-heading { display: flex; align-items: baseline; gap: 12px; margin: 0; padding: 9px 14px; border-bottom: 1px solid #a6bcb0; background: var(--forest-pale); }
.record-day-heading h3 { margin: 0; font-size: 17px; }
.record-day-list { display: grid; gap: 0; padding: 0; }
#supplemental-record-list .record-entry-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px 20px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper-bright); }
.record-entry-number { padding: 3px 9px; border-radius: 6px; background: var(--forest-pale); color: var(--forest); font-size: 12px; }
#supplemental-record-list .record-entry-card .crieba-record-preview section { margin-top: 12px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); }
#supplemental-record-list .record-entry-card .crieba-record-preview section p { margin-bottom: 0; }
@media (max-width: 650px) {
  #supplemental-record-list .record-entry-card { grid-template-columns: minmax(0, 1fr); padding: 16px; }
  #supplemental-record-list .record-entry-card .record-list-summary { flex-direction: row; align-items: center; }
}

#supplemental-record-list .record-entry-card .record-list-summary > strong { font-size: 18px; }
#supplemental-record-list .record-entry-card { padding: 14px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; align-items: center; }
#supplemental-record-list .record-entry-card:last-child { border-bottom: 0; }
#supplemental-record-list .record-entry-card .record-list-summary { display: grid; grid-template-columns: 88px 112px minmax(0, 1fr); gap: 12px; align-items: center; }
#supplemental-record-list .record-entry-card .record-list-summary > strong { font-size: 16px; }
#supplemental-record-list .record-entry-card--meeting { background: #f7fafc; }
.record-type-label { padding: 3px 8px; border-radius: 5px; background: var(--forest-pale); color: var(--forest); font-size: 12px; white-space: nowrap; }
.record-entry-card--meeting .record-type-label { background: #e8eff5; color: #426079; }
.record-type-label { justify-self: start; }
#supplemental-record-list .record-entry-time { font-size: 13px; font-weight: 400; white-space: nowrap; color: var(--ink-soft); }
@media (max-width: 1200px) {
  #supplemental-record-list .record-entry-card .record-list-summary { grid-template-columns: 88px minmax(0, 1fr); gap: 6px 12px; }
  #supplemental-record-list .record-entry-card .record-list-summary > strong { grid-column: 1 / -1; grid-row: 1; }
}
.record-entry-time { color: var(--forest); font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; }
.record-entry-overview { grid-column: 1 / -1; min-width: 0; }
.record-read-dialog { width: min(800px, calc(100vw - 32px)); max-height: 85vh; padding: 24px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper-bright); color: var(--ink); box-shadow: 0 16px 48px rgb(25 53 45 / 18%); }
.record-read-dialog::backdrop { background: rgb(25 53 45 / 30%); }
.revision-period-fields { display: flex; flex-wrap: wrap; gap: 16px; margin: 20px 0; }
.revision-period-fields label { display: grid; flex: 1 1 220px; gap: 8px; }
.revision-period-fields input { width: 100%; min-height: 44px; }
.record-read-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.record-read-heading h2 { margin: 0; font-size: 20px; }
.record-read-heading button { flex-shrink: 0; }
.record-read-content section { padding: 16px 0; border-bottom: 1px solid var(--line); }
.record-read-content section:last-child { border-bottom: 0; }
.record-read-content h3 { margin: 0 0 8px; font-size: 15px; }
.record-read-content p { margin: 0; white-space: pre-wrap; line-height: 1.8; }
#support-record-editor-dialog .dialog-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 16px; margin-bottom: 20px; }
#support-record-editor-dialog .dialog-heading h2 { margin: 0; font-size: 22px; }
#support-record-editor-dialog .dialog-heading p { margin: 0; font-size: 14px; color: var(--ink-soft); }
.bulk-record-export .client-status-table { width: 100%; }
.bulk-record-export input[type="checkbox"] { width: 18px; height: 18px; min-height: 18px; padding: 0; }
.bulk-record-export .client-status-table th:first-child, .bulk-record-export .client-status-table td:first-child { width: 52px; }
.bulk-export-help { margin: 10px 0 16px; font-size: 13px; color: var(--ink-soft); }
#view-documents .document-jump-nav a, #view-documents .document-jump-nav a span { text-decoration: none; }
.document-jump-nav a:hover { color: var(--forest); background: var(--forest-pale); }
#support-record-fiscal-year, .bulk-record-export [name="exportFiscalYear"] { width: 280px; max-width: 100%; }
.bulk-record-export .reference-filter .field:has([name="exportFiscalYear"]) { flex-basis: 280px; }
#supplemental-record-list .record-entry-overview { border-top: 1px solid var(--line); padding-top: 12px; }
#supplemental-record-list .record-entry-card:has(> .crieba-record-preview[open]) > .record-entry-overview { display: none; }
.record-entry-content { display: grid; gap: 8px; margin: 0; }
.record-entry-content > div { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px; align-items: baseline; }
.record-entry-content dt { font-size: 12px; font-weight: 600; color: var(--forest); }
@media (max-width: 650px) { .record-entry-content > div { grid-template-columns: minmax(0, 1fr); gap: 2px; } }
#supplemental-record-list .record-entry-excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.record-entry-labels { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.record-entry-labels > span { padding: 3px 9px; border-radius: 6px; background: var(--forest-pale); color: var(--forest); font-size: 12px; }

#supplemental-record-list .record-delete-button { color: #a33a2b; }

.record-calendar { margin: 20px 0; padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper-bright); max-width: 720px; }
.record-calendar-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 16px; }
.record-month-label { display: flex; margin: 0; }
.record-month-label input { width: 180px; height: 44px; min-height: 44px; border: 1px solid var(--line); border-radius: 6px; padding: 6px 10px; font: inherit; font-size: 16px; color: var(--ink); background: var(--paper-bright); }
#record-month-previous, #record-month-next { width: 38px; height: 44px; min-height: 44px; padding: 0; flex-shrink: 0; }
.record-calendar-scopes { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.record-calendar-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.record-calendar-weekday { text-align: center; font-size: 12px; color: var(--ink-soft); padding: 4px; }
.record-calendar-day { display: grid; justify-items: center; gap: 4px; min-height: 54px; padding: 6px 2px; border: 1px solid var(--line); border-radius: 6px; background: var(--paper-bright); color: var(--ink); cursor: pointer; font: inherit; }
.record-calendar-day small { min-height: 15px; font-size: 11px; }
.record-calendar-day.has-records { background: var(--forest-pale); font-weight: 600; }
.record-calendar-day[aria-pressed="true"], .record-calendar-scopes button[aria-pressed="true"] { background: var(--forest); border-color: var(--forest); color: white; }
.record-calendar-day[aria-current="date"] > span { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 650px) { .record-calendar { padding: 10px; } .record-calendar-days { gap: 4px; } .record-calendar-scopes { margin-left: 0; width: 100%; } #support-record-list-tools .record-sort-field { flex-basis: 170px; } }

.record-browser { margin-top: 16px; }
.record-browser.has-calendar { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 20px; align-items: start; }
.record-browser .record-calendar { margin: 0; max-width: none; min-width: 0; }
.record-browser-results { min-width: 0; }
.record-browser .record-calendar-scopes { width: 100%; margin-left: 0; }
.record-browser #support-record-list-tools { margin-top: 0; margin-bottom: 20px; }
.record-browser #support-record-list-tools .field { flex: 1 1 150px; }
.record-browser #support-record-result-count { flex-basis: 100%; margin: 0; }
@media (max-width: 1000px) { .record-browser.has-calendar { grid-template-columns: minmax(0, 1fr); gap: 16px; } }

/* Record browsing uses the shared screen palette; selection retains the accent. */
@media screen {
  .document-lane.supplemental {
    --ink: var(--ui-ink, #263238);
    --ink-soft: var(--ui-muted, #59666d);
    --line: var(--ui-border, #dfe4e7);
    --paper-bright: var(--ui-surface, #fff);
    color: var(--ink);
  }
  .document-lane.supplemental .document-lane-record { row-gap: 16px; }
  .document-lane.supplemental .record-list-heading { padding-bottom: 16px; border-bottom: 1px solid var(--line); }
  #support-record-list-tools { margin: 0; gap: 12px 16px; }
  #support-record-list-tools .field { flex-basis: 210px; }
  #support-record-list-tools p { margin-bottom: 10px; color: var(--ink-soft); }
  .document-lane.supplemental .field > span { color: var(--ink-soft); }
  .document-lane.supplemental :is(select, input) { color: var(--ink); border-color: var(--ui-control-border, #c4cdd2); background: var(--ui-surface, #fff); }
  .record-browser { margin-top: 0; }
  .record-browser.has-calendar { grid-template-columns: 320px minmax(0, 1fr); gap: 24px; }
  .record-browser .record-calendar { padding: 14px; border:1px solid var(--ui-border, #cbd3d9); border-radius: 10px; background: var(--ui-canvas, #f5f7f8); }
  .record-calendar-toolbar { gap: 8px; margin-bottom: 12px; }
  .record-month-label { flex: 1; min-width: 0; }
  .record-month-label input { width: 100%; min-width: 0; font-size: 16px; }
  #record-month-previous, #record-month-next { width: 32px; border-color: transparent; background: transparent; }
  .record-calendar-scopes { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
  .record-calendar-scopes .button { padding: 8px 4px; font-size: 14px; }
  .record-calendar-days { gap: 4px; }
  .record-calendar-day { min-height: 52px; gap: 2px; border-color: transparent; background: transparent; font-size: 16px; }
  .record-calendar-day small { color: var(--ink-soft); font-size: 12px; }
  .record-calendar-day.has-records { background: var(--ui-surface, #fff); border-color:var(--ui-control-border, #c4cdd3); color: var(--ui-ink, #263238); }
  .record-calendar-day:hover { border-color: var(--ui-control-border, #7c8d97); background: var(--ui-accent-soft, #e7ecef); }
  .record-calendar-day[aria-pressed="true"] { background: var(--forest); border-color: var(--forest); color: var(--ui-surface, #fff); }
  .record-calendar-day[aria-pressed="true"] small { color: var(--ui-surface, #fff); }
  .record-calendar-day[aria-current="date"] > span { text-decoration-thickness: 2px; }
  #supplemental-record-list.document-list { gap: 28px; }
  #supplemental-record-list .record-day-group { border: 1px solid var(--ui-border, #cbd3d9); border-radius: 10px; background: var(--ui-surface, #fff); }
  #supplemental-record-list .record-day-heading { padding: 12px 18px; gap: 12px; background: var(--ui-accent-soft, #f0f3f5); border-bottom: 1px solid var(--ui-border, #cbd3d9); }
  #supplemental-record-list .record-day-heading h3 { color: var(--ui-ink, #263238); font-size: 17px; }
  #supplemental-record-list .record-day-heading .record-kind-label { padding:2px 8px; border:1px solid var(--ui-border, #cbd3d9); border-radius:5px; color:var(--ui-ink, #45545e); background:var(--ui-surface, #fff); font-size:12px; }
  #supplemental-record-list .record-entry-card { padding: 18px; gap: 12px 20px; background: var(--ui-surface, #fff); }
  #supplemental-record-list .record-entry-card--meeting { background: var(--ui-surface, #fff); }
  #supplemental-record-list .record-entry-card .record-list-summary { grid-template-columns: max-content minmax(0, 1fr); gap: 8px 12px; }
  #supplemental-record-list .record-entry-card .record-list-summary > strong { grid-column: 1 / -1; grid-row: 1; color: var(--ui-ink, #263238); font-size: 16px; line-height: 1.5; overflow-wrap: anywhere; }
  #supplemental-record-list .record-type-label { color: var(--ui-ink, #394b58); background: var(--ui-accent-soft, #edf0f3); font-size: 13px; font-weight: 600; }
  #supplemental-record-list .record-entry-card--meeting .record-type-label { color: var(--ui-ink, #345b7a); background: var(--ui-accent-soft, #eaf1f8); }
  #supplemental-record-list .record-entry-time { color: var(--ink-soft); font-size: 14px; }
  #supplemental-record-list .document-actions { gap: 8px; }
  #supplemental-record-list .document-actions .button { min-height: 44px; padding: 10px 14px; border-color: var(--ui-control-border, #aebbc3); border-radius: 8px; background: var(--ui-surface, #fff); color: var(--ui-accent); font-size: var(--ui-text-label); font-weight: 600; }
  #supplemental-record-list .document-actions .record-delete-button { color: #a12e26; border-color:transparent; }
  #supplemental-record-list .document-actions .button:hover { background: var(--ui-accent-soft); border-color: var(--ui-accent); }
  #supplemental-record-list .document-actions .record-delete-button:hover { background: #fff0eb; border-color: #e5b9af; }
  .document-lane.supplemental .support-record-exports { margin-top: 8px; padding: 16px; border-radius: 8px; background: var(--ui-canvas, #f8fafb); }
  .document-lane.supplemental .support-record-exports .field { width: 100%; max-width: 280px; min-width: 0; }
  #support-record-fiscal-year { width: 100%; }
  .document-lane.supplemental .support-record-exports > .button { height: auto; min-height: 44px; font-size: 14px; color: var(--ui-ink, #394c54); border-color: var(--ui-control-border, #c4cdd2); background: var(--ui-surface, #fff); }
  .document-lane.supplemental .support-record-exports .field select { width: 100%; height: 44px; min-height: 44px; font-size: 14px; }
  @media (max-width: 1200px) {
    #supplemental-record-list .record-entry-card { grid-template-columns: minmax(0, 1fr); gap: 8px; }
    #supplemental-record-list .document-actions { justify-content: flex-end; }
  }
  @media (max-width: 1000px) {
    .record-browser.has-calendar { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .record-browser .record-calendar { width: min(340px, 100%); box-sizing: border-box; }
  }
  @media (max-width: 650px) {
    #support-record-list-tools .field { flex: 1 1 140px; }
    #support-record-list-tools p { flex-basis: 100%; margin: 0; }
    .record-browser .record-calendar { width: 100%; }
    .record-calendar-day { min-height: 44px; }
    #supplemental-record-list .document-actions { justify-content: flex-start; }
    .document-lane.supplemental .support-record-exports > .button { width: 100%; }
  }
}


.sidebar-footer { margin-top: auto; display: grid; gap: 10px; }
.sidebar-footer .sidebar-account { margin-top: 0; }
.sidebar-manual-link { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 10px 12px; border: 1px solid #567469; border-radius: 10px; color: #fffefa; text-decoration: none; font-size: 14px; font-weight: 600; }
.sidebar-manual-link:hover { background: #365f53; }
.sidebar-manual-link:focus-visible { outline: 2px solid white; outline-offset: 3px; }
.manual-link-new-tab { margin-left: auto; color: #d6e3db; }
.sidebar-selected-person { margin: 16px 0; padding: 16px 0; border-top: 1px solid rgb(255 255 255 / 20%); border-bottom: 1px solid rgb(255 255 255 / 20%); }
.sidebar-selected-person h2 { margin: 0 0 10px; color: #c2d4c8; font-size: 12px; font-weight: 500; }
.sidebar-selected-person-heading { display: grid; gap: 6px; margin-bottom: 12px; }
.sidebar-selected-person-heading strong { color: #fff; font-size: 15px; overflow-wrap: anywhere; }
.sidebar-person-switch { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 40px; margin-top: 4px; padding: 8px 12px; border: 1px solid #91b2a6; border-radius: 8px; background: #365f53; color: #fff; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.sidebar-person-switch:hover { background: #436f61; border-color: #c3d7ce; }
.sidebar-person-links + .sidebar-person-switch { margin-top: 14px; }
.sidebar-person-switch:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.sidebar-person-links { display: grid; gap: 4px; }
.sidebar-person-links button { min-height: 42px; padding: 9px 12px; border: 0; border-radius: 8px; background: transparent; color: #e0eae4; text-align: left; font: inherit; font-size: 14px; cursor: pointer; }
.sidebar-person-links button:hover { background: rgb(255 255 255 / 8%); }
.sidebar-person-links button[aria-current="page"] { background: #396355; color: white; box-shadow: inset 3px 0 #dfb28c; }

.child-roster-toolbar.reference-actions { align-items: flex-end; }
.child-roster-toolbar.reference-actions select,
.child-roster-toolbar.reference-actions .button { box-sizing: border-box; height: 50px; min-height: 50px; margin: 0; padding: 10px 14px; font-size: 15px; line-height: 1.4; }
.child-roster-toolbar.reference-actions .button { display: inline-flex; align-items: center; justify-content: center; }

.child-profile-year-control { width: 190px; max-width: 100%; margin: 0 0 20px; }
.child-profile-year-control .field { margin: 0; }
.assessment-common-value { padding: 10px 0; border-bottom: 1px solid var(--ui-border); gap: 8px; }
.assessment-common-value > strong { font-size: 13px; }
.assessment-common-value > span { white-space: pre-wrap; font-size: 16px; line-height: 1.6; }
.assessment-step-panels, .assessment-step, .assessment-original-scroll { min-width: 0; }
.original-document-sheet { min-width: 0; }
.original-document-options { margin: 20px 0; }
.assessment-original-scroll { box-sizing: border-box; width: 100%; max-width: 100%; overflow-x: auto; margin-top: 12px; border: 1px solid #cad4cc; background: white; border-radius: 6px; padding: 16px; }
.assessment-original-scroll:focus-visible { outline: 2px solid #245347; outline-offset: 3px; }
.assessment-original-table { width: 100%; min-width: 980px; table-layout: fixed; border-collapse: collapse; color: #253d35; font-size: 13px; line-height: 1.45; }
.assessment-original-table td { padding: 2px 3px; vertical-align: middle; overflow-wrap: anywhere; }
.assessment-original-table .is-shared { background: #eaf3ed !important; }
.assessment-original-table .is-assessment-inherited,
.assessment-original-table .is-assessment-inherited .assessment-cell-input { background:#edf4ff!important; }
.assessment-original-table .is-assessment-inherited.is-inheritance-edited { box-shadow:inset 3px 0 #587baa; }
.assessment-inheritance-legend { display:inline-flex; padding:9px 12px; border:1px solid #ccdcef; border-left:3px solid #87a8d1; border-radius:5px; background:#edf4ff; color:#294c79; font-size:14px; cursor:pointer; }
.assessment-inheritance-details ul { margin:8px 0; padding-left:22px; color:#294c79; font-size:13px; line-height:1.8; }
.assessment-original-table[data-original-sheet="consultation"] .is-shared > .assessment-shared-text { background: inherit; }
.assessment-auto-fill-legend { margin-right: auto; padding: 5px 9px; border-left: 4px solid #aac8b5; background: #eaf3ed; color: #245347; font-size: 12px; }
.assessment-shared-legend { padding: 4px 8px; border-radius: 4px; background: #eaf3ed; color: #245347; white-space: nowrap; }
.assessment-original-table .has-input { background: #fff; }
.assessment-original-text, .assessment-shared-text { white-space: pre-wrap; }
.assessment-original-table[data-original-sheet="consultation"] .assessment-section-label { font-size: 13px; font-weight: 600; line-height: 1.5; text-align: center; padding: 2px; }
.assessment-original-table .assessment-section-label .assessment-original-text { display: block; white-space: pre-line; word-break: keep-all; overflow-wrap: normal; }
.assessment-family-heading { display: inline-block; white-space: pre-line; word-break: keep-all; overflow-wrap: normal; font-size: 12px; }
.assessment-genogram-cell { position: relative; }
.assessment-genogram { position: absolute; inset: 2px; }
.assessment-genogram svg { width: 100%; height: 100%; }
.assessment-genogram-tools { position: absolute; right: 3px; top: 3px; }
.assessment-genogram-tools button { min-height: 25px; padding: 2px 6px; font-size: 11px; }
 .genogram-dialog { width: min(1160px, 95vw); max-height: 92vh; overflow-y: auto; }
.genogram-intro, .genogram-help { color: #52685f; line-height: 1.65; }
.genogram-intro { margin: 8px 0 24px; }
.genogram-help { font-size: 13px; margin: 8px 0 16px; }
.genogram-body { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(0, 1.6fr); gap: 28px; align-items: start; }
.genogram-preview-panel { position: sticky; top: 0; padding: 18px; background: #f3f7f4; border: 1px solid #cbd8d0; border-radius: 12px; }
.genogram-body h3 { margin: 0; font-size: 17px; }
.genogram-preview svg { display: block; width: 100%; height: auto; margin: 16px auto; background: white; border: 1px solid #dbe4dd; border-radius: 8px; }
.genogram-legend { white-space: pre-line; font-size: 13px; line-height: 1.8; margin: 0; }
.genogram-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.genogram-members { display: grid; gap: 14px; margin-bottom: 28px; }
.genogram-member { border: 1px solid #cbd8d0; border-radius: 10px; padding: 16px; background: #fff; min-width: 0; }
.genogram-member-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.genogram-member-heading h4 { margin: 0; color: #224b3f; white-space: nowrap; }
.genogram-member-name { flex: 1; font-size: 13px; overflow-wrap: anywhere; color: #52685f; }
.genogram-member-heading .button, .genogram-link > .button { min-height: 32px; padding: 4px 10px; font-size: 13px; }
.genogram-member-fields { display: grid; grid-template-columns: minmax(70px, .7fr) minmax(120px, 1.5fr) minmax(110px, 1fr) minmax(55px, .5fr); gap: 10px; }
.genogram-member .field, .genogram-link .field { min-width: 0; margin: 0; }
.genogram-member .field input, .genogram-member .field select, .genogram-link .field select { width: 100%; min-width: 0; min-height: 42px; font-size: 14px; padding: 8px; }
.genogram-member-settings { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: end; border-top: 1px solid #e3e9e5; padding-top: 12px; margin-top: 14px; }
.genogram-member-settings .field { flex: 1 1 190px; }
.genogram-check { display: inline-flex; align-items: center; gap: 6px; min-height: 42px; font-size: 13px; white-space: nowrap; }
.genogram-check input { margin: 0; }
.genogram-link { display: grid; grid-template-columns: minmax(105px, .8fr) minmax(0, 1fr) minmax(0, 1fr) auto; gap: 10px; align-items: end; padding: 14px; border: 1px solid #cbd8d0; border-radius: 10px; margin-bottom: 12px; }
.genogram-empty { color: #52685f; font-size: 13px; }
.genogram-dialog .form-error[hidden] { display: none; }
.genogram-actions { position: sticky; bottom: -1px; background: #fffefa; z-index: 2; display: flex; justify-content: end; gap: 10px; margin-top: 24px; border-top: 1px solid #cbd8d0; padding-top: 16px; }
@media (max-width: 850px) {
 .genogram-body { grid-template-columns: 1fr; gap: 20px; }
 .genogram-preview-panel { position: static; }
 .genogram-preview svg { max-width: 420px; }
}
@media (max-width: 560px) {
 .genogram-member-fields { grid-template-columns: 1fr 1fr; }
 .genogram-link { grid-template-columns: 1fr 1fr; }
 .genogram-link .field:first-child { grid-column: 1 / -1; }
 .genogram-section-heading { align-items: start; flex-wrap: wrap; }
 .genogram-member { padding: 12px; }
}

.assessment-family-tools { position: sticky; top: 80px; z-index: 3; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 8px 12px; margin: 12px 0; border: 1px solid #cad4cc; border-radius: 6px; background: #f7faf8; }
.assessment-family-tools .field { display: flex; align-items: center; gap: 8px; margin: 0; }
.assessment-family-tools .field > span { white-space: nowrap; }
.assessment-family-tools select { min-width: 160px; }
.assessment-family-tools button, .assessment-family-tools select { min-height: 36px; padding: 6px 10px; font-size: 13px; }
.assessment-family-context { position: fixed; z-index: 10; width: max-content; max-width: calc(100vw - 24px); padding: 12px; border: 1px solid #b7c9be; border-radius: 8px; background: #fff; box-shadow: 0 4px 16px #183f3426; }
.assessment-family-context[hidden] { display: none; }
.assessment-family-context > strong { display: block; padding-right: 24px; font-size: 13px; }
.assessment-family-context-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.assessment-family-context-actions button { min-height: 34px; padding: 6px 10px; font-size: 13px; }
.assessment-family-context > small { display: block; margin-top: 6px; color: #245347; }
.assessment-family-context > small:empty { display: none; }
.assessment-context-close { position: absolute; right: 5px; top: 4px; border: 0; background: none; color: #53685d; font-size: 20px; padding: 0 6px; }
.assessment-cell-entry { display: flex; align-items: center; flex-wrap: wrap; gap: 3px; min-width: 0; width: 100%; }
.assessment-cell-entry + .assessment-cell-entry { margin-top: 3px; }
.assessment-cell-entry.has-affixes { flex-wrap: nowrap; }
.assessment-cell-entry.has-affixes .assessment-cell-input { flex: 1 1 0; width: 0; }
.assessment-entry-prefix, .assessment-entry-suffix { flex: 0 0 auto; white-space: nowrap; }
.assessment-cell-entry.is-inline-choice { display: inline-flex; width: auto; margin: 4px 14px 4px 0; flex-wrap: nowrap; }
.assessment-cell-entry.is-inline-choice { vertical-align: middle; }
.assessment-cell-entry.is-inline-detail { width: min(260px, calc(100% - 180px)); margin: 4px 0; }
.assessment-cell-entry.is-inline-choice:has(+ .is-inline-detail) { margin-right: 4px; }
.assessment-cell-entry.is-inline-choice .assessment-mark-label { white-space: nowrap; }
.assessment-original-table .assessment-circle-label { width:auto !important; min-width:0 !important; height:auto !important; min-height:30px; padding:3px 10px !important; border:1px solid transparent !important; border-radius:50% !important; background:transparent !important; color:#183f34 !important; font:inherit !important; white-space:nowrap; }
.assessment-original-table .assessment-circle-label[aria-pressed="true"] { border-color:#245347 !important; background:#eaf3ed !important; }
.crieba-record-original-scroll { width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; border: 1px solid #cad4cc; border-radius: 4px; background: white; }
.crieba-record-original-scroll:focus-visible { outline: 2px solid #245347; outline-offset: 3px; }
.crieba-record-original-table { width: 100%; min-width: 660px; border-collapse: collapse; table-layout: fixed; }
.crieba-record-original-table th, .crieba-record-original-table td { padding: 10px; border: 1px solid #cad4cc; vertical-align: top; }
.crieba-record-original-table th { background: #eaf3ed; text-align: center; font-size: 14px; font-weight: 600; }
.crieba-record-original-table .record-time-column { width: 300px; }
.crieba-record-original-table .record-short-column { width: 220px; }
.crieba-record-original-table.record-table-programRecord { min-width: 820px; }
.crieba-record-original-table.record-table-parentSupportContent .record-short-column { width: 120px; }
.crieba-record-original-table .field { min-width: 0; margin: 0; }
.crieba-record-original-table .field > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.crieba-record-original-table input, .crieba-record-original-table select, .crieba-record-original-table textarea { width: 100%; min-width: 0; }
.crieba-record-original-table textarea { min-height: 220px; resize: vertical; }
.crieba-record-original-table .record-time-cell > .field { display: inline-grid; width: calc((100% - 20px) / 2); vertical-align: top; }
.crieba-record-original-table .record-time-separator { display: inline-block; width: 20px; text-align: center; padding: 14px 0; }
.crieba-record-section .field-grid { min-width: 0; }
.crieba-record-section .field-grid > .crieba-record-original-scroll { grid-column: 1 / -1; }
.program-record-manual.is-comparing > .crieba-record-original-scroll { grid-column: auto; align-self: start; }
.assessment-cell-input { box-sizing: border-box; width: 100%; min-width: 0 !important; max-width: 100%; min-height: 28px !important; border: 1px solid #d7ded6 !important; border-radius: 3px !important; padding: 3px 4px !important; background: #fff !important; color: #183f34; font: inherit !important; line-height: 1.45 !important; }
textarea.assessment-cell-input { min-height: 0 !important; resize: none; padding: 3px 4px !important; line-height: 1.45 !important; }
.assessment-original-table[data-original-sheet="case1"] textarea[data-original-key="caseIssue"] { padding-top: 12px !important; }
textarea.assessment-cell-input.has-writing-assist { padding: 8px !important; }
.assessment-original-table td.has-narrative { position: relative; }
.assessment-original-table .is-narrative-entry { position: absolute; inset: 2px 3px; width: auto; display: block; }
.assessment-original-table[data-original-sheet="case2"] .is-narrative-entry { inset: 8px 12px; }
.assessment-original-table[data-original-sheet="case2"] [data-original-cell="V33"] { height:72px; }
.assessment-original-table .is-narrative-entry textarea { display: block; height: 100%; overflow-y: auto; }
.assessment-original-table .is-narrative-entry textarea { scrollbar-width: none; }
.assessment-original-table .is-narrative-entry textarea::-webkit-scrollbar { display: none; width: 0; height: 0; }
#plan-editor-form .is-narrative-entry > textarea { scrollbar-width:thin; }
#plan-editor-form .is-narrative-entry > textarea::-webkit-scrollbar { display:block; width:5px; }
.assessment-original-table .is-narrative-entry:has(> .assessment-narrative-helper) { display:grid; grid-template-rows:22px minmax(0,1fr); gap:3px; }
.assessment-original-table .is-narrative-entry:has(> .assessment-narrative-helper) > textarea { grid-row:2; min-height:0; }
.assessment-original-table .assessment-narrative-helper { position:static; grid-row:1; justify-self:end; align-self:center; width:auto; line-height:18px; }
.assessment-original-table .assessment-narrative-helper button { padding: 1px 3px; background: #fff; }
.assessment-cell-input:focus { outline:none !important; border-color:#245347 !important; box-shadow:inset 0 0 0 1px #245347; }
.assessment-original-table .assessment-approval-input { font-size: 11px !important; }
.assessment-original-table .assessment-cell-input { text-align: left; scroll-margin-block: 160px; }
.assessment-original-table td.is-shared > .assessment-shared-text { display: block; text-align: left; }
.assessment-original-table[data-original-sheet="consultation"] .assessment-family-centered-cell :is(.assessment-shared-text,.assessment-cell-input,.assessment-original-text) { text-align:center!important; }
.assessment-original-table[data-original-sheet="annex"] .assessment-annex-header-centered-cell :is(.assessment-shared-text,.assessment-profile-value,.assessment-cell-input,.assessment-original-text) { text-align:center!important; }
.assessment-original-table[data-original-sheet="chart"] :is([data-original-cell="I1"],[data-original-cell="I2"]) :is(.assessment-cell-input,.assessment-shared-text) { display:block; text-align:left!important; }
.assessment-original-table[data-original-sheet="chart"] .assessment-provider-centered-cell :is(.assessment-shared-text,.assessment-profile-value,.assessment-cell-input,.assessment-original-text) { text-align:center!important; }
.assessment-original-table[data-original-sheet="basic"] .assessment-basic-centered-cell :is(.assessment-shared-text,.assessment-profile-value,.assessment-cell-input,.assessment-original-text) { text-align:center!important; }
.assessment-original-table[data-original-sheet="basic"] .assessment-basic-centered-cell .assessment-cell-entry { justify-content:center; }
.assessment-original-table[data-original-sheet="basic"] :is([data-original-cell="C9"],[data-original-cell="C10"],[data-original-cell="F18"]) > .assessment-shared-text { text-align:center; }
.assessment-original-table[data-original-sheet="basic"] :is([data-original-cell="C22"],[data-original-cell="G22"],[data-original-cell="L22"],[data-original-cell="S22"],[data-original-cell="C23"],[data-original-cell="C24"],[data-original-cell="G24"],[data-original-cell="L24"]) :is(.assessment-shared-text,.assessment-profile-value,.assessment-cell-input) { text-align:center; }
.assessment-original-table .assessment-cell-input[data-original-key^="consultationCategory"] { text-align: left; }
.assessment-original-table[data-original-sheet="consultation"] .is-narrative-entry:not(.is-address-entry) textarea { text-align: left; }
.assessment-original-table .assessment-entry-link { scroll-margin-block: 160px; }
.assessment-cell-mark { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 32px; height: 32px; min-height: 32px; border: 1px solid #d6dfd7; border-radius: 3px; padding: 0; background: #fff; color: #b1bdb4; font: inherit; font-size: 22px; cursor: pointer; }
.assessment-cell-mark[aria-pressed="true"] { border-color: #245347; background: #245347; color: #fff; font-weight: 700; }
.assessment-cell-mark[aria-pressed="true"] + .assessment-mark-label { color: #173f32; font-weight: 700; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.assessment-cell-mark:hover, .assessment-cell-mark:focus-visible { outline: 2px solid #245347; outline-offset: -1px; }
.assessment-mark-label { flex: 1 1 auto; }
#assessment-editor-form:has(.assessment-original-table) .assessment-step > .assessment-category { display: none !important; }
@media (max-width: 600px) { .assessment-original-scroll { padding: 8px; } .assessment-view-controls p { line-height: 1.8; } }

/* Search and selection share one list with a single scroll area. */
#child-picker-dialog[open] { display: flex; flex-direction: column; gap: 16px; max-height: min(85dvh, 780px); overflow: hidden; }
#child-picker-dialog > .dialog-heading, #child-picker-dialog > .field, #child-picker-recent-section { flex-shrink: 0; margin: 0; }
#child-picker-dialog .picker-section-heading { margin: 0 0 8px; padding: 0; background: none; border: 0; }
#child-picker-dialog .picker-section-heading h3 { font-size: var(--ui-text-label); }
#child-picker-recent { display: flex; flex-wrap: wrap; gap: 6px; }
#child-picker-recent .picker-option { min-height: 38px; padding: 7px 10px; }
#child-picker-recent .picker-avatar, #child-picker-recent .picker-option small, #child-picker-recent .picker-current-badge { display: none; }
#child-picker-dialog .picker-option strong { white-space: normal; overflow-wrap: anywhere; }
#child-picker-results-section { display: flex; flex-direction: column; min-height: 0; margin: 0; }
#child-picker-results { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; max-height: none; min-height: 0; overflow-y: auto; border: 1px solid var(--ui-border); border-radius: 10px; }
#child-picker-results .picker-option { min-height: 68px; padding: 10px; gap: 10px; }
#child-picker-dialog .dialog-actions:not(:has(button:not([hidden]))) { display: none; }
@media (max-width: 640px) { #child-picker-results { grid-template-columns: repeat(2, minmax(0, 1fr)); } #child-picker-results .picker-option { flex-wrap: wrap; gap: 6px; } }

#child-picker-dialog[open] { height: min(85dvh, 780px); }
#child-picker-dialog .dialog-close-form { position: absolute; top: 20px; right: 20px; }
#child-picker-dialog > .dialog-heading { padding-right: 44px; }
#child-picker-recent .picker-option { display: block; width: auto; }
#child-picker-recent .picker-option strong { white-space: nowrap; }
#child-picker-results-section { flex: 1; }
#child-picker-dialog > .dialog-actions { display: none; }

#child-picker-dialog.record-editor-page[open] { display: block; width: 100%; height: auto; max-height: none; overflow: visible; }
#child-picker-dialog.record-editor-page .dialog-close-form { position: static; margin: 0 0 20px; }
#child-picker-dialog.record-editor-page > .dialog-heading { display: none; }
#child-picker-dialog.record-editor-page > .field { margin-bottom: 24px; max-width: 560px; }
#child-picker-dialog.record-editor-page #child-picker-recent-section { margin-bottom: 24px; }
#child-picker-dialog.record-editor-page #child-picker-results { overflow: visible; grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1100px) { #child-picker-dialog.record-editor-page #child-picker-results { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { #child-picker-dialog.record-editor-page #child-picker-results { grid-template-columns: repeat(2, minmax(0, 1fr)); } }


#child-picker-dialog.record-editor-page #child-picker-results-title { display: none; }
#child-picker-dialog.record-editor-page .picker-section-heading { justify-content: flex-start; color: var(--ui-muted); }
#child-picker-dialog.record-editor-page #child-picker-results { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; border: 0; border-radius: 0; background: transparent; }
#child-picker-dialog.record-editor-page #child-picker-results .picker-option { display: flex; min-height: 76px; padding: 12px; gap: 10px; border: 1px solid var(--ui-border); border-radius: 10px; box-shadow: none; }
#child-picker-dialog.record-editor-page #child-picker-results .picker-option.is-current { background: var(--ui-accent-soft); border-color: var(--ui-control-border); }
#child-picker-dialog.record-editor-page .picker-avatar { width: 40px; height: 40px; flex: 0 0 40px; background: var(--ui-accent-soft); color: var(--ui-accent); font-size: 19px; }
#child-picker-dialog.record-editor-page .picker-avatar img { width: 100%; height: 100%; object-fit: cover; }
#child-picker-dialog.record-editor-page .picker-option-name { display: block; }
#child-picker-dialog.record-editor-page .picker-option small { font-size: var(--ui-text-sm); }
@media (min-width: 1101px) and (max-width: 1450px) { #child-picker-dialog.record-editor-page #child-picker-results { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 1100px) { #child-picker-dialog.record-editor-page #child-picker-results { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 740px) { #child-picker-dialog.record-editor-page #child-picker-results { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } #child-picker-dialog.record-editor-page #child-picker-results .picker-option { padding: 10px; gap: 8px; flex-wrap: nowrap; } #child-picker-dialog.record-editor-page .picker-avatar { width: 32px; height: 32px; flex-basis: 32px; } }

#main-content > #child-picker-dialog.record-editor-page { max-width: none; }
#main-content > #child-picker-dialog.record-editor-page > .dialog-close-form { position: static; text-align: left; padding: 0; margin: 0 0 20px; }
#main-content > #child-picker-dialog.record-editor-page > .dialog-actions { display: none; }
#child-picker-dialog.record-editor-page .picker-avatar { box-shadow: none; }

#child-picker-dialog .picker-search-tools { display: flex; align-items: end; gap: 12px; margin-bottom: 24px; }
#child-picker-dialog .picker-search-tools .field { margin: 0; }
#child-picker-dialog .picker-search-tools .field:first-child { width: min(560px, 100%); min-width: 0; }
#child-picker-dialog .picker-search-tools select { min-width: 160px; }
@media (max-width: 640px) { #child-picker-dialog .picker-search-tools { flex-wrap: wrap; } }

#child-picker-dialog.record-editor-page #child-picker-recent { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
#child-picker-dialog.record-editor-page #child-picker-recent .picker-option { display: flex; width: 100%; min-height: 76px; padding: 12px; gap: 10px; border: 1px solid var(--ui-border); border-radius: 10px; box-shadow: none; }
#child-picker-dialog.record-editor-page #child-picker-recent .picker-avatar { display: grid; }
#child-picker-dialog.record-editor-page #child-picker-recent .picker-option small { display: block; }
#child-picker-dialog.record-editor-page #child-picker-recent .picker-option strong { white-space: normal; }
@media (min-width: 1101px) and (max-width: 1450px) { #child-picker-dialog.record-editor-page #child-picker-recent { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 1100px) { #child-picker-dialog.record-editor-page #child-picker-recent { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 740px) { #child-picker-dialog.record-editor-page #child-picker-recent { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }

.client-status-bulk, .client-status-save { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 12px 0; }
.client-status-bulk .field { margin: 0; }
.client-status-bulk { padding: 8px 12px; border: 1px solid var(--ui-border); border-radius: 8px; background: var(--ui-surface); }
.client-status-target { display: flex; align-items: center; gap: 8px; }
.client-status-target > span, #client-status-selection { font-size: 14px; white-space: nowrap; flex-shrink: 0; }
.client-status-target select { width: 110px; flex-shrink: 0; }
#client-status-selection { min-width: 76px; font-weight: 600; }
#view-service-home .client-status-bulk span,
#view-service-home .client-status-bulk select,
#view-service-home .client-status-bulk .button { font-size: 14px; font-weight: 400; }
.client-status-code { color: var(--ui-muted); font-size: 12px; }
.client-status-save { justify-content: flex-end; }
.client-status-table-scroll { overflow-x: auto; }
.client-status-table { width: 100%; border-collapse: collapse; background: var(--ui-surface); }
.client-status-table th, .client-status-table td { padding: 6px 10px; border-bottom: 1px solid var(--ui-border); text-align: left; }
.client-status-table thead { background: var(--ui-accent-soft); }
.client-status-table small { display: inline-block; margin-left: 12px; color: var(--ui-muted); font-size: 12px; font-weight: 400; }
html { scrollbar-gutter: stable; }
#view-service-home .client-status-manager { width: 100%; }
#view-service-home .client-status-manager .home-directory-heading h1 { visibility: hidden; }
#view-service-home .client-status-table { table-layout: fixed; }
#view-service-home .client-status-table th:first-child { width: 52px; }
#view-service-home .client-status-table thead th:nth-child(2) { width: 240px; }
#view-service-home .client-status-table th:nth-child(3) { width: 72px; }
#view-service-home .client-status-table thead th:nth-child(4) { width: 190px; }
#view-service-home .client-status-table select { width: 152px; min-width: 0; min-height: 34px; height: 34px; padding: 4px 8px; font-size: 14px; }
#view-service-home .client-status-bulk .button, #view-service-home .client-status-bulk select { min-height: 36px; padding: 6px 10px; }
.client-status-table tbody tr { height: 46px; }
@media (max-width: 740px) {
  .client-status-table { min-width: 760px; }
  .client-status-table small { display: block; margin-left: 0; }
}
.client-status-table input[type=checkbox], .client-status-bulk input[type=checkbox] { width: 18px; height: 18px; }
#view-service-home .client-status-manager input[type=checkbox] { min-height: 18px; height: 18px; padding: 0; margin: 0; vertical-align: middle; }

.home-notices .certificate-notice, .certificate-notice { display: block; }
.certificate-notice-group { margin-top: 12px; }
.certificate-notice-group > span { display: block; margin-bottom: 8px; font-size: var(--ui-text-sm); }
.certificate-notice-names { display: flex; flex-wrap: wrap; gap: 8px; }
.certificate-notice-names > .button { min-height: 36px; padding: 5px 10px; font-size: var(--ui-text-label); }

.client-card.has-notice { background: var(--ui-warning-soft); border-color: #d9c08e; }
.client-card.has-notice:hover { border-color: var(--ui-warning); }
.client-card.has-notice.is-last-opened { box-shadow: inset 0 0 0 2px var(--ui-accent); }
.client-card-notice { color: var(--ui-warning); font-size: 12px; line-height: 1.5; }
.client-card.certificate-deadline { background: #fff0ee; border-color: #dfaaa2; }
.client-card.certificate-deadline:hover { border-color: #a33c30; }
.client-card.certificate-deadline .client-card-notice { color: #a33c30; }

.button.excel-export-button,
.document-lane.supplemental .support-record-exports > .excel-export-button {
  height: 44px;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid #a9beb2;
  border-radius: 8px;
  background: #e7f0ea;
  color: var(--forest);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
}
.button.excel-export-button:hover,
.document-lane.supplemental .support-record-exports > .excel-export-button:hover {
  border-color: #829e8d;
  background: #dce9e1;
}
.child-profile-export-footer { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }
.roster-field-toggle { display: flex; align-items: center; justify-content: flex-end; gap: 8px; min-height: 36px; margin-bottom: 12px; color: var(--ink-soft); font-size: 13px; cursor: pointer; }
.roster-field-toggle input { width: 16px; height: 16px; min-height: 0; margin: 0; accent-color: var(--forest); }
[data-child-profile-workspace][data-show-roster-fields="true"] .child-profile-table th[data-roster-field="true"] { box-shadow: inset 3px 0 #5f8c73; }
.program-name-manage-link { padding:0; border:0; background:transparent; color:var(--forest); font-size:13px; text-decoration:underline; cursor:pointer; }
.program-name-dialog { width:min(760px,calc(100vw - 32px)); max-height:85vh; overflow:auto; }
.program-name-manager-list { display:grid; gap:12px; margin:20px 0; }
.program-name-manager-row { display:grid; grid-template-columns:minmax(140px,1fr) auto 40px 40px auto; align-items:center; gap:8px; }
.program-name-visible { display:flex; align-items:center; gap:6px; font-size:13px; white-space:nowrap; }
.program-name-visible input { width:16px; height:16px; min-height:0; margin:0; accent-color:var(--forest); }
.program-name-manager-row .button { padding:8px; min-height:40px; }
@media(max-width:600px) { .program-name-manager-row { grid-template-columns:1fr 40px 40px auto; } .program-name-manager-row > input { grid-column:1 / -1; } }
.crieba-record-original-table th .program-name-manage-link { display:block; margin:6px auto 0; font-weight:400; }
.program-name-manager-row > input { width:100%; min-width:0; height:44px; padding:10px 12px; border:1px solid #b5c7bd; border-radius:8px; background:#fff; color:var(--ink); font:inherit; }
.assessment-print-actions { display:flex; justify-content:flex-end; margin:12px 0 0; }
.a4-print-dialog { width:min(1160px,calc(100vw - 32px)); max-width:none; height:calc(100vh - 40px); max-height:none; padding:0; border:1px solid #cbd8d0; border-radius:14px; box-shadow:0 18px 60px #173c3530; }
.a4-print-dialog::backdrop { background:#14372f66; }
.a4-print-dialog[open] { display:flex; flex-direction:column; }
.a4-print-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding:16px 20px; border-bottom:1px solid var(--line); }
.a4-print-toolbar h2 { margin:0; font-size:20px; }
.a4-print-toolbar p { flex:1 1 300px; margin:0; color:var(--ink-soft); font-size:13px; }
.a4-print-buttons { display:flex; gap:8px; }
.a4-print-frame { width:100%; flex:1; min-height:0; border:0; }
.assessment-entry-helper { display:block; flex-basis:100%; }
.assessment-entry-link { padding:2px 0; border:0; background:transparent; color:var(--forest); font:inherit; font-size:11px; text-decoration:underline; cursor:pointer; }
.assessment-birth-age { display:block; flex-basis:100%; color:inherit; font-size:inherit; }
.assessment-assist-dialog { width:min(540px,calc(100vw - 32px)); }
.assessment-assist-dialog .field { margin:16px 0; }
.assessment-date-selects { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:12px; }

.assessment-text-dialog { width: min(900px, calc(100vw - 32px)); padding: 24px; }
.assessment-text-dialog h2 { margin: 0 0 20px; }
.assessment-text-dialog > form > .field { margin: 0 0 16px; }
.assessment-text-dialog textarea { min-height: 240px; height: clamp(240px, 36dvh, 320px); max-height: 55dvh; resize: vertical; line-height: 1.8; }
.assessment-text-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 12px; background: #f5f8f5; border: 1px solid #d7e1d9; border-radius: 6px; }
.assessment-text-adjust { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.assessment-text-dialog .assessment-text-tools .field { display: flex; align-items: center; gap: 8px; width: auto; margin: 0; }
.assessment-text-tools .field > span { margin: 0; white-space: nowrap; font-size: 13px; }
.assessment-text-tools input { width: 80px; min-height: 40px; height: 40px; padding: 8px; }
.assessment-text-dialog .button { min-height: 40px; padding: 8px 14px; font-size: 14px; white-space: nowrap; }
.assessment-text-dialog .dialog-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; padding-top: 20px; border-top: 1px solid #d7e1d9; }
@media (max-width: 600px) { .assessment-text-dialog { padding: 18px; } .assessment-text-tools { gap: 10px; } .assessment-text-adjust { width: 100%; justify-content: space-between; gap: 8px; } }
.assessment-text-status { margin: 12px 0; padding: 10px 12px; color: #245347; background: #eaf3ed; border-left: 3px solid #6d9c85; font-size: 13px; }
.assessment-text-source { margin: 16px 0; color: var(--ink-soft); font-size: 13px; }
.assessment-text-source p { white-space: pre-wrap; }

.assessment-handbook-row { display:grid; grid-template-columns:80px minmax(70px,1fr) minmax(185px,1.65fr); align-items:center; gap:6px; min-width:0; }
.assessment-handbook-detail { display:grid; grid-template-columns:64px minmax(0,1fr); align-items:center; gap:6px; margin-top:5px; text-align:left; }
.assessment-handbook-detail .assessment-cell-entry { width:100%; min-width:0; margin:0; }
.assessment-handbook-label { flex:0 0 auto; white-space:nowrap; }
.assessment-handbook-row .assessment-cell-entry { width:auto; flex-wrap:nowrap; min-width:0; margin:0; }
.assessment-handbook-row .assessment-cell-entry:last-child { flex:1.5 1 0; }
.assessment-handbook-row .assessment-cell-entry + .assessment-cell-entry { margin-top:0; }
.assessment-handbook-row .assessment-entry-prefix { font-size:11px; }
.assessment-handbook-row .assessment-cell-input { background:#eaf3ed !important; font-size:12px !important; }
.assessment-handbook-row .assessment-cell-entry.has-affixes .assessment-cell-input { padding:3px 2px !important; }

.assessment-livelihood-row { display:flex; align-items:center; gap:12px; min-width:0; }
.assessment-livelihood-group { display:flex; align-items:center; gap:4px; min-width:0; }
.assessment-livelihood-group:has(.is-inline-detail) { flex:1 1 0; }
.assessment-livelihood-row .assessment-cell-entry { width:auto; margin:0; flex-wrap:nowrap; }
.assessment-livelihood-row .is-inline-choice:not(.is-inline-detail) { flex:0 0 auto; }
.assessment-livelihood-row .is-inline-detail { flex:1 1 0; width:0; min-width:0; }
.assessment-livelihood-row .assessment-cell-entry.has-affixes .assessment-cell-input { padding:3px 2px !important; }
.assessment-original-table[data-original-sheet="case1"] :is([data-original-cell="C23"],[data-original-cell="C24"]) .assessment-livelihood-row { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,.7fr) minmax(0,1.3fr); gap:10px; text-align:left; }
.assessment-original-table[data-original-sheet="case1"] [data-original-cell="C24"] .assessment-livelihood-group:last-child { grid-column:2 / 4; }
.assessment-original-table[data-original-sheet="case1"] :is([data-original-cell="C23"],[data-original-cell="C24"]) .assessment-livelihood-group:first-child > .is-inline-choice:not(.is-inline-detail) { width:88px; }

.assessment-original-table[data-original-sheet="case1"] .assessment-cell-input[data-original-key="housing"] { text-align:left; }
.assessment-original-table[data-original-sheet="case1"] [data-original-cell="D25"] { padding-top:8px; padding-bottom:14px; }
.assessment-original-table[data-original-sheet="case1"] :is([data-original-cell="D28"],[data-original-cell="D30"]) { vertical-align:middle; }
.assessment-original-table[data-original-sheet="case1"] :is([data-original-cell="J26"],[data-original-cell="I27"]).is-shared,
.assessment-original-table[data-original-sheet="case1"] :is([data-original-cell="J26"],[data-original-cell="I27"]) > .assessment-shared-text { background:#fff !important; }
.assessment-original-table[data-original-sheet="case1"] [data-original-cell="I28"] .is-narrative-entry { inset:6px 3px; }

.assessment-original-table[data-original-sheet="case1"] td[data-original-cell="D32"],
.assessment-original-table[data-original-sheet="case1"] td[data-original-cell="D34"] { text-align:left !important; }
.assessment-original-table[data-original-sheet="case1"] :is([data-original-cell="D32"],[data-original-cell="D34"]) .is-inline-choice { box-sizing:border-box; width:140px; gap:8px; padding:6px 10px; margin:4px 12px 4px 0; border:1px solid #d7ded6; border-radius:5px; background:#fff; cursor:pointer; }
.assessment-original-table[data-original-sheet="case1"] :is([data-original-cell="D32"],[data-original-cell="D34"]) .is-inline-choice:has([aria-pressed="true"]) { border-color:#245347; background:#eaf3ed; }
.assessment-original-table[data-original-sheet="case1"] [data-original-cell="D36"] .assessment-livelihood-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:4px 0; }
.assessment-original-table[data-original-sheet="case1"] [data-original-cell="D36"] .assessment-livelihood-group { flex-wrap:wrap; gap:6px 12px; padding:8px 10px; border:1px solid #d7ded6; border-radius:5px; background:#fff; }
.assessment-original-table[data-original-sheet="case1"] [data-original-cell="D36"] .assessment-handbook-label { flex-basis:100%; text-align:left; font-weight:600; }
.assessment-original-table[data-original-sheet="case1"] :is([data-original-cell="D32"],[data-original-cell="D34"],[data-original-cell="D36"]) label { cursor:pointer; }
.assessment-original-table[data-original-sheet="case1"] .assessment-cell-input[data-original-key="housingEmergencySystem"] { text-align:left; min-height:32px !important; padding:5px 8px !important; }

.assessment-original-table[data-original-sheet="case1"] .assessment-cell-input[data-original-key="housingNotes"] { text-align:left; padding:8px !important; }
.assessment-original-table[data-original-sheet="case1"] [data-original-cell="D40"] .is-narrative-entry { inset:8px 12px; }
.assessment-housing-section { display:flex; flex-direction:column; gap:14px; padding:12px 10px; text-align:left; }
.assessment-housing-title { display:block; margin-bottom:8px; font-weight:600; }
.assessment-housing-row { display:grid; grid-template-columns:100px minmax(0,1fr); align-items:start; gap:8px; }
.assessment-housing-label { padding-top:4px; white-space:nowrap; }
.assessment-housing-content { min-width:0; text-align:left; }
.assessment-housing-content .assessment-cell-entry:not(.is-inline-choice) { display:flex; width:100%; margin:0; }
.assessment-housing-content .is-narrative-entry { position:static!important; height:auto; }
.assessment-housing-content .is-narrative-entry textarea { height:44px!important; min-height:44px!important; }
.assessment-housing-notes .is-narrative-entry textarea { height:96px!important; min-height:96px!important; }
.assessment-housing-content .is-inline-choice { margin:2px 12px 4px 0; }
.assessment-housing-address { display:block; padding:4px 0; white-space:pre-wrap; overflow-wrap:anywhere; }

.assessment-original-table .assessment-cell-input[data-original-key="lifeHistory"] { text-align:left; padding:8px !important; }
.assessment-original-table .assessment-cell-input[data-original-key="traitRemarks"] { text-align:left; padding:8px !important; }
.assessment-original-table .assessment-cell-input[data-original-key="caseHistory"] { text-align:left; padding:8px !important; }

.assessment-medical-cell { position:relative; }
.assessment-medical-stack { position:static; padding:8px 12px; display:flex; flex-direction:column; gap:8px; text-align:left; }
.assessment-medical-summary { display:block; flex:0 0 auto; white-space:pre-wrap; background:#eaf3ed; padding:3px 6px; line-height:1.4; }
.assessment-medical-stack .is-narrative-entry { position:static!important; width:100%; flex:0 0 auto; min-height:64px; }
.assessment-original-table .assessment-cell-input[data-original-key="medicalCare"] { text-align:left; }

.assessment-original-table[data-original-sheet="case2"] .assessment-cell-input:not([data-original-key="supporterAge"]),
.assessment-original-table[data-original-sheet="case2"] .assessment-shared-text { text-align:left; }
.assessment-original-table[data-original-sheet="case2"] td.is-shared > .assessment-shared-text { display:block; }

.assessment-original-table .assessment-cell-entry:not(.is-inline-choice):has(> .assessment-cell-mark) { justify-content:center; }
.assessment-original-table[data-original-sheet="traits"] .assessment-cell-mark { width:32px; height:32px; min-height:32px; font-size:21px; line-height:1; }
.assessment-original-table[data-original-sheet="traits"] .assessment-trait-detail { display:flex; align-items:center; flex-wrap:nowrap; gap:4px; }
.assessment-original-table[data-original-sheet="traits"] .assessment-trait-detail textarea { height:34px; min-height:34px !important; text-align:left; }

.assessment-original-table[data-original-sheet="traits"] td { padding:5px 8px; line-height:1.5; }
.assessment-original-table[data-original-sheet="traits"] td:has(> .assessment-cell-entry > .assessment-cell-mark) { padding:5px 2px; }
.assessment-original-table[data-original-sheet="traits"] td[rowspan] > .assessment-original-text { font-weight:600; }
.assessment-original-table[data-original-sheet="traits"] td:has(.assessment-trait-detail) { background:#f3f7f3; padding:6px 8px; }
.assessment-original-table[data-original-sheet="traits"] .assessment-trait-detail { gap:8px; }
.assessment-original-table[data-original-sheet="traits"] .assessment-trait-detail .assessment-entry-prefix { white-space:nowrap; color:#315b4d; }
.assessment-original-table[data-original-sheet="traits"] .assessment-trait-detail textarea { padding:6px 8px !important; border-color:#b8cbbc !important; }
.assessment-trait-choice-label { display:block; cursor:pointer; font-weight:400; }
.assessment-original-table[data-original-sheet="traits"] .assessment-trait-choice-label { font-weight:400!important; }
.assessment-original-table[data-original-sheet="traits"] td:has(.assessment-cell-mark[aria-pressed="true"]) + td .assessment-trait-choice-label { color:#173f32; font-weight:400; }
.assessment-original-table[data-original-sheet="traits"] td:has(.assessment-cell-mark[aria-pressed="true"]) + td :is(.assessment-trait-choice-label,.assessment-entry-prefix,.assessment-trait-detail .assessment-cell-input,.assessment-entry-suffix) { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }

.assessment-original-table .assessment-cell-entry.is-sense-choice { display:flex; width:100%; margin:0; padding:8px 10px; gap:10px; min-height:50px; border:1px solid #d8e2da; border-radius:6px; background:#fff; text-align:left; cursor:pointer; }
.assessment-original-table td:has(> .is-sense-choice) { padding:5px 8px; }
.assessment-original-table .is-sense-choice .assessment-mark-label { flex:1; min-width:0; white-space:normal; text-align:left; line-height:1.45; cursor:pointer; }
.assessment-original-table .is-sense-choice:has(.assessment-cell-mark[aria-pressed="true"]) { background:#eaf3ed; border-color:#245347; }
.assessment-original-table .is-sense-choice:hover { border-color:#6c9680; }
.assessment-original-table .is-sense-choice:focus-within { outline:2px solid #245347; outline-offset:1px; }

.assessment-sense-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.assessment-original-table .assessment-sense-cell { padding:8px; border-right:.75px solid #67746d; border-bottom:.75px solid #67746d; }

/* 書類共通の見出し・案内・帳票枠の余白を揃える。 */
#assessment-editor-form .assessment-step > header { display:flex; flex-direction:column; gap:8px; margin:0 0 16px; padding:0; }
#assessment-editor-form .assessment-step > header h3 { margin:0; font-size:22px; font-weight:600; line-height:1.5; }
#assessment-editor-form .assessment-step > header p { margin:0; font-size:14px; line-height:1.6; color:#526c61; }
.assessment-print-actions { align-items:center; flex-wrap:wrap; gap:10px 14px; margin:0; }
.assessment-auto-fill-legend { display:inline-flex; align-items:center; min-height:42px; padding:9px 12px; margin-right:0; border:1px solid #d5e3d8; border-left:3px solid #aac8b5; border-radius:5px; background:#f3f8f4; font-size:14px; line-height:1.6; }
.assessment-print-actions .assessment-auto-fill-legend:first-child { margin-right:auto; }
.assessment-print-actions > .button { min-height:42px; padding:9px 16px; line-height:1.5; }
.assessment-original-scroll { margin-top:16px; border-radius:8px; padding:20px; }
@media (max-width:600px) {
  #assessment-editor-form .assessment-step > header h3 { font-size:20px; }
  .assessment-auto-fill-legend { font-size:13px; padding:8px 10px; }
  .assessment-original-scroll { padding:10px; margin-top:12px; }
}

.assessment-original-table[data-original-sheet="consultation"] input[data-original-key^="consultationFamilyBirthDate"] { padding:3px 2px !important; }

.assessment-original-table[data-original-sheet="consultation"] :is([data-original-cell="B8"],[data-original-cell="B10"],[data-original-cell="B12"],[data-original-cell="B14"],[data-original-cell="B16"],[data-original-cell="B18"]) :is(.assessment-cell-input,.assessment-shared-text) { text-align:center; }

.assessment-original-table[data-original-sheet="consultation"] :is([data-original-cell="I8"],[data-original-cell="I10"],[data-original-cell="I12"],[data-original-cell="I14"],[data-original-cell="I16"],[data-original-cell="I18"],[data-original-cell="O8"],[data-original-cell="O10"],[data-original-cell="O12"],[data-original-cell="O14"],[data-original-cell="O16"],[data-original-cell="O18"]) :is(.assessment-cell-input,.assessment-shared-text,.assessment-birth-age) { text-align:center; }

.assessment-profile-link { flex:0 0 auto; padding:4px 6px; border:0; background:transparent; color:#245347; font-size:12px; text-decoration:underline; text-underline-offset:3px; cursor:pointer; white-space:nowrap; }
.assessment-profile-link:focus-visible { outline:2px solid #245347; outline-offset:2px; }

.assessment-profile-value { flex:1; min-width:0; padding:3px 2px; color:#24453d; font:inherit; text-align:left; }

.assessment-handbook-grades { display:flex; align-items:center; gap:8px; min-width:0; }
.assessment-handbook-grades > .assessment-cell-entry { flex:1; }

.assessment-handbook-options { gap:0; }
.assessment-handbook-options > .assessment-cell-entry { flex:0 0 auto; }
.assessment-original-table .assessment-handbook-options .assessment-circle-label { padding:3px 4px !important; }
.assessment-handbook-options .assessment-circle-label:disabled { opacity:1; cursor:default; }

.assessment-case-meta { display:grid; grid-template-columns:minmax(0,1fr); gap:6px; align-items:center; width:370px; max-width:100%; margin-left:auto; }
.assessment-case-meta-group { display:flex; align-items:center; gap:8px; min-width:0; }
.assessment-case-meta-label { width:64px; text-align:right; flex:0 0 auto; white-space:nowrap; }
.assessment-case-meta-group .assessment-cell-entry { flex:1; min-width:0; margin:0; }

.assessment-handbook-row .assessment-profile-value { font-size:12px; }
.assessment-handbook-options .assessment-cell-entry:has(> .assessment-profile-value[hidden]):has(> button[hidden]) { display:none; }

.assessment-handbook-row .assessment-profile-value { flex:0 0 auto; width:auto; padding:3px 0; }
.assessment-handbook-grades > .assessment-cell-entry:has(> .assessment-profile-value:not([hidden])) { flex:0 0 auto; gap:2px; }

.assessment-disability-summary-value { grid-column:2 / 4; min-width:0; text-align:left; }
.assessment-disability-summary-value > .assessment-cell-entry { width:auto; margin:0; justify-content:flex-start; }

.assessment-original-table[data-original-sheet="case2"] :is([data-original-cell="C6"],[data-original-cell="C8"]) { padding:8px 12px; vertical-align:top; }
.assessment-original-table[data-original-sheet="case2"] :is([data-original-cell="C6"],[data-original-cell="C8"]) .is-narrative-entry { position:static; width:100%; }
.assessment-original-table[data-original-sheet="case2"] :is([data-original-cell="C6"],[data-original-cell="C8"],[data-original-cell="C12"]) textarea { height:64px; min-height:64px!important; }

.assessment-supporter-section { display:flex; flex-direction:column; gap:12px; padding:12px; text-align:left; }
.assessment-supporter-title { font-weight:600; }
.assessment-supporter-help { color:#67746d; font-size:12px; margin-top:-6px; margin-bottom:4px; }
.assessment-supporter-row { display:grid; grid-template-columns:150px minmax(0,1fr); align-items:start; gap:12px; }
.assessment-supporter-row:has([data-original-key="supporterAge"]) { grid-template-columns:max-content minmax(0,1fr); }
.assessment-supporter-label { padding-top:6px; white-space:nowrap; }
.assessment-supporter-content { min-width:0; }
.assessment-supporter-content .assessment-cell-entry { position:static!important; display:flex; width:100%; margin:0; }
.assessment-supporter-content textarea { height:64px!important; min-height:64px!important; }
.assessment-supporter-content .has-affixes { max-width:80px; }

.assessment-disability-summary-value :is(.assessment-profile-value,.assessment-shared-legend) { background:inherit; border-radius:0; padding:3px 0; }

.assessment-original-table .assessment-simple-circle { width:34px; height:34px; border:0!important; background:transparent!important; color:#245347!important; font-size:28px; padding:0; }

.assessment-medical-summary { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; padding:0; background:transparent; white-space:normal; }
.assessment-medical-card { display:grid; grid-template-columns:max-content minmax(0,1fr); column-gap:12px; row-gap:10px; padding:14px; background:#eaf3ed; border:0; border-radius:0; line-height:1.5; }
.assessment-medical-card + .assessment-medical-card { border-top:1px solid #d7e4dc; }
.assessment-medical-field { display:grid; grid-template-columns:subgrid; grid-column:1 / -1; align-items:start; }
.assessment-medical-field-label { color:#526b61; white-space:nowrap; }
.assessment-medical-field-value { white-space:pre-wrap; overflow-wrap:anywhere; }
.assessment-medical-note-label { font-size:12px; color:#526b61; }
@media (max-width:700px) { .assessment-medical-summary { grid-template-columns:1fr; } }

.assessment-supporter-check-row { align-items:start; min-height:42px; }
.assessment-supporter-check-row .assessment-supporter-content { padding-top:6px; }
.assessment-supporter-check-row .assessment-supporter-content { flex:0 0 auto; }
.assessment-original-table .assessment-supporter-check-row .assessment-cell-entry:not(.is-inline-choice):has(> .assessment-cell-mark) { width:auto; justify-content:flex-start; }
.assessment-original-table .assessment-supporter-check-row .assessment-simple-circle { display:grid; place-items:center; width:24px!important; height:24px!important; min-width:24px!important; min-height:24px!important; padding:0!important; font-size:22px; line-height:1; border-radius:50%; box-shadow:none; }
.assessment-supporter-check-row .assessment-simple-circle:focus:not(:focus-visible) { outline:none; }
.assessment-supporter-check-row .assessment-simple-circle:focus-visible { outline:2px solid #245347; outline-offset:3px; }
.assessment-supporter-check-row .assessment-check-status { margin-left:8px; font-size:13px; color:#526b61; white-space:nowrap; }

.assessment-original-table[data-original-sheet="basic"] :is([data-original-cell="B28"],[data-original-cell="F28"],[data-original-cell="K28"],[data-original-cell="S28"],[data-original-cell="B29"],[data-original-cell="F29"],[data-original-cell="K29"],[data-original-cell="S29"],[data-original-cell="B31"],[data-original-cell="F31"],[data-original-cell="O31"],[data-original-cell="B32"],[data-original-cell="F32"],[data-original-cell="O32"],[data-original-cell="B33"],[data-original-cell="F33"],[data-original-cell="O33"]) :is(.assessment-shared-text,.assessment-profile-value,.assessment-cell-input) { text-align:center; }

.assessment-original-table[data-original-sheet="annex"] .assessment-medical-summary { gap:6px; }
.assessment-original-table[data-original-sheet="annex"] .assessment-medical-card { row-gap:4px; padding:6px; line-height:1.3; }

:is(.assessment-entry-header,.assessment-identity-header) :is(span,div,input,select) { font-size:14px!important; font-weight:400!important; line-height:1.3; }
.assessment-entry-header .assessment-case-meta { width:330px;gap:6px; }
.assessment-entry-header .assessment-case-meta-label { width:72px; }
.assessment-identity { display:flex;justify-content:flex-start;align-items:center;gap:24px;padding:4px; }
.assessment-identity-group { display:flex;gap:8px;align-items:center; }
.assessment-identity-value { white-space:nowrap; }

.genogram-dialog[aria-labelledby="ecomap-title"] .genogram-member { display:flex; flex-direction:column; gap:12px; }
.genogram-dialog[aria-labelledby="ecomap-title"] .genogram-member h3 { margin:0; }
.genogram-dialog[aria-labelledby="ecomap-title"] .genogram-member > .button { align-self:flex-start; }
.genogram-dialog[aria-labelledby="ecomap-title"] .genogram-edit-panel > .button:first-child { margin-bottom:14px; }

.assessment-original-table td.assessment-contract-input-cell { position:relative; }
.assessment-original-table .assessment-contract-input-cell > .assessment-cell-entry { position:absolute!important;inset:auto 3px!important;top:50%!important;transform:translateY(-50%);width:calc(100% - 6px)!important;margin:0!important;display:flex!important;align-items:center;justify-content:center; }
.assessment-original-table .assessment-contract-input-cell .assessment-cell-input { box-sizing:border-box;height:36px!important;min-height:36px!important;max-height:36px!important;margin:0; }

.support-plan-year-toolbar { display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between; margin-bottom:12px; }
.support-plan-year-toolbar label { display:flex; gap:8px; align-items:center; font-weight:600; }
.support-plan-term-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:18px; }
.support-plan-term { padding:18px; border:1px solid #d7ded6; border-radius:8px; min-width:0; background:#fafcfb; }
.support-plan-term h3 { margin:0 0 4px; font-size:18px; }
.support-plan-term > small { color:#63776e; }
.support-plan-period-document { margin-top:18px; padding-top:16px; border-top:1px solid #d7ded6; }
.support-plan-period-document h4 { margin:0 0 12px; }
.support-plan-period-document .document-actions { flex-wrap:wrap; }
.support-plan-editor-context { padding:10px 12px; background:#eef4f1; border-left:3px solid #77a998; font-weight:600; }
@media(max-width:850px){.support-plan-term-grid{grid-template-columns:1fr;}}

.support-plan-year-toolbar select { min-height:40px; padding:7px 12px; border:1px solid #b4c5bb; border-radius:6px; background:white; color:inherit; font:inherit; }

.support-plan-history-dialog { width:min(960px,94vw); max-height:85vh; overflow:auto; padding:24px; border:1px solid #d7ded6; border-radius:10px; }

/* 年度の計画と振り返りを、各期で同じ位置に並べる。 */
.support-plan-term-grid { gap:24px; align-items:start; }
.support-plan-term { padding:0; border:0; background:transparent; }
.support-plan-period-document { display:flex; flex-direction:column; min-height:208px; box-sizing:border-box; margin-top:12px; padding:20px 0; border:1px solid #d7ded6; border-width:1px 0; border-radius:0; background:#fff; }
.support-plan-period-document.is-empty { background:#fafbf9; border-style:dashed; }
.support-plan-card-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.support-plan-card-heading h4 { margin:0; font-size:16px; line-height:1.5; }
.support-plan-card-status { flex-shrink:0; padding:3px 9px; border-radius:4px; background:#edf3ef; color:#315848; font-size:12px; line-height:1.6; font-weight:600; }
.support-plan-card-status.is-empty { background:#eef0ed; color:#626e65; }
.support-plan-card-status.is-saved { background:#eaf1fa; color:#365a83; }
.support-plan-card-body { flex:1; margin:12px 0 18px; }
.support-plan-card-purpose { margin:0 0 12px; color:#4f6259; font-size:13px; line-height:1.6; }
.support-plan-card-updated { margin:0; color:#69786e; font-size:12px; line-height:1.6; }
.support-plan-card-period { display:block; margin-top:4px; color:#69786e; font-size:12px; }
.support-plan-card-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.support-plan-card-footer > .button-primary { flex:0 0 auto; min-width:136px; min-height:40px; }
.support-plan-card-footer .support-plan-history-link { margin-left:auto; padding:4px 0; min-height:36px; background:transparent; border:0; color:#52685f; text-decoration:underline; text-underline-offset:3px; font-size:12px; }
@media(max-width:850px){.support-plan-term-grid{gap:24px;} .support-plan-period-document{min-height:190px;}}

.support-plan-card-footer .support-plan-history-link:hover { background:transparent; color:#183f34; border:0; }

.document-lane.assessment .document-actions { gap:12px; }
#view-documents :is(#planning-interview-entry > p, .planning-interview-update, .document-lane.assessment .document-version, .document-lane.assessment .document-date-meta) { color:var(--ink-soft); font-size:13px; font-weight:400; line-height:1.7; }
#planning-interview-entry > p { margin:0; }
#planning-interview-entry > .button { align-self:flex-start; }
#planning-interview-entry > small { color:var(--ink-soft); }
#view-documents #planning-interview-entry { gap:10px; }
.assessment-card-footer { display:flex; justify-content:flex-end; margin-top:14px; padding-top:10px; border-top:1px solid #e4e9e3; }
.assessment-card-footer .assessment-history-link { padding:4px 0; min-height:32px; background:transparent; border:0; border-radius:0; color:#52685f; font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.assessment-card-footer .assessment-history-link:hover { border:0; background:transparent; color:#183f34; }

/* 専門計画は各期を右列に積み、計画のある項目を強調する。 */
.specialized-program-grid { display:grid; grid-template-columns:1fr; gap:8px; margin-top:18px; }
.specialized-program-card { display:grid; grid-template-columns:150px minmax(0,1fr); align-items:center; gap:18px; border:1px solid #d7ded9; border-left:4px solid #d7ded9; border-radius:8px; padding:12px 16px; background:#f4f5f2; }
.specialized-program-card.is-used { border-left-color:#367460; background:#eaf3ed; }
.specialized-program-heading { grid-column:1;grid-row:1;align-self:start;display:flex; flex-direction:column; align-items:flex-start; gap:4px; min-width:0; }
.specialized-program-card h3 { display:flex;align-items:center;min-height:44px;margin:0;font-size:16px; }
.specialized-program-state { font-size:12px; color:#52665c; }
.specialized-program-card.is-used .specialized-program-state { font-weight:700; color:#245443; }
.specialized-program-period { grid-column:2;align-self:start;display:flex;min-width:0; }
.specialized-program-status { display:flex; }
.specialized-program-actions { display:flex; min-width:0; }
@media(max-width:680px) {
 .specialized-program-card { grid-template-columns:minmax(0,1fr); padding:12px; }
 .specialized-program-heading { grid-column:1;grid-row:auto; flex-direction:row; align-items:center; gap:12px; }
 .specialized-program-card h3 { min-height:0; }
 .specialized-program-period { grid-column:1; }
}


/* 意向欄は編集ボタンを含む高さを確保し、原紙の短い行で文字を切らない。 */
.assessment-original-table:is([data-original-sheet="individual"],[data-original-sheet="individualLater"],[data-original-sheet="monitoring"]) .is-narrative-entry:has(> textarea:is([data-original-key="childWishes"],[data-original-key="familyWishes"])) {
 position:relative;inset:auto;width:100%;min-height:86px;grid-template-rows:22px minmax(60px,1fr);
}
.assessment-original-table:is([data-original-sheet="individual"],[data-original-sheet="individualLater"],[data-original-sheet="monitoring"]) .is-narrative-entry > textarea:is([data-original-key="childWishes"],[data-original-key="familyWishes"]) {
 height:60px;min-height:60px!important;
}

.assessment-original-table td.assessment-consent-statement { padding:12px 10px;line-height:1.7; }
.assessment-original-table td.assessment-consent-fields { padding:12px 10px;vertical-align:top; }
.assessment-consent-fields > .assessment-cell-entry { gap:8px;align-items:center; }
.assessment-consent-fields > .assessment-cell-entry + .assessment-cell-entry { margin-top:12px; }
.assessment-consent-fields .assessment-entry-prefix { white-space:nowrap; }
.assessment-consent-fields input[type="date"] { height:34px;min-height:34px!important; }

.assessment-consent-fields > .assessment-shared-text { display:block;margin-top:12px;padding:0;line-height:1.6; }

.assessment-original-table .assessment-cell-entry.has-affixes:has(> input[data-original-key="explainerName"]) { justify-content:flex-start; }
.assessment-original-table .assessment-cell-entry.has-affixes > input[data-original-key="explainerName"] { flex:0 1 200px;width:200px;max-width:100%; }

/* 意向・支援課題の3欄を同じ高さに揃える。 */
.assessment-original-table:is([data-original-sheet="individual"],[data-original-sheet="individualLater"],[data-original-sheet="monitoring"]) .is-narrative-entry:has(> textarea[data-original-key="supportIssues"]) {
 position:relative;inset:auto;width:100%;min-height:86px;display:grid;grid-template-rows:22px minmax(60px,1fr);gap:3px;
}
.assessment-original-table:is([data-original-sheet="individual"],[data-original-sheet="individualLater"],[data-original-sheet="monitoring"]) .is-narrative-entry > textarea[data-original-key="supportIssues"] {
 grid-row:2;height:60px;min-height:60px!important;padding:8px!important;
}

.original-document-options.field-grid { grid-template-columns:minmax(140px,.7fr) repeat(2,minmax(180px,1fr));align-items:end;gap:16px; }
.original-document-options > .field:has([name="planTerm"]),.original-document-options > .field:has([name="criebaProgram"]),.original-document-options > .support-plan-editor-context { grid-column:1 / -1; }
@media(max-width:680px) { .original-document-options.field-grid { grid-template-columns:minmax(0,1fr); } }

.service-schedule-dialog { width:min(480px,calc(100vw - 32px)); }
.service-schedule-dialog form { display:grid;gap:20px; }
.service-schedule-dialog h2 { margin:0;font-size:20px; }
.service-day-options { border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px; }
.service-day-options legend { margin-bottom:10px; }
.service-day-option { display:flex;align-items:center;gap:6px;padding:10px;border:1px solid #ccd8d1;border-radius:6px;cursor:pointer; }
.service-day-option:has(:checked) { background:#eaf3ed;border-color:#245347; }
.service-day-option input { width:16px;height:16px; }
.service-schedule-actions { display:flex;justify-content:flex-end;gap:12px; }
.assessment-cell-input.service-schedule-picker { cursor:pointer;padding-right:18px!important;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='m1 1 4 4 4-4' fill='none' stroke='%23183f34'/%3E%3C/svg%3E") no-repeat right 4px center!important; }

.assessment-original-table .assessment-duration-cell .assessment-cell-input { text-align:center;padding:3px!important; }

.assessment-consent-fields > .assessment-handwritten-signature { min-height:44px;background:#fff;color:#183f34; }
.assessment-original-table td.assessment-consent-fields:has(.assessment-handwritten-signature) { background:#fff!important; }

.assessment-consent-fields > .assessment-handwritten-date { margin-top:0;min-height:28px;background:#fff;white-space:nowrap; }

.assessment-original-table .assessment-priority-cell :is(.assessment-cell-input,.assessment-original-text) { text-align:center!important; }

.assessment-original-table td.assessment-support-body-cell { vertical-align:top!important;padding-top:6px;padding-bottom:6px; }
.assessment-support-body-cell > .is-narrative-entry { inset:6px 3px; }
.assessment-support-body-cell > .assessment-original-text { display:block;padding-top:4px; }

.support-plan-year-actions { display:flex;align-items:center;flex-wrap:wrap;gap:12px; }

.assessment-original-table .assessment-support-centered-cell :is(.assessment-cell-input,.assessment-original-text) { text-align:center!important; }

/* 保存履歴では、現在の編集と新規作成を分けて表示する。 */
.support-plan-history-dialog { width:min(800px,94vw); padding:28px; background:#fff; color:#203c33; }
.support-plan-history-dialog .support-plan-year-toolbar { gap:20px; margin-bottom:8px; }
.support-plan-history-dialog h2 { margin:0; font-size:20px; line-height:1.5; }
.support-history-intro { margin:0 0 24px; font-size:14px; line-height:1.7; color:#52665d; }
.support-history-list { display:grid; gap:14px; }
.support-plan-history-dialog .support-history-card { display:block; padding:20px; border:1px solid #dce4de; border-radius:10px; background:#fff; }
.support-plan-history-dialog .support-history-card.is-current { border-color:#afc5b8; background:#f7faf8; }
.support-history-card-heading { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.support-history-card-heading h3 { margin:0; font-size:16px; }
.support-history-version { font-size:12px; font-weight:500; color:#52665d; padding:3px 9px; background:#e9efeb; border-radius:5px; }
.support-plan-history-dialog .document-date-meta { display:flex; flex-wrap:wrap; gap:6px 18px; margin:0 0 16px; font-size:13px; line-height:1.6; color:#52665d; }
.support-plan-history-dialog .document-actions { display:flex; flex-direction:row; flex-wrap:wrap; align-items:center; justify-content:flex-start; width:100%; gap:10px; }
.support-plan-history-dialog .document-actions .button { flex:none; width:auto; min-width:0; margin:0; padding:9px 16px; min-height:44px; font-size:14px; }
.support-plan-history-dialog .document-actions .support-history-delete { margin-left:auto; padding:9px 10px; color:#9b3b32; background:transparent; border-color:transparent; }
.support-plan-history-dialog .document-actions .support-history-delete:hover { background:#fff0ed; border-color:#e5b7ae; }
.support-history-create { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:20px; padding-top:18px; border-top:1px solid #dce4de; }
.support-history-create strong { font-size:14px; }
.support-history-create p { margin:5px 0 0; font-size:13px; line-height:1.6; color:#52665d; }
.support-history-create .button { flex:none; width:auto; min-width:0; padding:9px 16px; }
.support-history-past-heading { margin:10px 0 0; font-size:14px; color:#52665d; }
.support-history-empty { margin:4px 0 0; padding:12px 0; color:#52665d; font-size:14px; }
@media(max-width:600px) {
 .support-plan-history-dialog { padding:20px; }
 .support-plan-history-dialog .support-history-card { padding:16px; }
 .support-history-create { align-items:flex-start; flex-direction:column; gap:12px; }
 .support-plan-history-dialog .document-actions .button { padding:9px 12px; }
}

/* 計画・評価カードの操作サイズと並び方を揃える。 */
#view-documents .document-lane.assessment .document-actions { display:flex; flex-direction:row; flex-wrap:wrap; justify-content:flex-start; align-items:center; gap:12px; width:100%; }
#view-documents .document-lane.assessment .document-actions .button,
#view-documents #planning-interview-entry .planning-interview-entry-actions > .button,
#view-documents .support-plan-year-toolbar .button,
#view-documents .support-plan-card-footer > .button-primary,
#view-documents .support-plan-card-footer > .plan-finalize-entry,
#view-documents .specialized-program-actions > :is(.button-primary,.button-secondary) {
 flex:0 0 180px; box-sizing:border-box; width:180px; min-width:180px; max-width:180px; min-height:44px; height:44px; margin:0; padding:10px 16px; border-radius:8px; font-size:14px; line-height:1.4; text-align:center; white-space:nowrap; display:inline-flex; align-items:center; justify-content:center;
}
#view-documents .support-plan-card-footer { gap:12px 20px; }
#view-documents .assessment-card-footer { margin-top:18px; padding-top:12px; }
#view-documents :is(.assessment-history-link,.support-plan-card-footer .support-plan-history-link) { min-height:36px; font-size:13px; }
#view-documents .specialized-program-period { flex-direction:row; align-items:flex-start; justify-content:flex-start; gap:12px; min-height:44px; padding:0; border:0; }
#view-documents .specialized-program-status > strong { display:flex;align-items:center;min-height:44px; }
#view-documents .specialized-program-status { flex:0 0 104px; flex-direction:column; align-items:flex-start; gap:4px; padding:0; }
#view-documents .specialized-program-actions { flex-direction:row; flex-wrap:wrap; justify-content:flex-start; align-items:center; align-content:flex-start; gap:8px 12px; flex:1; min-height:44px; }
#view-documents .specialized-program-actions .support-plan-history-link { margin-left:0; min-height:36px; padding:0; border:0; background:transparent; font-size:13px; white-space:nowrap; text-decoration:underline; }
#view-documents .specialized-program-actions > :is(.button-primary,.button-secondary) { flex-basis:auto; }
#view-documents .specialized-program-period.is-unused .button-secondary { background:#f8f9f7; border-color:#cbd5cd; color:#50665a; }
#view-documents #planning-interview-entry .planning-interview-entry-actions > .button { flex-basis:auto; }
@media(max-width:480px) {
 #view-documents .document-lane.assessment .document-actions { gap:10px; }
 #view-documents .support-plan-card-footer { align-items:flex-start; }
 #view-documents .support-plan-card-footer .support-plan-history-link { margin-left:0; }
}

.planning-interview-dialog { width:min(860px,94vw); max-height:90vh; overflow:auto; padding:28px; border:1px solid #ccd9d0; border-radius:12px; background:#fff; color:#203c33; }
.planning-interview-tabs { display:flex; gap:8px; margin:18px 0; border-bottom:1px solid #bdcec2; }
.planning-interview-tabs > [role=tab] { min-height:48px; padding:12px 18px; border:0; border-bottom:3px solid transparent; border-radius:0; background:transparent; color:#52685f; font-size:15px; }
.planning-interview-tabs > [aria-selected=true] { border-bottom-color:#244e40; background:#e7efea; color:#244e40; font-weight:700; }
#planning-interview-page [role=tabpanel][hidden], #planning-interview-page .planning-interview-writing-toolbar[hidden] { display:none!important; }
#planning-interview-page .planning-interview-review-panel .planning-interview-results > .planning-interview-field > textarea { height:320px; min-height:240px; }
@media(max-width:600px) { .planning-interview-tabs > [role=tab] { flex:1; padding:10px 8px; font-size:14px; } }
.planning-interview-heading,.planning-interview-item-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.planning-interview-heading h2 { margin:0; font-size:22px; }
.planning-interview-intro { margin:12px 0 20px; font-size:14px; line-height:1.7; color:#52665d; }
.planning-interview-context { padding:14px 16px; background:#f2f6f3; border-radius:8px; margin-bottom:20px; }
.planning-interview-context summary { cursor:pointer; font-weight:600; }
.planning-interview-context strong { display:block; margin-top:14px; font-size:13px; }
.planning-interview-context p { margin:6px 0; white-space:pre-wrap; font-size:14px; line-height:1.6; }
.planning-interview-field { display:flex; flex-direction:column; gap:8px; margin:0; font-size:14px; font-weight:600; }
.planning-interview-field > :is(textarea,select) { width:100%; box-sizing:border-box; padding:10px 12px; font:inherit; font-weight:400; color:#203c33; background:#fff; border:1px solid #b7c9be; border-radius:6px; min-height:44px; }
.planning-interview-field textarea { resize:vertical; line-height:1.6; }
.planning-interview-items { display:grid; gap:18px; margin:24px 0 16px; }
.planning-interview-item { padding:20px; border:1px solid #d5e0d8; border-radius:10px; background:#f9fbfa; }
.planning-interview-item-heading { margin-bottom:18px; }
.planning-interview-item-heading h3 { margin:0; font-size:16px; }
.planning-interview-item-heading > div { display:flex; gap:8px; }
.planning-interview-item-heading .button { min-height:36px; padding:6px 12px; }
.planning-interview-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.planning-interview-cooperation { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; padding:24px 0; margin-top:16px; border-top:1px solid #dce4de; }
.planning-interview-cooperation h3 { grid-column:1 / -1; margin:0; font-size:17px; }
.planning-interview-preview { padding-top:24px; border-top:1px solid #dce4de; }
.planning-interview-preview h3 { margin:0 0 14px; font-size:17px; }
.planning-interview-preview > .button { margin-bottom:18px; }
.planning-interview-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; margin-top:24px; padding-top:20px; border-top:1px solid #dce4de; }
.planning-interview-footer > span { font-size:13px; color:#52665d; }
@media(max-width:600px) { .planning-interview-dialog { padding:20px; } .planning-interview-grid,.planning-interview-cooperation { grid-template-columns:1fr; } .planning-interview-item { padding:16px; } }

.planning-interview-heading { flex-wrap:wrap; }
.planning-interview-heading h2 { flex:1 1 260px; }

.planning-interview-grid .planning-interview-field > :is(select,textarea),
.planning-interview-cooperation .planning-interview-field > :is(select,textarea) { height:68px; min-height:68px; }

.planning-handover { margin:18px 0; padding:16px 20px; border:1px solid #cbdacf; border-radius:8px; background:#f5f9f6; }
.planning-handover summary { cursor:pointer; font-size:15px; font-weight:600; color:#203c33; }
.planning-handover > p { margin:12px 0; font-size:13px; line-height:1.6; color:#52665d; }
.planning-interview-cooperation .planning-interview-field > :is(select,textarea) { height:68px; min-height:68px; }

#assessment-editor-form > .assessment-view-controls { justify-content:flex-start; gap:12px; }
#assessment-editor-form > .assessment-view-controls > .button { flex:none; margin:0; }

#assessment-editor-form > .assessment-view-controls > #assessment-show-all { margin-left:auto; }

.planning-interview-summary-tools { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:0 0 18px; }
.planning-interview-summary-tools output { margin-left:auto; font-size:13px; color:#52665d; }

.planning-interview-footer-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:12px; margin-left:auto; }

.planning-interview-wishes { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-bottom:18px; }
@media(max-width:600px) { .planning-interview-wishes { grid-template-columns:1fr; } }

.planning-interview-dialog .planning-interview-item { padding:0; border:0; border-radius:0; background:transparent; }
.planning-interview-dialog .planning-interview-item + .planning-interview-item { padding-top:18px; border-top:1px solid #dce4de; }
.planning-interview-dialog .planning-interview-item-heading[hidden],
.planning-interview-results[hidden] { display:none; }
.planning-interview-dialog .planning-interview-cooperation { padding-top:18px; margin-top:18px; border-top:1px solid #dce4de; }

.planning-interview-context h3 { margin:0; font-size:15px; }

#main-content > #planning-interview-page.record-editor-page { position:static; inset:auto; display:block; width:100%; max-width:1100px; max-height:none; margin:0 auto; padding:24px; border:0; border-radius:0; overflow:visible; box-shadow:none; }
#main-content > #planning-interview-page.record-editor-page:not(.is-editor-active) { display:none; }
.planning-interview-expand { align-self:flex-start; font-size:13px; padding:6px 10px; min-height:34px; }
.planning-interview-writing-status { font-size:13px; font-weight:400; }
.planning-interview-writing-status:empty { display:none; }
.planning-interview-writing-preview { padding:12px; background:#f2f6f3; border:1px solid #cbdacf; border-radius:6px; }
.planning-interview-writing-preview[hidden] { display:none; }
.planning-interview-writing-preview textarea { width:100%; font:inherit; font-weight:400; margin-bottom:10px; }
.planning-interview-writing-preview .button { margin-right:8px; }

#planning-interview-page .planning-interview-heading { margin-bottom:10px; gap:10px; }
#planning-interview-page .planning-interview-intro { margin:8px 0 12px; }
#planning-interview-page .planning-interview-wishes { gap:12px; margin-bottom:12px; }
#planning-interview-page .planning-interview-grid { gap:12px; }
#planning-interview-page .planning-interview-items { margin:14px 0; gap:12px; }
#planning-interview-page .planning-interview-field { gap:5px; }
#planning-interview-page .planning-interview-field > textarea { height:56px; min-height:56px; padding:7px 10px; line-height:1.4; }
#planning-interview-page .planning-interview-field > select { height:40px; min-height:40px; padding:7px 10px; }
#planning-interview-page .planning-interview-cooperation { gap:12px; padding:14px 0; margin-top:12px; }
#planning-interview-page .planning-interview-preview { padding-top:14px; }
#planning-interview-page .planning-interview-footer { position:sticky; bottom:0; z-index:5; margin-top:14px; padding:14px 0; border-top:1px solid #bdcec2; background:var(--paper-bright,#fff); box-shadow:0 -6px 14px #203c3310; }
@media(max-width:600px) { #planning-interview-page .planning-interview-footer > span { display:none; } #planning-interview-page .planning-interview-footer-actions { gap:8px; } }
.planning-interview-writing-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; padding:8px 12px; margin-bottom:8px; background:#eef3ef; border-radius:6px; position:sticky; top:76px; z-index:3; font-size:13px; }
.planning-interview-writing-toolbar .button { min-height:32px; padding:5px 10px; font-size:13px; }
.planning-interview-writing-preview { grid-column:1 / -1; margin-bottom:8px; }

#planning-interview-page .planning-interview-results > .planning-interview-field > textarea { height:160px; }

#planning-interview-page .planning-interview-group {
  border:1px solid #bdcec2;
  border-radius:8px;
  background:#fffefa;
  padding:10px;
  margin:8px 0;
}
#planning-interview-page .planning-interview-group > h3 {
  grid-column:1 / -1;
  margin:-10px -10px 0;
  padding:10px 12px;
  border-bottom:1px solid #bdcec2;
  border-radius:7px 7px 0 0;
  background:#dfe9e2;
  font-size:18px;
  line-height:1.4;
}
#planning-interview-page .planning-interview-wishes-group > h3 { margin-bottom:10px; }
#planning-interview-page .planning-interview-field > textarea { height:48px; min-height:48px; }
#planning-interview-page .planning-interview-grid,
#planning-interview-page .planning-interview-cooperation { gap:10px; }
#planning-interview-page .planning-interview-subheading { grid-column:1 / -1; margin:18px 0 2px; padding:8px 12px; border-left:3px solid #315d50; background:#edf3ef; color:#234c40; font-size:16px; font-weight:700; line-height:1.5; }
#planning-interview-page .planning-interview-subheading:first-child { margin-top:4px; }
#planning-interview-page .planning-interview-cooperation > .planning-interview-field:nth-of-type(n+3) {
  border-top:1px solid #dce4de;
  padding-top:10px;
}
@media(max-width:600px) {
  #planning-interview-page .planning-interview-cooperation > .planning-interview-field:nth-of-type(n+2) { border-top:1px solid #dce4de; padding-top:10px; }
}

/* Choice controls have a distinct surface and arrow; text entries stay white. */
.planning-interview-entry-actions { display:flex; flex-wrap:wrap; gap:12px; }
@media(max-width:480px) { .planning-interview-entry-actions { gap:10px; } }
#planning-interview-page .meeting-memo-group { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
#planning-interview-page .meeting-memo-note { grid-column:1 / -1; margin:0; color:#52665d; font-size:13px; line-height:1.5; }
#planning-interview-page .meeting-memo-group .planning-interview-field > input { width:100%; min-width:0; box-sizing:border-box; height:48px; padding:7px 10px; font:inherit; font-weight:400; color:#203c33; background:white; border:1px solid #b7c9be; border-radius:6px; }
#planning-interview-page .meeting-memo-group .planning-interview-field:has(> select) { display:flex; align-items:stretch; }
#planning-interview-page .meeting-memo-group .planning-interview-field:has(> select) > span { padding-bottom:0; }
#planning-interview-page .meeting-memo-panel[hidden] { display:none; }
@media(max-width:600px) { #planning-interview-page .meeting-memo-group { grid-template-columns:1fr; } }
@media screen {
  body select:not([multiple]):is(:not([size]),[size="1"]) {
    appearance:none;
    -webkit-appearance:none;
    background-color:var(--ui-select-surface) !important;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='m3 5 4 4 4-4' fill='none' stroke='%23244c41' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),linear-gradient(var(--ui-select-segment),var(--ui-select-segment)) !important;
    background-position:right 9px center,right center !important;
    background-size:14px 14px,32px 100% !important;
    background-repeat:no-repeat !important;
    padding-right:40px !important;
    cursor:pointer;
  }
  body select:not([multiple]):is(:not([size]),[size="1"]):disabled {
    background-color:#edf0ed !important;
    cursor:default;
    opacity:.7;
  }
  #planning-interview-page .planning-interview-field:has(> select) {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:5px;
  }
  #planning-interview-page .planning-interview-field:has(> select) > span { padding-bottom:0; }
  #planning-interview-page .planning-interview-field:has(> select) > select { width:100%; min-width:0; height:48px; min-height:48px; }
  #planning-interview-page .planning-interview-wishes { grid-template-columns:1fr; }
  #planning-interview-page .planning-interview-field-wide { grid-column:1 / -1; }
  @media(forced-colors:active) {
    body select:not([multiple]):is(:not([size]),[size="1"]) { appearance:auto; background-image:none !important; padding-right:8px !important; }
  }
}

.planning-interview-destination { display:flex; flex-wrap:wrap; gap:12px 16px; padding:16px; margin-top:18px; border:1px solid #bdcec2; border-radius:8px; background:#eef3ef; }
.planning-interview-destination h3,.planning-interview-destination p { flex:1 0 100%; margin:0; }
.planning-interview-destination label { display:flex; flex-direction:column; gap:6px; min-width:0; max-width:100%; flex:1 1 140px; }
.planning-interview-destination select { width:100%; min-width:0; min-height:42px; max-width:100%; padding:8px 12px; }

.planning-interview-flow { display:flex; flex-wrap:wrap; gap:8px 30px; padding:10px 12px 10px 32px; margin:12px 0; background:#eef3ef; border-radius:6px; font-size:13px; }
.planning-interview-flow li { padding-right:8px; }

.assessment-cell-input.service-schedule-picker { height:auto;min-height:32px!important;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px!important;line-height:1.3!important;padding-right:12px!important;background-position:right 2px center!important;background-size:8px 5px!important; }

/* 利用者の分類・利用予定。既存の一覧と同じ操作を使う。 */
#view-service-home .client-search { display:flex; flex-wrap:wrap; align-items:end; gap:12px; }
#view-service-home .client-search .field { flex:1 1 150px; min-width:0; max-width:none; }
#view-service-home .client-search .field:first-child { flex-basis:240px; }
.directory-tabs { margin:12px 0 18px; }
.directory-summary-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; }
.directory-summary-tabs { margin:0 0 16px; }
.directory-summary-tabs .button[aria-pressed="true"] { background:var(--ui-accent); color:var(--ui-surface); border-color:var(--ui-accent); }
.directory-summary-group .service-table { width:100%; min-width:0; table-layout:fixed; }
.directory-summary-group .service-table th:first-child { width:140px; }
.directory-summary-group .service-table th:nth-child(2) { width:64px; }
.directory-summary-group .service-table td { white-space:normal; overflow-wrap:anywhere; }
.directory-summary-group .service-table td:nth-child(3) .button { max-width:100%; overflow-wrap:anywhere; }
@media(max-width:600px) { .directory-summary-group .service-table th:first-child { width:80px; } .directory-summary-group .service-table th:nth-child(2) { width:48px; } }
.directory-summary-group { min-width:0; }
.directory-summary-group h2 { font-size:18px; }
.directory-summary-group .service-table .button { min-height:36px; padding:6px 10px; margin:2px; white-space:normal; }
#view-service-home .client-card-grid > .client-tile { display:flex; flex-direction:column; min-width:0; border:1px solid var(--ui-border); border-radius:10px; background:var(--ui-surface); }
#view-service-home .client-tile.is-last-opened { background:var(--ui-accent-soft); border-color:var(--ui-control-border); }
#view-service-home .client-tile.has-notice { background:var(--ui-warning-soft); border-color:#d9c08e; }
#view-service-home .client-tile.certificate-deadline { background:#fff0ee; border-color:#dfaaa2; }
#view-service-home .client-tile.has-notice.is-last-opened { box-shadow:inset 0 0 0 2px var(--ui-accent); }
#view-service-home .client-card-grid > .client-tile > .client-card { flex:1; width:100%; height:auto; border:0; background:transparent; box-shadow:none; }
#view-service-home .client-card-grid > li > [data-service-action=program-settings] { align-self:flex-end; min-height:36px; margin:0 10px 10px; padding:6px 12px; font-size:13px; }
.client-programs { overflow-wrap:anywhere; }
#view-service-home .calendar-sheet { overflow-x:auto; margin-top:12px; }
#view-service-home .reference-calendar { width:100%; min-width:700px; table-layout:fixed; border-collapse:collapse; }
#view-service-home .reference-calendar td, #view-service-home .reference-calendar th { border:1px solid #d7ded6; vertical-align:top; }
#view-service-home .calendar-day-button { display:flex; flex-direction:column; gap:6px; width:100%; min-height:150px; padding:8px; text-align:left; border:0; background:#fff; color:inherit; }
#view-service-home .calendar-day-button:hover { background:#edf3ef; }
#view-service-home .calendar-day-number { font-weight:700; }
.calendar-day-people { display:flex; flex-direction:column; gap:4px; font-size:13px; overflow-wrap:anywhere; }
.calendar-day-people small { font-size:11px; color:#52685f; }
.calendar-day-people [data-status=absent] { color:#8b4b43; }
#view-service-home .calendar-day-badges { display:flex; flex-wrap:wrap; gap:4px; margin-top:auto; }
#view-service-home .calendar-badge { padding:2px 5px; font-size:11px; color:#244e40; background:#e7efea; border-radius:4px; }
#view-service-home .calendar-legend { display:flex; flex-wrap:wrap; gap:12px; margin:12px 0; font-size:12px; }
#view-service-home .calendar-month-nav { margin-bottom:12px; }
@media(max-width:700px) { .directory-summary-grid { grid-template-columns:1fr; } #view-service-home .client-search .field { flex-basis:calc(50% - 12px); } #view-service-home .client-search .field:first-child { flex-basis:100%; } }

#view-service-home .calendar-create { margin-top:12px; }

/* ご意見・要望: 短い投稿と対応状況を一画面で確認する。 */
#view-feedback { max-width: 960px; }
#view-feedback .feedback-form { padding: 20px; border: 1px solid var(--border, #c9d7cf); border-radius: 12px; background: #fff; }
#view-feedback textarea { width: 100%; min-height: 88px; resize: vertical; }
#view-feedback .feedback-submit, #view-feedback .feedback-list-heading, #view-feedback .feedback-item-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
#view-feedback .feedback-submit { margin-top: 12px; }
#view-feedback .feedback-list-heading { margin: 24px 0 12px; }
#view-feedback .feedback-list-heading h2 { margin: 0; font-size: 20px; }
#view-feedback .feedback-message { min-height: 1.5em; margin: 12px 0; }
#view-feedback .feedback-message[data-error] { color: #9b2828; }
#view-feedback .feedback-list { display: grid; gap: 12px; }
#view-feedback .feedback-item { border: 1px solid #c9d7cf; border-radius: 10px; padding: 16px 20px; background: #fff; }
#view-feedback .feedback-item-meta { color: #536b61; font-size: 14px; }
#view-feedback .feedback-item-meta select { width: 130px; min-height: 40px; background-color: #e8f1eb; }
#view-feedback .feedback-content { white-space: pre-wrap; overflow-wrap: anywhere; margin: 12px 0 0; }
#view-feedback .feedback-status { padding: 6px 12px; border-radius: 6px; background: #e8f1eb; color: #244a3f; }
#view-feedback [data-feedback-more] { margin-top: 16px; }
@media(max-width: 600px) {
 #view-feedback .feedback-form, #view-feedback .feedback-item { padding: 14px; }
 #view-feedback .feedback-submit { align-items: flex-start; flex-direction: column; }
 #view-feedback .feedback-item-meta { flex-wrap: wrap; }
}

/* モニタリングの引き継ぎ操作と帳票の境界を離す。 */
#monitoring-editor-form [data-original-document] > .assessment-print-actions { margin-bottom:16px; }

#plan-finalization-form .workflow-date-time { display:grid; grid-template-columns:minmax(0,1fr) 120px; gap:10px; }
#plan-finalization-form .workflow-date-time input { width:100%; min-width:0; }
#plan-finalization-form .field > span > small { font-size:12px; font-weight:400; color:#526c61; }

#view-feedback .feedback-photo-input { margin-top: 12px; }
#view-feedback .feedback-photos { display:flex; flex-wrap:wrap; gap:12px; margin-top:12px; }
#view-feedback .feedback-photos:empty { display:none; }
#view-feedback .feedback-photos figure { margin:0; display:grid; gap:6px; width:140px; }
#view-feedback .feedback-photos img { display:block; width:140px; height:100px; object-fit:contain; border:1px solid #c9d7cf; border-radius:6px; background:#f4f6f4; }
#view-feedback .feedback-resolution { margin-top:16px; padding-top:12px; border-top:1px solid #dce5de; }
#view-feedback .feedback-resolution textarea { min-height:60px; }
#view-feedback .feedback-resolution button { margin-top:8px; }
#view-feedback input[type=file] { width:100%; min-width:0; }

@media(max-width:480px) {
 #view-documents .specialized-program-actions { flex-direction:row; align-items:center; }
 #view-documents .specialized-program-actions > :is(.button-primary,.button-secondary) { width:min(180px,100%); min-width:0; }
 #view-documents .specialized-program-actions .support-plan-history-link { margin-left:0; }
}

/* 選択した期だけを、計画・評価・専門計画で共通表示する。 */
#view-documents .support-plan-term-switch { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
#view-documents .support-plan-term-switch .button { min-height:44px; padding:10px 16px; }
#view-documents .support-plan-term-grid { grid-template-columns:minmax(0,1fr); }
#view-documents .support-plan-term { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 20px; }
@media(max-width:850px) { #view-documents .support-plan-term { grid-template-columns:minmax(0,1fr); } }

#view-feedback .feedback-kind { max-width:220px; margin-bottom:12px; }
#view-feedback .feedback-kind-badge { padding:3px 8px; background:#e8f1eb; color:#244a3f; border-radius:4px; font-size:12px; font-weight:700; }
#view-feedback .feedback-item-meta { flex-wrap:wrap; }
#view-feedback .feedback-item-meta > select, #view-feedback .feedback-item-meta > .feedback-status { margin-left:auto; }
#view-feedback .feedback-thread { margin-top:16px; padding-top:12px; border-top:1px solid #dce5de; }
#view-feedback .feedback-thread-heading { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
#view-feedback .feedback-reply-count { font-size:13px; color:#52665c; }
#view-feedback .feedback-reply { margin-top:10px; padding:10px 12px; border-left:3px solid #b6cec1; background:#f4f8f5; }
#view-feedback .feedback-reply p { margin:6px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
#view-feedback .feedback-reply small { color:#52665c; }
#view-feedback .feedback-reply-form { margin-top:12px; }
#view-feedback .feedback-reply-form textarea { min-height:60px; }
#view-feedback .feedback-reply-form button { margin-top:8px; }

#view-documents [data-support-plan-cycle] > .support-plan-year-toolbar { justify-content:flex-start; gap:12px; }
#view-documents [data-support-plan-cycle] .support-plan-term-switch { margin:0; gap:6px; }
#view-documents [data-support-plan-cycle] .support-plan-term-switch .button { width:auto; min-width:0; max-width:none; flex-basis:auto; }
#view-documents [data-support-plan-cycle] > .support-plan-year-toolbar > .button { margin-left:auto; }
#document-downloads[hidden] { display:none; }
#document-downloads { max-width:1120px; }
.document-download-toolbar,.document-download-selection { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:16px 0; }
.document-download-toolbar label { display:flex; align-items:center; gap:8px; font-weight:600; }
.document-download-toolbar select { min-height:44px; padding:6px 12px; border:1px solid var(--ui-control-border, #b4c4bb); border-radius:8px; font:inherit; color:var(--ui-ink, #243b34); }
.document-download-toolbar > button,.document-download-selection > .button-primary { margin-left:auto; }
.document-download-help { color:#52685f; font-size:14px; }
.document-download-list { display:grid; gap:18px; max-width:1120px; }
.document-download-group { min-width:0; overflow:hidden; border:1px solid var(--ui-border, #c9d3d9); border-radius:10px; background:var(--ui-surface, #fff); }
.document-download-group-heading { display:flex; align-items:center; flex-wrap:wrap; gap:8px 16px; padding:12px 18px; border-bottom:1px solid var(--ui-border, #dce2e6); background:var(--ui-accent-soft, #eff3f5); }
.document-download-group-heading h2 { margin:0; color:var(--ui-ink, #263238); font-size:17px; line-height:1.5; }
.document-download-group-heading > span { color:var(--ui-muted, #4c5e68); font-size:13px; }
.document-download-row { display:grid; grid-template-columns:minmax(0,1fr) 120px; align-items:center; gap:16px; padding:14px 18px; border-bottom:1px solid var(--ui-border, #e1e6e9); }
.document-download-row:last-child { border-bottom:0; }
.document-download-content { min-width:0; }
.document-download-name { display:flex; align-items:center; gap:12px; min-width:0; color:var(--ui-ink, #263238); font-size:16px; line-height:1.5; }
.document-download-name input { width:18px; height:18px; min-height:18px; flex-shrink:0; margin:0; accent-color:#244c41; }
.document-download-name strong { overflow-wrap:anywhere; }
.document-download-meta { display:flex; align-items:center; flex-wrap:wrap; gap:6px 12px; margin:6px 0 0 30px; color:var(--ui-muted, #4c5e68); font-size:13px; line-height:1.5; }
.document-download-status { padding:2px 7px; border-radius:4px; background:var(--ui-accent-soft, #edf0f3); color:var(--ui-ink, #394b58); font-weight:600; }
.document-download-status[data-status="draft"] { color:#755012; background:#fff2d8; }
.document-download-status[data-status="active"] { color:#244c41; background:#e4efe8; }
.document-download-row .button { padding:8px 12px; min-height:40px; font-size:14px; }
.document-download-missing { background:#f7f8f9; }
.document-download-missing summary { padding:11px 18px; color:var(--ui-muted, #4c5e68); font-size:13px; cursor:pointer; }
.document-download-row.is-missing { padding:8px 18px 8px 30px; color:var(--ui-muted, #4c5e68); font-size:13px; }
.document-download-row.is-missing > :last-child { text-align:right; }
.document-download-empty { margin:0; padding:16px 18px; color:var(--ui-muted, #4c5e68); font-size:14px; }
.document-download-message { min-height:1.5em; }
.document-download-message[data-error] { color:#9b2828; }
#document-downloads :is(button,input,select,summary):focus-visible { outline:3px solid #244c41; outline-offset:3px; }
@media(max-width:600px) {
 .document-download-row { grid-template-columns:minmax(0,1fr); gap:10px; padding:12px 14px; }
 .document-download-row > .button { justify-self:end; }
 .document-download-row.is-missing { grid-template-columns:minmax(0,1fr) auto; padding:8px 14px; }
 .document-download-group-heading { padding:10px 14px; }
 .document-download-selection > .button-primary { width:100%; margin-left:0; white-space:normal; }
}

#plan-finalization-form .finalization-confirmation + .readiness-copy { margin-top:16px; }

.staff-screen-access { margin: 20px 0; padding: 16px; border: 1px solid var(--border, #c5d5cb); border-radius: 12px; }
.staff-screen-access legend { font-weight: 700; }
.staff-screen-access > p { margin: 0 0 12px; }
.staff-screen-access-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px, 40%); align-items: center; gap: 12px; padding: 8px 0; border-bottom: 1px solid #e0e8e2; }
.staff-screen-access-row:last-child { border-bottom: 0; }
.staff-screen-access-row small { display: block; font-weight: 400; font-size: .8em; }
.staff-screen-access-row select { width: 100%; min-height: 44px; }
@media (max-width: 480px) { .staff-screen-access-row { grid-template-columns: 1fr; gap: 4px; } }

/* 出力の入口を独立させ、計画一覧の空白を抑える。 */
#view-documents:not([data-recording="true"]) .document-lane-heading { padding:14px 22px; }
#view-documents:not([data-recording="true"]) .document-lane h2 { margin:0; font-size:20px; }
#view-documents:not([data-recording="true"]) .document-lane-record { padding:16px 22px; gap:10px; }
#view-documents .support-plan-period-document { min-height:0; padding:16px 0; margin-top:8px; }
#view-documents .support-plan-card-body { flex:0 0 auto; margin:8px 0 16px; }
#view-documents .document-lane.assessment .document-actions .assessment-history-link { flex:0 0 auto; width:auto; min-width:0; max-width:none; height:auto; min-height:36px; margin-left:auto; padding:4px 0; border:0; background:transparent; color:#52685f; font-size:13px; text-decoration:underline; text-underline-offset:3px; }
@media(max-width:650px){
 #view-documents:not([data-recording="true"]) .document-lane-heading { padding:14px 16px; }
 #view-documents:not([data-recording="true"]) .document-lane-record { padding:14px 16px; }
}

/* 記録の絞り込みにも共通の選択欄の配色を使う。 */
@media screen {
 #view-documents[data-recording="true"] .document-lane.supplemental select:not([multiple]):is(:not([size]),[size="1"]) {
  background-color:var(--ui-select-surface, #fff) !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='m3 5 4 4 4-4' fill='none' stroke='%23244c41' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),linear-gradient(var(--ui-select-segment, #f1f3f0),var(--ui-select-segment, #f1f3f0)) !important;
 }
 #view-documents[data-recording="true"] .document-lane.supplemental :is(button,select,input):focus-visible {
  outline:3px solid #244c41; outline-offset:3px;
 }
}

/* 年度は補助的な選択、前期・後期は一つの切替としてまとめる。 */
#view-documents [data-support-plan-cycle] > .support-plan-year-toolbar { gap:14px 24px; padding:0 0 12px; margin-bottom:0; }
#view-documents [data-support-plan-cycle] > .support-plan-year-toolbar > label { gap:10px; color:var(--ui-muted, #4c5e68); font-size:13px; }
#view-documents [data-support-plan-cycle] > .support-plan-year-toolbar select { height:48px; min-height:48px; width:146px; padding:8px 40px 8px 12px; border-color:var(--ui-control-border, #bac7ce); border-radius:7px; color:var(--ui-ink, #263238); font-size:16px; background-color:var(--ui-select-surface, #fff) !important; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='m3 5 4 4 4-4' fill='none' stroke='%23244c41' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),linear-gradient(var(--ui-select-segment, #f1f3f0),var(--ui-select-segment, #f1f3f0)) !important; }
#view-documents [data-support-plan-cycle] .support-plan-term-switch { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:360px; max-width:100%; box-sizing:border-box; gap:4px; padding:4px; border:1px solid var(--ui-border, #c9d3d9); border-radius:10px; background:var(--ui-accent-soft, #edf1f3); }
#view-documents [data-support-plan-cycle] .support-plan-term-switch .button { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:1px; width:100%; min-width:0; height:48px; min-height:48px; margin:0; padding:4px 8px; border:0; border-radius:6px; background:transparent; color:var(--ui-ink, #394b58); font-size:14px; line-height:1.4; }
#view-documents [data-support-plan-cycle] .support-plan-term-switch .button small { color:inherit; font-size:12px; line-height:1.4; font-weight:400; white-space:nowrap; }
#view-documents [data-support-plan-cycle] .support-plan-term-switch .button[aria-pressed="true"] { background:#244c41; color:var(--ui-surface, #fff); box-shadow:0 1px 3px #172e2426; }
#view-documents [data-support-plan-cycle] .support-plan-term-switch .button[aria-pressed="false"]:hover { background:var(--ui-accent-soft, #dce4e8); color:var(--ui-ink, #263238); }
#view-documents [data-support-plan-cycle] .support-plan-term-switch .button:focus-visible { outline:3px solid #244c41; outline-offset:2px; }
@media(max-width:600px){
 #view-documents [data-support-plan-cycle] .support-plan-term-switch { width:100%; }
}

/* ヒアリングは見出し・本文・選択操作の階層を分ける。印刷には適用しない。 */
@media screen {
 #planning-interview-page .planning-interview-group { border-color:var(--ui-border, #c9d3d9); background:var(--ui-surface, #fff); color:var(--ui-ink, #263238); }
 #planning-interview-page .planning-interview-group > h3 { padding:10px 12px; border-color:var(--ui-border, #c9d3d9); background:var(--ui-accent-soft, #eff3f5); color:var(--ui-ink, #263238); font-size:17px; }
 #planning-interview-page .planning-interview-subheading { margin:14px 0 2px; padding:6px 0 8px; border-left:0; border-bottom:1px solid var(--ui-border, #dce2e6); background:var(--ui-surface, #fff); color:var(--ui-ink, #394b58); font-size:15px; }
 #planning-interview-page .planning-interview-field { color:var(--ui-ink, #263238); font-size:14px; line-height:1.5; }
 #planning-interview-page .planning-interview-field > :is(textarea,input,select) { border-color:var(--ui-control-border, #b9c6ce); background-color:var(--ui-surface, #fff); color:var(--ui-ink, #263238); }
 #planning-interview-page .planning-interview-field > textarea::placeholder { color:var(--ui-muted, #596a75); }
 #planning-interview-page #planning-interview-input-panel .planning-interview-field > :is(textarea,select) { height:56px; min-height:56px; padding-top:7px; padding-bottom:7px; line-height:1.5; }
 #planning-interview-page .planning-interview-field > select:not([multiple]):is(:not([size]),[size="1"]) { background-color:var(--ui-select-surface, #fff) !important; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Cpath d='m3 5 4 4 4-4' fill='none' stroke='%23244c41' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),linear-gradient(var(--ui-select-segment, #f1f3f0),var(--ui-select-segment, #f1f3f0)) !important; }
 #planning-interview-page :is(textarea,input,select,button):focus-visible { outline:3px solid #244c41; outline-offset:2px; }
 #planning-interview-page .planning-interview-context { background:var(--ui-canvas, #f5f7f8); color:var(--ui-ink, #394b58); }
 #planning-interview-page .planning-interview-writing-toolbar { background:var(--ui-accent-soft, #eff3f5); color:var(--ui-ink, #394b58); }
}

/* 面談メモは原紙と同じ順番の記入表。保存キーは従来のまま。 */
@media screen {
 #planning-interview-memo-panel > .planning-interview-intro { color:var(--ui-ink, #263238); font-size:17px; font-weight:700; margin:14px 0; }
 #planning-interview-page #planning-interview-memo-panel .meeting-memo-group { display:grid; grid-template-columns:180px minmax(0,1fr); gap:0; margin:0; padding:0; border:1px solid var(--ui-border, #c9d3d9); border-radius:0; background:var(--ui-surface, #fff); }
 #planning-interview-page #planning-interview-memo-panel .meeting-memo-group + .meeting-memo-group { border-top:0; }
 #planning-interview-page #planning-interview-memo-panel .meeting-memo-group > h3 { grid-column:1; grid-row:1 / span 2; align-self:stretch; display:flex; align-items:center; margin:0; padding:14px; border:0; border-right:1px solid var(--ui-border, #c9d3d9); border-radius:0; font-size:14px; line-height:1.6; background:var(--ui-accent-soft, #eff3f5); }
 #planning-interview-memo-panel .meeting-memo-fields { grid-column:2; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; min-width:0; padding:12px 14px; }
 #planning-interview-memo-panel .meeting-memo-note { grid-column:2; margin:0; padding:10px 14px 0; color:var(--ui-muted, #4c5e68); font-size:12px; line-height:1.6; }
 #planning-interview-memo-panel [data-memo-layout=metadata] .meeting-memo-fields { grid-template-columns:minmax(140px,1.4fr) repeat(2,minmax(90px,1fr)) repeat(2,minmax(100px,1fr)); }
 #planning-interview-memo-panel [data-memo-layout=school] .meeting-memo-fields { grid-template-columns:1.5fr 1fr 1fr; }
 #planning-interview-memo-panel [data-memo-layout=program] .meeting-memo-fields { grid-template-columns:repeat(3,minmax(0,1fr)); }
 #planning-interview-memo-panel [data-memo-layout=weekdays] .meeting-memo-fields { grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
 #planning-interview-memo-panel [data-memo-layout=narrative] .meeting-memo-fields { grid-template-columns:minmax(0,1fr); }
 #planning-interview-memo-panel .planning-interview-field { min-width:0; }
 #planning-interview-memo-panel .meeting-memo-single-field > span { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
 #planning-interview-page #planning-interview-memo-panel .planning-interview-field > textarea { height:56px; min-height:56px; }
 #planning-interview-page #planning-interview-memo-panel :is([data-memo-key=homeSituation],[data-memo-key=schoolSituation],[data-memo-key=guardianNeeds]) > textarea { height:96px; min-height:96px; }
 #planning-interview-page #planning-interview-memo-panel .planning-interview-field > :is(input,select) { width:100%; min-width:0; height:44px; min-height:44px; font-size:14px; }
 @media(max-width:1000px){
  #planning-interview-memo-panel [data-memo-layout=metadata] .meeting-memo-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #planning-interview-memo-panel [data-memo-layout=metadata] [data-memo-key=date] { grid-column:1 / -1; }
 }
 @media(max-width:700px){
  #planning-interview-page #planning-interview-memo-panel .meeting-memo-group { grid-template-columns:minmax(0,1fr); }
  #planning-interview-page #planning-interview-memo-panel .meeting-memo-group > h3 { grid-column:1; grid-row:auto; padding:10px 12px; border-right:0; border-bottom:1px solid var(--ui-border, #c9d3d9); }
  #planning-interview-memo-panel :is(.meeting-memo-fields,.meeting-memo-note) { grid-column:1; }
  #planning-interview-memo-panel [data-memo-layout=school] .meeting-memo-fields,#planning-interview-memo-panel [data-memo-layout=program] .meeting-memo-fields { grid-template-columns:minmax(0,1fr); }
 }
}

@media screen and (max-width:700px) {
 #planning-interview-memo-panel [data-memo-layout=weekdays] .meeting-memo-fields { grid-template-columns:minmax(0,1fr); }
 #planning-interview-memo-panel [data-memo-layout=weekdays] .planning-interview-field { display:grid; grid-template-columns:24px minmax(0,1fr); align-items:center; gap:8px; }
}

/* 家庭・学校の様子は、長めの文章を見渡せる高さを確保する。 */
@media screen {
 #planning-interview-page #planning-interview-memo-panel :is([data-memo-key=homeSituation],[data-memo-key=schoolSituation]) > textarea { height:160px; min-height:160px; }
}

/* 次年度の利用先は短い記入に合わせてコンパクトにする。 */
@media screen {
 #planning-interview-page #planning-interview-memo-panel [data-memo-key=nextProvider] > textarea { height:44px; min-height:44px; padding-top:10px; padding-bottom:10px; }
}

/* 有無の選択は内容に合わせた幅にする。 */
@media screen {
 #planning-interview-memo-panel [data-memo-layout=school] .meeting-memo-fields { grid-template-columns:minmax(0,1fr) minmax(0,180px) minmax(0,180px); }
 #planning-interview-page #planning-interview-memo-panel :is([data-memo-key=supportClass],[data-memo-key=ikiikiUse]) > select { max-width:180px; height:40px; min-height:40px; padding-top:7px; padding-bottom:7px; }
}
@media screen and (max-width:700px) {
 #planning-interview-memo-panel [data-memo-layout=school] .meeting-memo-fields { grid-template-columns:minmax(0,1fr); }
}

/* 希望・NG曜日は複数選択でき、条件は補足に残せる。 */
#planning-interview-memo-panel .meeting-memo-day-field { margin:0; padding:0; border:0; }
#planning-interview-memo-panel .meeting-memo-day-field legend { padding:0; margin:0 0 8px; font-size:14px; font-weight:700; }
#planning-interview-memo-panel .meeting-memo-day-choices { display:flex; flex-wrap:wrap; gap:6px; }
#planning-interview-memo-panel .meeting-memo-day-choices label { display:flex; align-items:center; gap:6px; padding:6px 8px; min-height:40px; box-sizing:border-box; border:1px solid #bac7ce; border-radius:6px; background:#fff; cursor:pointer; }
#planning-interview-memo-panel .meeting-memo-day-choices label:has(input:checked) { border-color:#244c41; background:#e4efe8; }
#planning-interview-memo-panel .meeting-memo-day-choices input { width:16px; height:16px; min-height:16px; margin:0; accent-color:#244c41; }
#planning-interview-memo-panel .meeting-memo-day-note { display:grid; gap:4px; margin-top:8px; font-size:12px; color:#4c5e68; }
#planning-interview-memo-panel .meeting-memo-day-note input { width:100%; min-width:0; min-height:36px; height:36px; padding:6px 8px; box-sizing:border-box; font-size:13px; }

/* プログラム希望は短い記入欄と密度を揃えた曜日選択にする。 */
@media screen {
 #planning-interview-page #planning-interview-memo-panel [data-memo-key=desiredProgram] > textarea { height:40px; min-height:40px; padding:8px; }
 #planning-interview-memo-panel [data-memo-layout=program] .meeting-memo-fields { gap:10px; padding-top:10px; padding-bottom:10px; }
 #planning-interview-memo-panel .meeting-memo-day-field legend { margin-bottom:6px; }
 #planning-interview-memo-panel .meeting-memo-day-choices { gap:4px; }
 #planning-interview-memo-panel .meeting-memo-day-choices label { min-height:32px; padding:4px 6px; gap:4px; font-size:13px; }
 #planning-interview-memo-panel .meeting-memo-day-choices input { width:14px; height:14px; min-height:14px; }
 #planning-interview-memo-panel .meeting-memo-day-note { gap:2px; margin-top:6px; font-size:11px; }
 #planning-interview-memo-panel .meeting-memo-day-note input { min-height:32px; height:32px; padding:4px 6px; font-size:12px; }
}
@media screen and (pointer:coarse) {
 #planning-interview-memo-panel .meeting-memo-day-choices label { min-height:44px; }
}

/* 保護者のニーズは長めの文章を確認しやすくする。 */
@media screen {
 #planning-interview-page #planning-interview-memo-panel [data-memo-key=guardianNeeds] > textarea { height:160px; min-height:160px; }
}

/* 説明記録は原紙と同じく、説明文の右に事業所ごとの記入欄を並べる。 */
@media screen {
 #planning-interview-page #planning-interview-memo-panel .meeting-memo-group[data-memo-layout=office] { grid-template-columns:180px minmax(0,1fr) minmax(260px,1fr); }
 #planning-interview-page #planning-interview-memo-panel .meeting-memo-group[data-memo-layout=office] > h3 { grid-row:1; }
 #planning-interview-memo-panel [data-memo-layout=office] .meeting-memo-note { grid-column:2; grid-row:1; align-self:center; padding:10px 14px; }
 #planning-interview-memo-panel [data-memo-layout=office] .meeting-memo-fields { grid-column:3; grid-row:1; grid-template-columns:minmax(0,1fr); gap:6px; padding:8px 12px; border-left:1px solid var(--ui-border, #c9d3d9); }
 #planning-interview-memo-panel [data-memo-layout=office] .planning-interview-field { display:grid; grid-template-columns:80px minmax(0,1fr); align-items:center; gap:8px; font-size:13px; }
 #planning-interview-page #planning-interview-memo-panel [data-memo-layout=office] .planning-interview-field > textarea { height:36px; min-height:36px; padding:6px 8px; font-size:13px; line-height:1.5; }
}
@media screen and (max-width:1000px) {
 #planning-interview-page #planning-interview-memo-panel .meeting-memo-group[data-memo-layout=office] { grid-template-columns:180px minmax(0,1fr); }
 #planning-interview-page #planning-interview-memo-panel .meeting-memo-group[data-memo-layout=office] > h3 { grid-row:1 / span 2; }
 #planning-interview-memo-panel [data-memo-layout=office] .meeting-memo-note { grid-column:2; grid-row:1; padding-bottom:0; }
 #planning-interview-memo-panel [data-memo-layout=office] .meeting-memo-fields { grid-column:2; grid-row:2; border-left:0; }
}
@media screen and (max-width:700px) {
 #planning-interview-page #planning-interview-memo-panel .meeting-memo-group[data-memo-layout=office] { grid-template-columns:minmax(0,1fr); }
 #planning-interview-page #planning-interview-memo-panel .meeting-memo-group[data-memo-layout=office] > h3 { grid-row:1; }
 #planning-interview-memo-panel [data-memo-layout=office] .meeting-memo-note { grid-column:1; grid-row:2; }
 #planning-interview-memo-panel [data-memo-layout=office] .meeting-memo-fields { grid-column:1; grid-row:3; }
}

/* 進学先の記入欄を、同じ行の有無の選択欄と揃える。 */
@media screen {
 #planning-interview-page #planning-interview-memo-panel [data-memo-key=schoolDestination] > textarea { height:40px; min-height:40px; padding:8px; }
}

/* 見出しは意味のまとまりで改行し、単語の途中で切らない。 */
@media screen {
 #planning-interview-page #planning-interview-memo-panel .meeting-memo-group > h3 { flex-direction:column; justify-content:center; align-items:flex-start; }
 #planning-interview-page #planning-interview-memo-panel .meeting-memo-group > h3 > span { display:block; white-space:nowrap; }
}
@media screen and (max-width:700px) {
 #planning-interview-page #planning-interview-memo-panel .meeting-memo-group > h3 { flex-direction:row; justify-content:flex-start; flex-wrap:wrap; }
}

/* 保存バーの両端に余白を取り、説明文の右半分を空ける。 */
#planning-interview-page .planning-interview-footer { box-sizing:border-box; padding:14px 20px; }
@media screen and (min-width:1001px) {
 #planning-interview-memo-panel [data-memo-layout=office] .meeting-memo-note { width:50%; box-sizing:border-box; justify-self:start; }
}
@media(max-width:600px) {
 #planning-interview-page .planning-interview-footer { padding:12px; }
}

/* 希望プログラムは隣の曜日欄の下端まで記入スペースを広げる。 */
@media screen and (min-width:701px) {
 #planning-interview-memo-panel [data-memo-key=desiredProgram] { display:flex; flex-direction:column; align-self:stretch; }
 #planning-interview-page #planning-interview-memo-panel [data-memo-key=desiredProgram] > textarea { flex:1; height:auto; min-height:40px; }
}
@media screen and (max-width:700px) {
 #planning-interview-page #planning-interview-memo-panel [data-memo-key=desiredProgram] > textarea { height:96px; min-height:96px; }
}

/* 中央の説明文の右半分は、保存できる事務用メモ欄にする。 */
@media screen {
 #planning-interview-memo-panel [data-memo-layout=office] .meeting-memo-office-note { grid-column:2; grid-row:1; justify-self:end; width:50%; box-sizing:border-box; display:flex; flex-direction:column; gap:4px; padding:10px 14px 10px 0; margin:0; align-self:stretch; }
 #planning-interview-page #planning-interview-memo-panel [data-memo-layout=office] .meeting-memo-office-note > textarea { height:auto; flex:1; min-height:56px; }
}
@media screen and (max-width:1000px) {
 #planning-interview-page #planning-interview-memo-panel .meeting-memo-group[data-memo-layout=office] > h3 { grid-row:1 / span 3; }
 #planning-interview-memo-panel [data-memo-layout=office] .meeting-memo-office-note { grid-column:2; grid-row:2; width:100%; padding:8px 12px; }
 #planning-interview-memo-panel [data-memo-layout=office] .meeting-memo-fields { grid-row:3; }
}
@media screen and (max-width:700px) {
 #planning-interview-page #planning-interview-memo-panel .meeting-memo-group[data-memo-layout=office] > h3 { grid-row:1; }
 #planning-interview-memo-panel [data-memo-layout=office] .meeting-memo-office-note { grid-column:1; grid-row:3; }
 #planning-interview-memo-panel [data-memo-layout=office] .meeting-memo-fields { grid-row:4; }
}

/* 進学先の重複ラベルを省き、その高さを記入欄に使う。 */
@media screen {
 #planning-interview-memo-panel [data-memo-key=schoolDestination] { display:flex; flex-direction:column; align-self:stretch; }
 #planning-interview-page #planning-interview-memo-panel [data-memo-key=schoolDestination] > textarea { flex:1; height:auto; min-height:40px; }
}
@media screen and (max-width:700px) {
 #planning-interview-page #planning-interview-memo-panel [data-memo-key=schoolDestination] > textarea { height:80px; min-height:80px; }
}

@media screen {
 #planning-interview-memo-panel > .planning-interview-intro { text-align:center; }
}

.planning-reflection-preview { flex-basis:100%; width:100%; min-width:0; margin-top:14px; padding:14px; border:1px solid var(--ui-border, #c9d3d9); border-radius:8px; background:var(--ui-surface, #fff); }
.planning-reflection-preview h3 { margin:0 0 8px; font-size:17px; }
.planning-reflection-preview > p { color:var(--ui-muted, #4c5e68); font-size:13px; }
.planning-reflection-preview table { width:100%; table-layout:fixed; border-collapse:collapse; margin-top:12px; font-size:14px; }
.planning-reflection-preview th,.planning-reflection-preview td { padding:10px; border:1px solid var(--ui-border, #c9d3d9); text-align:left; vertical-align:top; white-space:pre-wrap; overflow-wrap:anywhere; }
.planning-reflection-preview th { background:var(--ui-accent-soft, #eff3f5); }
.planning-reflection-preview thead th:first-child { width:24%; }
.planning-reflection-preview td strong { font-size:12px; color:#244c41; }
.planning-reflection-preview tr[data-action=preserve] td strong { color:#755012; }
.planning-reflection-preview td p { margin:6px 0 0; }
@media(max-width:600px){
 .planning-reflection-preview { padding:10px; }
 .planning-reflection-preview thead { display:none; }
 .planning-reflection-preview table,.planning-reflection-preview tbody,.planning-reflection-preview tr,.planning-reflection-preview th,.planning-reflection-preview td { display:block; width:100%; }
 .planning-reflection-preview tr { margin-bottom:12px; }
 .planning-reflection-preview td + td { border-top:0; }
 .planning-reflection-preview td:nth-child(2)::before { content:'現在の内容'; display:block; margin-bottom:4px; font-size:12px; font-weight:700; color:#4c5e68; }
}

/* Separate finalization errors from the refresh action. */
#plan-finalization-error:not([hidden]) + #refresh-finalization-source {
  margin-top: 12px;
}

/* Monitoring: show confirmed plan sources separately from evaluation inputs. */
#monitoring-editor-form .assessment-original-table td:has(.is-plan-inherited),
#monitoring-editor-form .is-plan-inherited,
#monitoring-editor-form .is-plan-inherited > .assessment-cell-input { background: #edf4ff !important; }
#monitoring-editor-form .is-plan-inherited-edited > .assessment-cell-input { box-shadow: inset 3px 0 #587baa; }
.monitoring-plan-source-legend { padding: 7px 10px; border: 1px solid #b7cce7; border-radius: 4px; background: #edf4ff; color: #24466d; font-size: 12px; }
@media print {
 #monitoring-editor-form .assessment-original-table td:has(.is-plan-inherited),
 #monitoring-editor-form .is-plan-inherited,
 #monitoring-editor-form .is-plan-inherited > .assessment-cell-input { background: white !important; box-shadow: none; }
 .monitoring-plan-source-legend { display: none !important; }
}

.document-record-downloads { margin: 0 0 18px; border: 1px solid var(--ui-border, #b8c8d6); border-radius: 8px; overflow: hidden; background: var(--ui-surface, #fff); }
.document-record-download-body { padding: 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.document-record-download-body p { margin: 6px 0 0; color: var(--ui-muted, #526371); font-size: 13px; }
.document-record-download-actions { display: flex; flex-wrap: wrap; gap: 10px; flex-shrink: 0; }
@media (max-width: 900px) {
 .document-record-download-body { align-items: stretch; flex-direction: column; }
 .document-record-download-actions { flex-shrink: 1; }
 .document-record-download-actions .button { white-space: normal; }
}

.document-download-navigation { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin: 16px 0; }
.document-download-tabs { display: inline-flex; gap: 4px; padding: 4px; border-radius: 8px; background: #e5eae7; }
.document-download-tabs [role="tab"] { min-height: 44px; padding: 8px 22px; border: 0; border-radius: 6px; background: transparent; color: #475a54; font: inherit; font-weight: 600; cursor: pointer; }
.document-download-tabs [aria-selected="true"] { background: #244d40; color: #fff; }
.document-download-tabs [role="tab"]:focus-visible { outline: 2px solid #244d40; outline-offset: 2px; }
#download-plan-panel .document-download-selection { margin-top: 0; }
#download-daily-panel .document-record-download-actions { flex-direction: column; align-items: stretch; }
#download-daily-panel .document-record-download-actions .button-secondary { border: 0; background: transparent; text-decoration: underline; }
@media (max-width: 600px) {
 .document-download-navigation { align-items: stretch; }
 .document-download-tabs { flex: 1 1 100%; }
 .document-download-tabs [role="tab"] { flex: 1; padding-inline: 14px; }
 .document-download-navigation > [data-back] { margin-left: auto; }
}

/* Saved plan versions use the original sheet layout without editable controls. */
.document-read-dialog { width:min(1200px,96vw);max-width:96vw;max-height:92dvh;padding:0;border:1px solid var(--border-color,#cbd5ce);border-radius:14px;background:#fff; }
.document-read-header { position:sticky;top:0;z-index:2;background:#fff;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid #d8e2da; }
.document-read-header h2 { margin:0;font-size:20px; }
.document-read-header p { margin:8px 0 0;color:#52665c;font-size:14px; }
.document-read-content { padding:0 16px 20px; }
.document-read-value { display:block;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6;padding:4px 5px; }
.document-read-dialog .assessment-original-table td.has-input { height:auto; }
.document-read-dialog .assessment-print-actions { justify-content:flex-end; }
@media(max-width:600px){.document-read-header{padding:16px;}.document-read-header h2{font-size:17px;}.document-read-content{padding:0 4px 12px;}}

.document-read-dialog :is(.assessment-support-centered-cell,.assessment-priority-cell) .document-read-value { text-align:center; }

.assessment-original-table .assessment-duration-cell select.assessment-cell-input {
 font-size:12px!important;text-align:left!important;padding:3px 16px 3px 3px!important;min-width:0;
 background-color:#fff!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='m1 1 4 4 4-4' fill='none' stroke='%23183f34'/%3E%3C/svg%3E")!important;
 background-repeat:no-repeat!important;background-size:10px 6px!important;background-position:right 3px center!important;
}

/* Keep the proficiency heading intact and use the full writing area. */
.assessment-original-table .assessment-proficiency-heading .assessment-original-text { white-space:nowrap; }
.assessment-original-table .assessment-priority-cell textarea.assessment-cell-input { padding:6px 4px!important; }

/* Align the two staff-name fields in specialized plans. */
.assessment-original-table:is([data-original-sheet="schoolPreparation"],[data-original-sheet="firstGrade"],[data-original-sheet="preTraining"],[data-original-sheet="music"],[data-original-sheet="lifeSkills"]) .assessment-cell-entry.has-affixes:has(> input:is([data-original-key="explainerName"],[data-original-key="specialistName"])) {
 display:grid;grid-template-columns:18em minmax(0,320px);gap:8px;align-items:center;justify-content:start;text-align:left;
}
.assessment-original-table:is([data-original-sheet="schoolPreparation"],[data-original-sheet="firstGrade"],[data-original-sheet="preTraining"],[data-original-sheet="music"],[data-original-sheet="lifeSkills"]) .assessment-cell-entry.has-affixes > input:is([data-original-key="explainerName"],[data-original-key="specialistName"]) {
 width:100%;max-width:100%;height:34px;min-height:34px!important;
}

.assessment-consent-fields > .assessment-handwritten-date + .assessment-handwritten-signature { margin-top:16px; }

.document-plan-bundle { margin-bottom:18px; }
.document-plan-bundle .document-download-selection { margin:0; padding:14px 18px; border-bottom:1px solid #e1e6e9; }
.document-plan-bundle .document-download-selection p { flex:1 1 260px; margin:0; line-height:1.6; }
.document-plan-bundle .document-download-row { grid-template-columns:minmax(0,1fr); }
.document-plan-bundle .document-download-meta { margin-left:0; }

/* Group the automatic annual bundle without adding selection controls. */
.document-plan-bundle .document-bundle-subheading { margin:0; padding:9px 18px; background:#f0f5f2; border-bottom:1px solid #e1e6e9; color:#245347; font-size:13px; line-height:1.5; font-weight:700; }
.document-plan-bundle .document-download-row:not(.is-missing) { padding:10px 18px; }
.document-plan-bundle .document-download-content { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:4px 20px; }
.document-plan-bundle .document-download-meta { margin:0; flex-shrink:0; }
@media (max-width:600px) {
 .document-plan-bundle .document-download-content { flex-direction:column; align-items:flex-start; gap:4px; }
 .document-plan-bundle .document-download-row:not(.is-missing),.document-plan-bundle .document-bundle-subheading { padding-left:12px; padding-right:12px; }
}

/* Keep feedback reading and actions together within a centered column. */
#view-feedback { box-sizing:border-box; width:100%; margin-inline:auto; }
#view-feedback .feedback-list-heading { justify-content:flex-start; flex-wrap:wrap; gap:12px 20px; }
#view-feedback .feedback-item-meta { justify-content:flex-start; gap:10px 14px; }
#view-feedback .feedback-item-meta > select, #view-feedback .feedback-item-meta > .feedback-status { margin-left:0; }
#view-feedback .feedback-item-meta select { box-sizing:border-box; border:1px solid #b4c7bc; border-radius:8px; padding:8px 12px; font:inherit; color:#244a3f; }

/* 服薬は薬ごとの見出しと間隔で区切る。 */
.child-profile-medication-group, .child-profile-medical-group, .child-profile-provider-group { margin-top:24px; }
.child-profile-medication-group > h4, .child-profile-medical-group > h4, .child-profile-provider-group > h4 { margin:0 0 8px; font-size:16px; font-weight:700; line-height:1.5; }

.profile-year-month-picker { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:8px; max-width:340px; }

.profile-monthly-day-input { display:flex; align-items:center; gap:10px; }
.profile-monthly-day-input > input { width:100%; max-width:160px; min-width:0; }
.profile-monthly-day-input > span { flex-shrink:0; }

.profile-weekday-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:16px; }
.profile-weekday-group { min-width:0; }
.profile-weekday-group > h4 { margin:0 0 8px; font-size:16px; line-height:1.5; }
.profile-weekday-group .child-profile-table { margin:0; }
.profile-weekday-group .child-profile-table th, .profile-weekday-group .child-profile-table td { font-size:13px; }
@media (max-width:700px) { .profile-weekday-grid { grid-template-columns:minmax(0,1fr); gap:20px; } }

/* 曜日別の予定は、時刻を主役にしたコンパクトな表示にする。 */
.profile-weekday-grid { gap:16px; }
.profile-weekday-group { padding:16px; border:1px solid #dce4df; border-radius:10px; background:#fffefa; }
.profile-weekday-group > h4 { margin:0 0 4px; padding-bottom:10px; border-bottom:1px solid #e3e9e5; font-size:15px; }
.profile-weekday-group .child-profile-table { border:0; table-layout:fixed; }
.profile-weekday-group .child-profile-table th,
.profile-weekday-group .child-profile-table td { border:0; border-bottom:1px solid #edf0ed; background:transparent; padding:10px 0; vertical-align:top; }
.profile-weekday-group .child-profile-table th { width:27%; padding:19px 10px 10px 0; font-weight:500; }
.profile-weekday-group .child-profile-table tr:last-child > * { border-bottom:0; padding-bottom:0; }
.weekday-times-help { margin:8px 0 16px; color:#62766c; font-size:13px; }
.weekday-time-editor { display:grid; grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr); gap:6px; align-items:center; }
.weekday-time-editor > label { display:block; min-width:0; }
.weekday-time-label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.weekday-time-separator { text-align:center; color:#7b8b82; font-size:12px; }
.weekday-time-editor select { width:100%; min-width:0; min-height:38px; padding:6px 22px 6px 8px; border-color:#d6dfd9; background:#fff; appearance:auto; font-size:13px; font-variant-numeric:tabular-nums; }
.weekday-time-note { grid-column:1 / -1; }
.weekday-time-note summary { width:fit-content; margin-left:auto; cursor:pointer; color:#6b7e73; font-size:11px; line-height:1.6; }
.weekday-time-note summary.has-content::after { content:''; display:inline-block; width:5px; height:5px; margin:0 0 1px 5px; border-radius:50%; background:#467261; }
.weekday-time-note > input { margin-top:6px; font-size:13px; }
.weekday-time-previous { display:block; margin-top:8px; color:#62766c; font-size:12px; }
@media (max-width:380px) {
  .profile-weekday-group { padding:12px; }
  .profile-weekday-group .child-profile-table th { width:25%; padding-right:6px; font-size:12px; }
  .weekday-time-editor { grid-template-columns:minmax(0,1fr) 8px minmax(0,1fr); gap:4px; }
  .weekday-time-editor select { padding-left:5px; padding-right:18px; font-size:12px; }
}

/* Repeated edit entries are secondary actions; keep saving inside editors prominent. */
@media screen {
 #view-documents #planning-interview-entry .planning-interview-entry-actions > .button-primary,
 #view-documents .document-lane.assessment .document-actions > .button-primary,
 #view-documents .support-plan-card-footer > .button-primary,
 #view-documents .specialized-program-actions > .button-primary {
  flex:0 0 auto; width:auto; min-width:0; max-width:100%; min-height:44px;
  padding:10px 18px; border:1px solid var(--ui-control-border); background:var(--ui-surface);
  color:var(--ui-accent); font-weight:600; box-shadow:none;
 }
 #view-documents #planning-interview-entry .planning-interview-entry-actions > .button-primary:hover,
 #view-documents .document-lane.assessment .document-actions > .button-primary:hover,
 #view-documents .support-plan-card-footer > .button-primary:hover,
 #view-documents .specialized-program-actions > .button-primary:hover {
  background:var(--ui-accent-soft); border-color:var(--ui-accent); color:var(--ui-accent);
 }
}

/* Download actions share the same secondary appearance across both tabs. */
@media screen {
 #document-downloads :is([data-combined-excel],[data-daily-records],[data-coordination-minutes],.document-download-row .button) {
  flex:0 0 auto; width:auto; min-width:0; max-width:100%; min-height:44px;
  padding:8px 14px; border:1px solid var(--ui-control-border); background:var(--ui-surface);
  color:var(--ui-accent); font-size:var(--ui-text-label); font-weight:600; box-shadow:none;
 }
 #document-downloads :is([data-combined-excel],[data-daily-records],[data-coordination-minutes],.document-download-row .button):hover {
  background:var(--ui-accent-soft); border-color:var(--ui-accent); color:var(--ui-accent);
 }
}

/* Record kinds share controls, while a narrow marker and text label identify each kind. */
@media screen {
  #supplemental-record-list .record-entry-card--individual {
    border-inline-start: 3px solid #54816d;
  }
  #supplemental-record-list .record-entry-card--individual .record-type-label {
    background: #e8f0e9;
    color: #244c41;
  }
  #supplemental-record-list .record-entry-card--meeting {
    border-inline-start: 3px solid #a77935;
  }
  #supplemental-record-list .record-entry-card--meeting .record-type-label {
    background: #f5ead7;
    color: #75521f;
  }
}

/* Keep each plan's state, metadata and actions together. */
@media screen {
 #view-documents .support-plan-term { align-items:stretch; }
 #view-documents .support-plan-period-document {
  margin-top:8px; padding:16px; border:1px solid var(--ui-border);
  border-radius:8px; background:var(--ui-surface);
 }
 #view-documents .support-plan-period-document.is-empty { border-style:dashed; }
 #view-documents .support-plan-card-heading { justify-content:flex-start; flex-wrap:wrap; gap:8px 12px; }
 #view-documents .support-plan-card-status.is-saved { background:#f1f3f0; color:var(--ui-muted); }
 #view-documents .support-plan-card-body { margin:8px 0 16px; }
 #view-documents .support-plan-card-footer {
  margin-top:auto; justify-content:flex-start; align-items:center; gap:8px 12px;
 }
 #view-documents .support-plan-card-footer > .plan-finalize-entry {
  flex:0 0 auto; width:auto; min-width:0; max-width:100%; padding:10px 18px;
 }
}

.assessment-original-table .assessment-followup-heading { white-space:nowrap!important; }
.assessment-original-table .assessment-followup-heading .assessment-original-text { white-space:nowrap; }

/* Monitoring scores stay compact and centered within the narrower column. */
#monitoring-editor-form select[data-original-key^="monitoringScore"] { text-align: center; text-align-last: center; }

.shared-plan-period-controls { grid-column:1 / -1;padding:16px 20px;border:1px solid #d7ded9;border-radius:10px;background:#fff; }
.shared-plan-period-controls > .readiness-copy { margin:0 0 12px; }
.specialized-legacy-plans { margin-top:18px; }
.specialized-legacy-plans > summary { cursor:pointer;color:#52665c;font-size:13px; }


/* Give annual and individual exports one shared layout and action column. */
@media screen {
 #document-downloads { max-width:none; }
 #download-plan-panel {
  border:1px solid var(--ui-border); border-radius:12px;
  overflow:hidden; background:var(--ui-surface);
 }
 #download-plan-panel .document-download-group { border:0; border-radius:0; }
 #download-plan-panel .document-plan-bundle { margin:0; border-bottom:1px solid var(--ui-border); }
 #download-plan-panel .document-plan-bundle > .document-download-group-heading {
  display:grid; grid-template-columns:minmax(0,1fr) 152px; gap:16px;
  min-height:88px; padding:18px 24px; border:0; background:transparent;
 }
 .document-download-bundle-title { min-width:0; }
 #download-plan-panel .document-download-bundle-title h2 { font-size:16px; line-height:1.5; }
 #download-plan-panel .document-download-list { max-width:none; gap:0; }
 #download-plan-panel .document-download-row {
  grid-template-columns:minmax(0,1fr) 152px; gap:16px; min-height:88px; padding:18px 24px;
 }
 #download-plan-panel .document-download-meta { margin:4px 0 0; }
 #document-downloads #download-plan-panel :is([data-combined-excel],.document-download-row .button) {
  width:152px; min-height:44px; justify-self:end; margin:0;
 }
 #download-plan-panel .document-download-row.is-missing { min-height:0; padding-block:10px; }
 #download-plan-panel .document-download-missing summary,
 #download-plan-panel .document-download-empty { padding-inline:24px; }
}
@media screen and (max-width:600px) {
 #download-plan-panel .document-plan-bundle > .document-download-group-heading {
  grid-template-columns:minmax(0,1fr); gap:14px; padding:20px 16px;
 }
 #download-plan-panel .document-download-bundle-title h2 { font-size:16px; }
 #download-plan-panel .document-download-row { grid-template-columns:minmax(0,1fr); gap:12px; padding:16px; }
 #download-plan-panel .document-download-row.is-missing { grid-template-columns:minmax(0,1fr) auto; }
 #document-downloads #download-plan-panel :is([data-combined-excel],.document-download-row .button) {
  width:100%; justify-self:stretch;
 }
 #download-plan-panel .document-download-missing summary,
 #download-plan-panel .document-download-empty { padding-inline:16px; }
}
