/* Shared visual language; geometry remains in workspace-layout.css. */
body.app-page {
  --ws-accent: #0066d6;
  --ws-accent-hover: #005bbb;
  --ws-accent-soft: #edf4ff;
  --ws-success: #18723a;
  --ws-success-soft: #eaf5ee;
  --ws-warning: #875100;
  --ws-warning-soft: #fff4df;
  --ws-danger: #b42332;
  --ws-danger-soft: #fceef0;
  --ws-secondary: #454b57;
  --ws-muted: #636773;
  --ws-neutral-soft: #f1f2f5;
  --ws-card-line: rgba(60, 60, 67, .14);
  --ws-card-shadow: 0 4px 18px rgba(28, 28, 30, .055);
  --muted: var(--ws-muted);
}

/* Preserve note colors and semantic top borders. No card sizing or order changes. */
body.app-page :is(.panel, .metric-card, .settings-hub-card) {
  border-color: var(--ws-card-line);
  box-shadow: var(--ws-card-shadow);
}
body.app-page :is(.panel:not([class*="keep-color-"]), .metric-card, .settings-hub-card) {
  background: rgba(255, 255, 255, .96);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.app-page :is(.weekly-item, .work-card, .knowledge-note-card) { border-color: var(--ws-card-line); }
body.app-page .knowledge-note-card { box-shadow: var(--ws-card-shadow); }
body.app-page .knowledge-note-card.is-pinned { box-shadow: inset 0 3px #d69a35, var(--ws-card-shadow); }
body.app-page :is(.metric-card.warning, .recovery-code-panel) { border-top-color: #d69a35; }
body.app-page :is(.metric-card.danger, .security-disable-panel) { border-top-color: var(--ws-danger); }
body.app-page :is(.panel-heading, .month-toolbar) {
  border-bottom-color: var(--ws-card-line);
  background: rgba(248, 249, 251, .72);
}
body.app-page :is(.knowledge-editor-panel, .keep-note-detail)[class*="keep-color-"] .panel-heading { background: transparent; }

/* One selection treatment across top-level and in-panel tabs. */
body.app-page :is(.workspace-section-tabs, .design-type-tabs, .income-tax-tabs,
  .knowledge-view-tabs, .daily-task-history-tabs) {
  display: flex;
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--ws-card-line);
  border-radius: 14px;
  background: var(--ws-neutral-soft);
}
body.app-page :is(.workspace-section-tabs, .design-type-tabs, .income-tax-tabs,
  .knowledge-view-tabs, .daily-task-history-tabs) a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 8px 16px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--ws-secondary);
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
}
body.app-page :is(.workspace-section-tabs, .design-type-tabs, .income-tax-tabs,
  .knowledge-view-tabs, .daily-task-history-tabs) a:is([aria-current="page"], .active, .is-active) {
  color: var(--ws-accent);
  background: #fff;
  box-shadow: 0 1px 4px rgba(28, 28, 30, .10);
}
body.app-page .income-tax-tabs { width: fit-content; max-width: 100%; }
body.app-page .knowledge-view-tabs { margin: 0 16px 16px; }
body.app-page .knowledge-view-tabs a { gap: 6px; }

