/* Visual system only. Record storage, business rules and document frames are unchanged. */
:root {
  color-scheme: light;
  --ink: #20313d;
  --muted: #63717c;
  --paper: #f5f7f8;
  --card: #ffffff;
  --line: #dfe7e9;
  --green: #0f766e;
  --green2: #e8f4f1;
  --cobalt: #0f766e;
  --mint: #31796d;
  --orange: #975815;
  --coral: #ad4a43;
  --accent-hover: #115e59;
  --surface-soft: #f4f7f8;
  --surface-teal: #edf7f4;
  --danger-soft: #fdf0ee;
  --danger-ink: #ab3f37;
  --warning-soft: #fff5e8;
  --warning-ink: #925616;
  --focus-ring: 0 0 0 3px rgba(15, 118, 110, .16);
  --shadow: 0 3px 14px rgba(31, 49, 61, .035);
}

body {
  background: var(--paper);
  color: var(--ink);
  font-family: "Apple SD Gothic Neo", "Malgun Gothic", "Segoe UI", sans-serif;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

button, .button, input, select, textarea { font-family: inherit; }
button, .button { border-radius: 10px; font-size: 13px; font-weight: 700; }
button:not(:disabled), .button { transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, color .16s ease; }
button:disabled, .button:disabled { cursor: not-allowed; }
button:focus-visible, .button:focus-visible, a:focus-visible, summary:focus-visible {
  outline: 3px solid rgba(15, 118, 110, .28);
  outline-offset: 3px;
}
input:focus-visible, select:focus-visible, textarea:focus-visible {
  border-color: var(--green);
  outline: none;
  box-shadow: var(--focus-ring);
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--green); }
input, select, textarea { border-color: #d5e0e3; border-radius: 9px; background: #fff; font-size: 14px; }
input::placeholder, textarea::placeholder { color: #7a8790; opacity: 1; }
input:disabled, select:disabled, textarea:disabled { background: #eef2f3; color: #60717b; }
textarea { line-height: 1.75; }

.primary, .entry-actions .primary { background: var(--green); color: #fff; }
.primary:hover:not(:disabled), .entry-actions .primary:hover:not(:disabled) { background: var(--accent-hover); }
.secondary, .text-button { background: #edf2f3; color: #3f535e; }
.secondary:hover:not(:disabled), .text-button:hover:not(:disabled) { background: #e3ebed; color: #243a47; }
.edit, .target-edit { background: var(--green2); color: var(--green); }
.edit:hover:not(:disabled), .target-edit:hover:not(:disabled) { background: #d8ece5; }
.danger, .delete { background: var(--danger-soft); color: var(--danger-ink); }
.danger:hover:not(:disabled), .delete:hover:not(:disabled) { background: #f9dfdb; }
.mini { font-size: 12px; border-radius: 8px; }
.icon-button { border-radius: 8px; color: #687881; }
.icon-button:hover { background: var(--surface-soft); color: var(--ink); }

/* Quiet chrome; the selected destination remains unambiguous. */
.workspace-compact .topbar { background: transparent; }
.workspace-compact .topbar h1 { color: #20313d; font-size: 22px; font-weight: 700; letter-spacing: -.04em; }
.workspace-compact .brand-mark { overflow: hidden; background: var(--green); border-radius: 12px; box-shadow: 0 2px 7px rgba(15, 118, 110, .12); }
.brand-mark img { display: block; width: 100%; height: 100%; object-fit: contain; }
.header-sync-status { border-radius: 10px; background: #e9f3ef; color: #3d7168; font-size: 12px; font-weight: 600; }
.header-sync-status i { background: #4b9383; }
.header-sync-status.is-editing { background: var(--warning-soft); color: var(--warning-ink); }
.header-sync-status.is-editing i { background: #b7792a; }
.workspace-compact .sidebar { border-color: #dfe7e9; border-radius: 14px; background: rgba(255, 255, 255, .97); box-shadow: 0 4px 18px rgba(31, 49, 61, .045); }
.workspace-compact .sidebar-nav a { gap: 8px; border-radius: 9px; color: #62717b; }
.workspace-compact .sidebar-nav a strong { font-size: 14px; font-weight: 600; }
.workspace-compact .sidebar-nav a:hover { background: #edf5f2; color: var(--green); }
.workspace-compact .sidebar-nav a.active { background: var(--green); color: #fff; box-shadow: 0 2px 6px rgba(15, 118, 110, .14); }
.workspace-compact .sidebar-nav a.active strong { font-weight: 700; }
.app-line-icon { display: block; width: 18px; height: 18px; flex: none; stroke-width: 1.8; }
.workspace-menu > summary .app-line-icon { width: 17px; height: 17px; }
.month-badge { border-radius: 9px; background: #edf4f2; color: #4a6e64; font-weight: 600; }
.workspace-compact .page-heading h2, .workspace-home-heading h2 { color: #20313d; font-weight: 700; letter-spacing: -.04em; }
.workspace-compact .page-heading p, .workspace-home-heading p { color: var(--muted); font-size: 13px; line-height: 1.7; }
.panel h2, .evaluation-title h2 { color: #263b47; font-size: 20px; font-weight: 700; }
.panel-title p, .evaluation-title p { font-size: 13px; }
.workspace-compact .panel, .overview-panel { border-color: var(--line); border-radius: 16px; background: #fff; box-shadow: var(--shadow); }
.workspace-compact .month-picker { border-color: #d8e3e5; border-radius: 10px; box-shadow: 0 1px 2px rgba(31, 49, 61, .025); }
.month-picker input { color: #304754; font-size: 13px; }

/* Every menu uses the same surface and the same keyboard focus treatment. */
.workspace-menu > summary { border-radius: 9px; background: #edf2f3; color: #425661; font-size: 13px; }
.workspace-menu > summary:hover { background: #e3ebed; }
.workspace-menu.active > summary { background: var(--green); color: #fff; }
.workspace-menu[open] > summary { box-shadow: var(--focus-ring); }
.workspace-menu-body { border-color: #d8e3e5; border-radius: 12px; padding: 7px; box-shadow: 0 12px 36px rgba(31, 49, 61, .14), 0 2px 5px rgba(31, 49, 61, .04); }
.workspace-file-hint { margin: 4px 8px 7px; color: #63717c; font-size: 12px; line-height: 1.65; font-weight: 400; }
.workspace-menu-body > button, .workspace-menu-body > .button, .workspace-menu-body > a { border-radius: 7px !important; font-size: 13px; font-weight: 600; color: #3e535f; }
.workspace-menu-body > button:hover, .workspace-menu-body > .button:hover, .workspace-menu-body > a:hover { background: #edf6f3; color: var(--green); }
.workspace-danger-actions { border-color: var(--line); }
.workspace-danger-actions .danger { background: var(--danger-soft); color: var(--danger-ink); font-size: 13px; }
.workspace-disclosure { border-color: var(--line); border-radius: 12px; box-shadow: 0 1px 3px rgba(31, 49, 61, .025); }
.workspace-disclosure > summary { color: #405763; font-size: 14px; }
.workspace-disclosure > summary:hover { background: #f8fafb; border-radius: 12px; }
.workspace-disclosure[open] > summary { border-color: var(--line); background: #f8fafb; border-radius: 12px 12px 0 0; }

/* Home: a single accent action, then neutral supporting work. */
.workspace-shortcuts button {
  grid-template-columns: 30px minmax(0, 1fr);
  column-gap: 14px;
  row-gap: 4px;
  align-content: center;
  border-color: var(--line);
  border-radius: 14px;
  box-shadow: 0 2px 7px rgba(31, 49, 61, .025);
  color: #304854;
}
.workspace-shortcuts .workspace-card-icon { width: 26px; height: 26px; grid-column: 1; grid-row: 1 / 3; align-self: center; color: var(--green); stroke-width: 1.7; }
.workspace-shortcuts strong { grid-column: 2; grid-row: 1; font-size: 17px; font-weight: 700; }
.workspace-shortcuts span { grid-column: 2; grid-row: 2; color: #647680; font-size: 13px; line-height: 1.6; opacity: 1; }
.workspace-shortcuts button:hover { border-color: #b9d7cf; background: #f8fcfa; box-shadow: 0 4px 12px rgba(31, 49, 61, .055); }
.workspace-shortcuts button:first-child { border-color: var(--green); background: var(--green); color: #fff; box-shadow: 0 3px 10px rgba(15, 118, 110, .12); }
.workspace-shortcuts button:first-child .workspace-card-icon { color: #d4eee5; }
.workspace-shortcuts button:first-child span { color: #d4eee5; }
.workspace-shortcuts button:first-child:hover { background: var(--accent-hover); border-color: var(--accent-hover); }
.today-count { background: var(--green2); color: var(--green); font-size: 12px; border-radius: 9px; font-weight: 700; }
.today-task { border-radius: 10px; background: #f6f9f9; }
.today-task:hover { background: #edf5f2; }
.today-task .task-check { background: #e7f0ed; color: var(--green); }
.today-task-copy strong { font-size: 14px; }
.today-task-copy small { font-size: 12px; }
.today-task-tag { background: var(--warning-soft); color: var(--warning-ink); font-size: 11px; }
.today-task-tag.journal, .today-task-tag.record { background: var(--green2); color: var(--green); }
.today-task-empty, .month-empty { color: #617580; font-size: 13px; line-height: 1.7; }
.mini-calendar-heading { color: #354e5a; font-size: 13px; }
.mini-calendar-weekdays span { color: #6d7d87; font-size: 11px; }
.mini-calendar-day > strong { font-size: 11px; font-weight: 600; }
.mini-calendar-day.has-event { background: #eaf4ef; }
.mini-calendar-day.today { background: var(--green); color: #fff; }
.month-schedule-summary > span { background: #f3f7f7; border-radius: 8px; }
.month-schedule-summary small { font-size: 12px; }
.month-schedule-summary strong { font-size: 13px; }
.month-event { border-radius: 6px; }
.month-event:hover { background: #edf5f2; }
.month-event > strong, .month-event > span { font-size: 12px; }
.overview-link { background: #edf4f2; color: var(--green); font-size: 13px; }
.overview-link:hover { background: #deeee7; }
.overview-stage { border-radius: 12px; background: #f6f9f9; }
.overview-stage:hover { border-color: #b9d7cf; background: #eff7f3; transform: none; }
.overview-stage-head em { background: #e4f1eb; color: var(--green); }
.performance-row > i, .overview-progress, .progress { background: #e8eeef; }
.performance-row:nth-child(2) b { background: #648594; }
.performance-row:nth-child(3) b { background: #62937d; }
.performance-row:nth-child(4) b { background: #b58c64; }
.performance-row:nth-child(5) b { background: #8c91a7; }
.performance-row small, .overview-stage-meta, .overview-next { font-size: 12px; }
.performance-row strong { font-size: 14px; }

/* Forms and record editing use white surfaces instead of tinted input blocks. */
body.workspace-compact .entry-panel label,
body.workspace-compact .monthly-editor-toolbar > label,
body.workspace-compact .monthly-record-fields label,
body.workspace-compact .print-controls label { color: #526772; font-size: 13px; font-weight: 600; }
body.workspace-compact .entry-panel input,
body.workspace-compact .entry-panel select,
body.workspace-compact .entry-panel textarea,
body.workspace-compact .monthly-editor-toolbar input,
body.workspace-compact .monthly-editor-toolbar select,
body.workspace-compact .monthly-record-fields input,
body.workspace-compact .monthly-record-fields textarea,
body.workspace-compact .print-controls input,
body.workspace-compact .print-controls select { border-color: #d5e0e3; border-radius: 9px; background: #fff; color: var(--ink); font-size: 14px; line-height: 1.7; }
body.workspace-compact .monthly-record-fields input:focus,
body.workspace-compact .monthly-record-fields textarea:focus { border-color: var(--green); outline: none; box-shadow: var(--focus-ring); }
.quick-program-info { background: #f0f6f3; border-radius: 8px; font-size: 12px; }
.quick-program-info strong, .autosave-label { font-size: 12px; color: #31796d; }
.workspace-compact .monthly-editor-panel.has-unsaved-changes { border-color: #97c7b8; box-shadow: 0 0 0 3px rgba(15, 118, 110, .07); }
.workspace-compact .monthly-editor-summary { border-radius: 10px; background: #f3f7f7; color: #516672; font-size: 13px; }
.monthly-editor-summary strong { color: var(--green); font-size: 14px; }
.saved-client-goals { background: #eaf4ef; color: #365c50; border-radius: 8px; }
.saved-client-goals strong { color: var(--green); }
.workspace-compact .has-unsaved-changes .monthly-editor-summary { background: var(--warning-soft); color: var(--warning-ink); }
.monthly-record-card { border-color: #dbe5e7; border-radius: 12px; }
.monthly-record-card > header { border-color: #e4ebed; background: #f7fafb; padding-top: 10px; padding-bottom: 10px; }
.monthly-record-card > header span { border-radius: 7px; background: #e7f1ee; color: var(--green); font-size: 11px; }
.monthly-record-card > header strong { color: #304956; font-size: 14px; }
.monthly-record-card > header em { background: var(--warning-soft); color: var(--warning-ink); font-size: 11px; }
.monthly-record-card > header em.saved { background: #e7f2ed; color: #397461; }
.monthly-record-card.changed { border-color: #8dbfaf; }
.monthly-record-card.selected { border-color: #cc8a80; background: #fffcfb; box-shadow: 0 0 0 2px rgba(171, 63, 55, .06); }
.monthly-record-select input { accent-color: var(--green); }
.monthly-record-details > summary { color: #657985; font-size: 13px; line-height: 1.65; }
.monthly-record-details > summary strong { font-size: 13px; font-weight: 600; }
.monthly-record-details > summary:hover { background: #f8fbfa; }
.monthly-editor-empty { border-color: #cddde0; background: #f8fafb; font-size: 14px; }
.workspace-savebar { border-color: #a4ccbf; border-radius: 12px; background: #edf7f3; box-shadow: 0 6px 24px rgba(31, 49, 61, .10); }
.workspace-savebar span { color: #4f7366; font-size: 13px; }

/* The timetable preserves all row boundaries, times and drag targets. */
.timetable-summary span { background: #edf4f2; border-radius: 9px; color: #5d726c; font-size: 12px; }
.timetable-summary strong { color: var(--green); font-size: 14px; }
.timetable-wrap { border-color: #d9e4e7; border-radius: 12px; }
.timetable-table th, .timetable-table td { border-color: #e0e8eb; }
.timetable-table thead th { background: #f0f5f5; color: #405763; font-size: 13px; font-weight: 700; }
.timetable-table tbody > tr > th { background: #f8fafb; }
.timetable-table tbody > tr > th strong { color: #3d5563; font-size: 13px; }
.timetable-table tbody > tr > th span { color: #617580; font-size: 11px; }
.timetable-session { border-left-width: 3px; border-left-color: var(--green); border-radius: 8px; background: #eaf4ef; }
.timetable-session.group { border-left-color: #628394; background: #eef3f7; }
.timetable-session.extra { border-left-color: #a48058; background: #f8f3eb; }
.timetable-session strong { color: #2c4b40; font-size: 13px; font-weight: 700; }
.timetable-session.group strong { color: #3e5969; }
.timetable-table .timetable-session span { color: #557063; font-size: 12px; line-height: 1.5; }
.timetable-table .timetable-session.group span { color: #5a707d; }
.timetable-session-actions { display: flex; flex-wrap: wrap; gap: 4px; }
.timetable-session-actions button { min-height: 32px; border-radius: 6px; padding: 5px 7px; background: rgba(255, 255, 255, .88); color: #3a6d5c; font-size: 12px; font-weight: 600; }
.timetable-session-actions button:hover { background: #fff; box-shadow: 0 1px 4px rgba(31, 49, 61, .07); }
.timetable-session-actions button.delete, .timetable-session-actions button[data-service-remove] { color: var(--danger-ink); }
.timetable-blank { color: #8c9ca4; font-size: 12px; }
.timetable-table .fixed-lunch td { background: #f2f6f7; color: #687e88; }
.timetable-cell.multiple .timetable-session { box-shadow: 0 0 0 1px rgba(15, 118, 110, .08); }
.timetable-table td.drop-ready { background: #dcf0e6 !important; outline-color: var(--green); }
.timetable-table td.drop-blocked { background: var(--warning-soft) !important; outline-color: #b47a36; }
.fixed-actual-time.different { color: var(--warning-ink); }

/* Tables and semantic states: accent for actions, amber for next steps. */
table { font-size: 13px; }
th { border-color: var(--line); color: #607480; font-size: 12px; font-weight: 600; }
td { border-color: #e6ecee; }
body.workspace-compact .target-panel th,
body.workspace-compact .target-panel td,
body.workspace-compact .roster-panel th,
body.workspace-compact .roster-panel td { font-size: 13px; }
body.workspace-compact .target-panel th { color: #5a707c; background: #fff; font-size: 12px; }
.target-panel td small { color: #607480; font-size: 12px; line-height: 1.65; }
.workspace-compact .annual-date-toolbar .hint { color: #647a84; font-size: 12px; line-height: 1.6; }
.workspace-pacing td strong { color: var(--green); }
.badge { background: var(--green2); color: var(--green); font-size: 12px; }
.badge.group { background: #edf3f7; color: #47697b; }
.roster-panel .roster-kind-row th { border-color: #d4e7dd; background: #eef7f2; color: var(--green); }
.roster-panel .roster-kind-row.group th { border-color: #d9e4eb; background: #eff4f8; color: #47697b; }
.roster-panel .roster-kind-row th > span { font-size: 13px; }
.roster-panel .roster-kind-row th > strong { color: #5a7669; font-size: 11px; }
.notice, .workspace-compact .notice { border: 1px solid #e7dfd0; border-radius: 9px; background: #fcf8ef; color: #77613f; font-size: 13px; line-height: 1.75; }
.hint { color: #637781; font-size: 12px; line-height: 1.65; }
.empty { color: #617580; font-size: 13px; }
.goal-plan-status { background: #eef2f4; color: #556b77; }
.goal-plan-status.achieved, .goal-plan-status.on-track { background: #e6f3eb; color: #326a4e; }
.goal-plan-status.shortfall, .goal-plan-status.closed { background: var(--warning-soft); color: var(--warning-ink); }
.goal-planning-panel, .service-auto-panel { border-color: var(--line); }
.goal-monthly-plans details { border-color: var(--line); border-radius: 10px; }
.service-auto-panel th { background: #f0f6f3; }
.record-status, .record-status.confirmed { border-radius: 8px; background: #e6f3eb; color: #326a4e; font-size: 11px; }
.record-status.draft, .confirm-draft { background: var(--warning-soft); color: var(--warning-ink); }
.draft-row { background: #fffdf8; }

/* Evaluation and follow-up keep text labels as well as their status colors. */
.evaluation-toolbar, .termination-toolbar { border-radius: 10px; background: #f0f5f5; }
.evaluation-filter-tabs button, .page-termination-panel .termination-filter-tabs button { color: #5d7380; font-size: 13px; }
.evaluation-filter-tabs button.active, .termination-filter-tabs button.active { background: #fff; color: var(--green); box-shadow: 0 1px 5px rgba(31, 49, 61, .09); }
.summary-chip { border-radius: 8px; color: #5c727e; font-size: 12px; }
.summary-chip.completed { background: #e6f3eb; color: #326a4e; }
.summary-chip.overdue { background: var(--danger-soft); color: var(--danger-ink); }
.evaluation-person-card, .page-termination-panel .termination-list-item { border-color: var(--line); border-radius: 12px; background: #fff; }
.evaluation-person-card > header div span, .admission-date { color: #647a85; font-size: 12px; }
.evaluation-stage-card, .evaluation-stage-card.upcoming, .termination-stage-summary { background: #f0f5f5; border-radius: 8px; }
.evaluation-stage-card.overdue, .termination-stage-summary.overdue { background: var(--danger-soft); }
.evaluation-stage-card.today, .termination-stage-summary.today { background: var(--warning-soft); }
.evaluation-stage-card.completed, .termination-stage-summary.completed { background: #e9f4ee; }
.stage-card-heading > strong, .stage-due-date strong { font-size: 12px; }
.evaluation-status { border-radius: 7px; font-size: 11px; }
.evaluation-status.overdue { background: #f7dfdb; color: var(--danger-ink); }
.evaluation-status.today { background: #f9e9c9; color: var(--warning-ink); }
.evaluation-status.upcoming { background: #e4eef2; color: #496a7b; }
.evaluation-status.completed { background: #dceee2; color: #326a4e; }
.stage-complete-check { border-radius: 6px; }
.stage-complete-check span { font-size: 12px; }
.stage-actual-date { font-size: 11px; }
.stage-actual-date input { font-size: 12px; }
.page-termination-panel .termination-person > span { color: #647a85; font-size: 12px; }
.page-termination-panel .termination-stage-summary span,
.page-termination-panel .termination-stage-summary strong,
.page-termination-panel .termination-stage-summary em { font-size: 12px; line-height: 1.5; }
.page-termination-panel .termination-toggle { border-radius: 7px; font-size: 12px; }
.print-client-picker { border-color: var(--line); background: #f4f8f7; }
.print-client-heading strong, .print-client-heading span,
.page-print-panel .print-client-option strong { font-size: 13px; }
.print-client-option { border-radius: 8px; }
.print-client-heading .mini { font-size: 12px; }

/* Dialogs share one visual family; the document iframe is intentionally untouched. */
dialog { border: 1px solid rgba(210, 224, 226, .9); border-radius: 16px; background: #fff; box-shadow: 0 20px 70px rgba(24, 46, 56, .2); }
dialog::backdrop { background: rgba(24, 44, 52, .40); backdrop-filter: blur(4px); }
.dialog-heading h2 { color: #263e4a; font-size: 20px; font-weight: 700; letter-spacing: -.03em; }
.dialog-heading p, .preview-heading p { color: #637984; font-size: 13px; line-height: 1.7; }
.dialog-form label { color: #4c6370; font-size: 13px; }
.dialog-form input, .dialog-form select, .dialog-form textarea { font-size: 14px; }
.dialog-actions .primary { background: var(--green); }
.dialog-actions .primary:hover:not(:disabled) { background: var(--accent-hover); }
.preview-actions label { font-size: 12px; }
.preview-actions select { font-size: 13px; }
.preview-dialog iframe { border-color: #dbe4e7; border-radius: 8px; }
.settings-check { border-radius: 9px; background: #edf5f1; }
#actualCheckpointInputs fieldset { border-color: #d9e6e1; border-radius: 10px; padding: 12px 14px; }
#actualCheckpointInputs legend { color: #406957; font-size: 14px; font-weight: 700; padding: 0 6px; }
#versionManager { font-size: 13px; }
.revision-list article { border-color: var(--line); }
.toast { border: 1px solid rgba(255, 255, 255, .1); border-radius: 11px; background: #263f49; box-shadow: 0 8px 25px rgba(26, 49, 58, .16); font-size: 13px; }
body:has(#workspaceSaveBar:not([hidden])) .toast { bottom: 110px; }

/* Month creation has the same buttons, fields and state palette as the workspace. */
#batchDiaryDialog { border-radius: 16px; }
.batch-wizard-header { border-bottom: 1px solid #e4ecec; background: #fbfdfc; }
.batch-wizard-header h2 { color: #263e4a; }
.batch-wizard-header p { color: #617780; font-size: 13px; line-height: 1.7; }
.batch-step-labels span { border: 1px solid transparent; border-radius: 8px; background: #edf2f3; color: #647984; font-size: 13px; }
.batch-step-labels .current { border-color: #cce4d9; background: #e7f3eb; color: var(--green); }
.batch-wizard-body { padding-top: 16px; }
.batch-wizard-body #batchDiarySummary { border: 1px solid #e0e9e8; border-radius: 10px; background: #f3f8f6; color: #3c5d50; font-size: 13px; }
.batch-wizard-footer { border-color: #dfe8e9; background: #fbfdfc; }
#batchDiaryPeople article { border-color: #dce6e7; border-radius: 10px; background: #fff; }
#batchDiaryPeople .batch-person-name { color: #314e5a; font-size: 14px; }
#batchDiaryPeople .batch-person-name span { color: #637984; font-size: 12px; font-weight: 500; }
#batchDiaryPeople details > summary { color: #58766d; font-size: 13px; }
#batchDiaryPeople textarea, #batchDiaryRows textarea, #diaryGeneratorRows textarea { border-color: #d5e0e3; border-radius: 9px; background: #fff; font-size: 14px; line-height: 1.75; }
.batch-review-group { border-color: #dce6e7; border-radius: 10px; }
.batch-review-group > summary { color: #35594a; font-size: 14px; }
.batch-review-group > summary span { color: #637984; font-size: 13px; }
.batch-review-row { border-color: #e4ecec; }
.batch-review-row p { color: #566f7b; font-size: 13px; line-height: 1.75; }
.batch-ready { color: #39735a; font-size: 14px; }

@media (max-width: 1100px) {
  .workspace-shortcuts button { column-gap: 10px; padding: 19px; }
  .workspace-shortcuts strong { font-size: 16px; }
}

@media (max-width: 820px) {
  .workspace-compact .topbar h1 { font-size: 18px; }
  .workspace-compact .sidebar-nav a { gap: 6px; }
  .workspace-compact .sidebar-nav a strong { font-size: 13px; }
  .workspace-shortcuts button { grid-template-columns: 24px minmax(0, 1fr); padding: 15px; column-gap: 9px; }
  .workspace-shortcuts .workspace-card-icon { width: 23px; height: 23px; }
  .workspace-shortcuts strong { font-size: 14px; }
  .workspace-shortcuts span { font-size: 12px; }
  .panel h2, .evaluation-title h2 { font-size: 19px; }
  .workspace-compact .monthly-record-fields { gap: 14px; }
}

@media (max-width: 520px) {
  .workspace-compact .topbar h1 { font-size: 16px; }
  .workspace-compact .sidebar { border-radius: 12px; }
  .workspace-compact .sidebar-nav a { gap: 4px; padding-left: 7px; padding-right: 7px; }
  .workspace-compact .sidebar-nav a .app-line-icon { width: 15px; height: 15px; }
  .workspace-compact .sidebar-nav a strong { font-size: 12px; }
  .workspace-compact .sidebar-nav .workspace-menu > summary { padding-left: 7px; padding-right: 7px; gap: 4px; }
  .workspace-compact .sidebar-nav .workspace-menu > summary .app-line-icon { width: 15px; height: 15px; }
  .workspace-home-heading p, .workspace-compact .page-heading p { font-size: 12px; }
  .workspace-shortcuts button { grid-template-columns: 26px minmax(0, 1fr); grid-template-rows: auto auto; min-height: 78px; padding: 14px 16px; }
  .workspace-shortcuts strong { font-size: 15px; }
  .workspace-shortcuts span { font-size: 12px; }
  .workspace-savebar { gap: 10px; padding: 12px; }
  .workspace-savebar span { font-size: 12px; }
  .workspace-compact .monthly-editor-actions > button { font-size: 13px; }
  .batch-wizard-header, .batch-wizard-footer { padding-left: 16px; padding-right: 16px; }
  .batch-wizard-body { padding-left: 16px; padding-right: 16px; }
  .batch-wizard-footer { flex-wrap: wrap; }
}

/* NAS login preferences use independent, aligned opt-in controls. */
.server-login-options { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin: 3px 0 5px; }
.server-login-options label { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; margin: 0; color: var(--ink); font-size: 13px; font-weight: 600; cursor: pointer; }
.server-login-options input { flex: none; width: 18px; height: 18px; margin: 0; padding: 0; accent-color: var(--green); }
.server-login-options label > span { border-radius: 5px; padding: 2px 5px; background: var(--green2); color: var(--green); font-size: 11px; }
.server-login-helper { margin: 3px 0 15px; color: var(--muted); font-size: 11px; font-weight: 400; line-height: 1.6; }
.server-locked { overflow: hidden; }
@media (max-height: 650px) {
  .server-gate { overflow-y: auto; align-items: start; padding: 16px; }
  .server-login-card { padding: 20px; }
  .server-login-card .server-mark { margin-bottom: 10px; }
  .server-login-card h2 { font-size: 22px; margin-bottom: 5px; }
  .server-login-card > p { margin-bottom: 16px; }
  .server-login-card form > label { margin-bottom: 10px; }
  .server-login-options label { min-height: 32px; }
  .server-login-helper { margin-bottom: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