/* Primary, secondary, destructive actions. Metronome playback keeps its states. */
body.app-page .button-primary:not(.metro-play) {
  border-color: transparent;
  background: var(--ws-accent);
  color: #fff;
  box-shadow: 0 3px 9px rgba(0, 102, 214, .14);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
body.app-page .button-secondary:not(.metro-tap):not(.security-danger-button),
body.app-page :is(.sales-filter-form, .card-expense-filter-form, .schedule-filter-form,
  .knowledge-filter-form, .unified-schedule-filters, .lotto-filter-form, .weight-filter-form,
  .sales-year-filter, .income-tax-year-form, .document-search-bar) .button-primary {
  border-color: var(--ws-card-line);
  background: var(--ws-neutral-soft);
  color: var(--ws-secondary);
  box-shadow: none;
}
body.app-page .table-action:not(.approve):not(.reject) { color: var(--ws-secondary); background: var(--ws-neutral-soft); }
body.app-page .table-action.approve { color: var(--ws-success); background: var(--ws-success-soft); }
body.app-page :is(.button-danger, .security-danger-button, .table-action.reject, .item-remove) {
  border-color: rgba(180, 35, 50, .18);
  color: var(--ws-danger);
  background: var(--ws-danger-soft);
  box-shadow: none;
}
body.app-page :is(.button, .table-action):disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }
body.app-page :is(.button, .table-action, .workspace-section-tabs a, .design-type-tabs a,
  .income-tax-tabs a, .knowledge-view-tabs a, .daily-task-history-tabs a):focus-visible {
  outline: 2px solid var(--ws-accent);
  outline-offset: 3px;
}
@media (hover: hover) {
  body.app-page .button-primary:not(.metro-play):hover:not(:disabled) { filter: brightness(.94); }
  body.app-page .button-secondary:not(.metro-tap):not(.security-danger-button):hover:not(:disabled) { background: #e8eaf0; }
  body.app-page .knowledge-note-card:hover { transform: none; border-color: rgba(60,60,67,.26); }
}

/* Hierarchy through color/weight, without changing established font sizes. */
body.app-page :is(.panel-heading h2, .sales-year-heading h2, .income-tax-panel-heading h2) { color: #1c1c1e; font-weight: 700; }
body.app-page :is(.field > span, .field > label, .sales-filter-form label > span,
  .card-expense-filter-form label > span, .knowledge-filter-form label > span) { color: var(--ws-secondary); font-weight: 600; }
body.app-page :is(.field input, .field textarea, .sales-filter-form input,
  .card-expense-filter-form input, .knowledge-filter-form input)::placeholder { color: #6b707c; opacity: 1; }

/* Status words remain visible; color is supplementary, never the sole signal. */
body.app-page :is(.status-badge, .schedule-status, .equipment-status, .rental-status, .profile-status) {
  border-radius: 999px;
  font-weight: 650;
  color: var(--ws-secondary);
  background: var(--ws-neutral-soft);
}
body.app-page :is(.status-badge.status-paid, .status-badge.status-enabled, .schedule-status.completed,
  .schedule-status.passed, .schedule-status.as-available, .equipment-status.status-available,
  .rental-status.status-returned, .profile-status.complete) { color: var(--ws-success); background: var(--ws-success-soft); }
body.app-page :is(.status-badge.status-issued, .schedule-status.planned, .schedule-status.preparing,
  .equipment-status.status-maintenance, .profile-status.incomplete) { color: var(--ws-warning); background: var(--ws-warning-soft); }
body.app-page :is(.schedule-status.upcoming, .schedule-status.registered, .equipment-status.status-rented,
  .rental-status.status-active) { color: var(--ws-accent); background: var(--ws-accent-soft); }
body.app-page :is(.schedule-status.failed, .schedule-status.as-unavailable) { color: var(--ws-danger); background: var(--ws-danger-soft); }
body.app-page .schedule-status.cancelled, body.app-page .schedule-status.removed { color: var(--ws-secondary); background: var(--ws-neutral-soft); }
body.app-page .knowledge-upload-field .knowledge-attachment-count.is-error { color: var(--ws-danger); font-weight: 600; }

/* Existing empty-state wording is preserved. Keep fixed home cards untouched. */
body.app-page .content-shell:not(:has(> .dashboard-header)) :is(.empty-copy, .empty-cell, .empty-panel) {
  padding: 28px 16px !important;
  color: var(--ws-muted) !important;
  background: #f8f9fb;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  text-align: center;
  overflow-wrap: anywhere;
}
body.app-page .content-shell:not(:has(> .dashboard-header)) :is(.empty-copy, .empty-cell, .empty-panel)::before {
  content: "";
  display: block;
  width: 28px;
  height: 28px;
  margin: 0 auto 10px;
  background: center / 28px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28' fill='none' stroke='%23636773' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='3' width='18' height='22' rx='4'/%3E%3Cpath d='M10 10h8M10 15h8M10 20h4'/%3E%3C/svg%3E");
}
@media (max-width: 760px) {
  body.app-page .income-tax-tabs { width: 100%; }
  body.app-page .income-tax-tabs a { flex: 1 1 0; padding-inline: 8px; }
  body.app-page .knowledge-view-tabs { margin-inline: 12px; }
  body.app-page .knowledge-view-tabs a { min-width: 0; padding-inline: 7px; }
}
@media (prefers-reduced-transparency: reduce) {
  body.app-page :is(.panel:not([class*="keep-color-"]), .metric-card, .settings-hub-card) { background: #fff; }
}
@media (prefers-contrast: more) {
  body.app-page { --ws-card-line: #737780; --ws-muted: #454b57; }
}
