/* Soft engineering surfaces. Geometry and interaction fixes remain in the
   preceding polish stylesheets; this layer changes material and depth only. */

/* Requests: raised cards inside a quiet recessed work area. */
body.anteks-app .requests-workspace :is(.metric,.toolbar) {
  border-color: var(--nm-divider, var(--nm-border));
  background: var(--nm-surface);
  box-shadow: var(--nm-raised-sm);
}
body.anteks-app .requests-workspace .column {
  border-color: var(--nm-divider, var(--nm-border));
  background: var(--nm-surface);
  box-shadow: var(--nm-inset);
}
body.anteks-app .requests-workspace .column-count { background: transparent; }
body.anteks-app .requests-workspace .task-card {
  border-color: var(--nm-divider, var(--nm-border));
  background: var(--nm-surface);
  box-shadow: var(--nm-raised-sm);
}
body.anteks-app .requests-workspace .task-card:hover {
  border-color: var(--nm-accent);
  background: var(--nm-surface);
  box-shadow: var(--nm-raised-sm);
}
body.anteks-app .requests-workspace .task-card.is-saving {
  border-color: var(--nm-accent);
  box-shadow: var(--nm-inset);
}
body.anteks-app .requests-workspace .column.is-drop-target { border-color: var(--nm-accent); background: color-mix(in srgb,var(--nm-accent) 8%,var(--nm-surface)); box-shadow: var(--nm-inset),inset 0 0 0 1px var(--nm-accent); }
body.anteks-app .requests-workspace .task-card.is-dragging { border-color: var(--nm-accent); border-style: dashed; box-shadow: none; }
body.anteks-app .requests-workspace :is(.filter-button,.done-stage-filter,.production-role-filter,.carryover-filter-button,.warehouse-task-filter-button).is-active {
  color: var(--nm-accent);
  background: var(--nm-surface);
  border-color: var(--nm-divider, var(--nm-border));
  box-shadow: var(--nm-inset);
}
body.anteks-app .requests-workspace .importance-badge:not(.importance-high):not(.importance-critical) {
  color: var(--nm-muted);
  background: transparent;
}
body.anteks-app .requests-workspace .empty { background: transparent; border-color: var(--nm-divider, var(--nm-border)); }
body.anteks-app .requests-workspace .task-progress::before { background: color-mix(in srgb,var(--nm-muted) 22%,var(--nm-surface)); }

/* Dialogs retain distinct sections, with depth reserved for actionable fields. */
body.anteks-app #taskModal .modal-panel,
body.anteks-app :is(.settings-dialog-panel,.admin-panel,.production-schedule-panel,.manager-images-panel) {
  border-color: var(--nm-divider, var(--nm-border));
  background: var(--nm-surface);
  box-shadow: var(--nm-raised);
}
body.anteks-app #taskModal .modal-header { background: transparent; border-color: var(--nm-divider, var(--nm-border)); }
body.anteks-app #taskModal :is(.manager-top-dates,.quantity-field,.importance-field,.manager-comment-field,.assignment-field,.technologist-comment-field,.progress-field,.manager-images-field,.role-tasks-field,.task-month-field,.tz-file-field) {
  border-color: var(--nm-divider, var(--nm-border));
  background: transparent;
  box-shadow: none;
}
body.anteks-app #taskModal :is(.quantity-row,.role-task-item,.production-role-column) {
  border-color: var(--nm-divider, var(--nm-border));
  background: var(--nm-surface);
  box-shadow: var(--nm-raised-sm);
}
body.anteks-app :is(#taskModal .task-tabs,.admin-tabs) {
  border-color: transparent;
  background: var(--nm-surface);
  box-shadow: var(--nm-raised-sm);
}
body.anteks-app :is(#taskModal .task-tab-button,.admin-tab).is-active {
  border-color: var(--nm-divider, var(--nm-border));
  color: var(--nm-accent);
  background: var(--nm-surface);
  box-shadow: var(--nm-inset);
}
body.anteks-app #taskModal :is(.kind-badge,.task-path,.manager-images-summary,.quantity-image-count,.quantity-urgency-control) {
  color: var(--nm-muted);
  background: var(--nm-surface);
  border-color: var(--nm-divider, var(--nm-border));
}
body.anteks-app #taskModal :is(.task-status-editor,.assignment-menu),
body.anteks-app :is(.settings-menu,.chat-attach-menu,.chat-expression-popover,.chat-message-context-menu) {
  border-color: var(--nm-divider, var(--nm-border));
  background: var(--nm-surface);
  box-shadow: var(--nm-raised);
}
body.anteks-app .admin-panel :is(.roles-table-wrap,.accounts-table-wrap) { border-color: var(--nm-divider, var(--nm-border)); box-shadow: var(--nm-inset); }
body.anteks-app .admin-panel th { background: var(--nm-surface); color: var(--nm-muted); }
body.anteks-app .admin-panel tbody tr:hover { background: color-mix(in srgb,var(--nm-accent) 5%,var(--nm-surface)); }

/* Schedule: one soft frame; the dense grid remains legible and flat. */
body.anteks-app :is(.production-schedule-hero,.production-schedule-preview > article,.production-schedule-preview-legend) {
  border-color: var(--nm-divider, var(--nm-border));
  background: var(--nm-surface);
  box-shadow: var(--nm-raised);
}
body.anteks-app .production-schedule-month-card { border-color: var(--nm-divider, var(--nm-border)); background: var(--nm-surface); box-shadow: var(--nm-inset); }
body.anteks-app .production-schedule-open { box-shadow: var(--nm-raised-sm); }
body.anteks-app :is(.production-schedule-modal-header,.production-schedule-tools,.production-schedule-day-header,.production-schedule-person,.production-schedule-day-cell) { background: var(--nm-surface); border-color: var(--nm-divider, var(--nm-border)); }
body.anteks-app :is(.production-schedule-day-header,.production-schedule-day-cell).is-weekend { background: color-mix(in srgb,var(--nm-muted) 5%,var(--nm-surface)); }
body.anteks-app .production-schedule-day-cell.is-today { background: color-mix(in srgb,var(--nm-accent) 8%,var(--nm-surface)); box-shadow: inset 0 0 0 1px var(--nm-accent); }
body.anteks-app .production-schedule-avatar { border: 1px solid var(--nm-divider, var(--nm-border)); background: var(--nm-surface); color: var(--nm-accent); box-shadow: var(--nm-raised-sm); }
body.anteks-app .production-schedule-time-input { background: var(--nm-surface); box-shadow: var(--nm-inset); }
body.anteks-app .production-schedule-time-field.is-start > span { color: var(--nm-accent); }
body.anteks-app .production-schedule-time-field.is-end .production-schedule-time-input.has-value { background: var(--nm-surface); color: var(--nm-text); }

/* Chat: contacts press into the list, messages sit just above its surface. */
body.anteks-app .chat-shell { background: var(--nm-surface); border-color: var(--nm-divider, var(--nm-border)); box-shadow: var(--nm-raised); }
body.anteks-app :is(.chat-sidebar,.chat-sidebar-header,.chat-dialog-header,.chat-composer) { background: var(--nm-surface); border-color: var(--nm-divider, var(--nm-border)); }
body.anteks-app .chat-dialog { background: var(--nm-surface); }
body.anteks-app .chat-message-list { box-shadow: var(--nm-inset); }
body.anteks-app .chat-contact { background: transparent; border-color: var(--nm-divider, var(--nm-border)); box-shadow: none; }
body.anteks-app .chat-contact:hover { background: color-mix(in srgb,var(--nm-accent) 4%,var(--nm-surface)); box-shadow: none; }
body.anteks-app .chat-contact.is-active { background: var(--nm-surface); box-shadow: var(--nm-inset),inset 3px 0 0 var(--nm-accent); }
body.anteks-app .chat-avatar { color: var(--nm-accent); border-color: var(--nm-divider, var(--nm-border)); background: var(--nm-surface); box-shadow: var(--nm-raised-sm); }
body.anteks-app .chat-message { border-color: var(--nm-divider, var(--nm-border)); background: var(--nm-surface); box-shadow: var(--nm-raised-sm); }
body.anteks-app .chat-message-row.is-own .chat-message { border-color: color-mix(in srgb,var(--nm-accent) 24%,var(--nm-divider, var(--nm-border))); background: color-mix(in srgb,var(--nm-accent) 9%,var(--nm-surface)); box-shadow: var(--nm-raised-sm); }
body.anteks-app .chat-message.is-sticker-message,
body.anteks-app .chat-message-row.is-own .chat-message.is-sticker-message { border-color: transparent; background: transparent; box-shadow: none; }
body.anteks-app :is(.chat-task-panel,.chat-selected-task,.chat-reply-preview) { background: var(--nm-surface); border-color: var(--nm-divider, var(--nm-border)); box-shadow: var(--nm-inset); }

/* Recessed inputs retain a visible boundary independent of the soft shadows. */
body.anteks-app .requests-workspace :is(.metric,.toolbar,.task-card),
body.anteks-app :is(.chat-shell,.chat-message,.settings-menu,.settings-launch-button,.production-schedule-hero,.production-schedule-preview > article,.production-schedule-preview-legend),
body.anteks-app #taskModal :is(.modal-panel,.quantity-row,.role-task-item),
body.anteks-tabel :is(.calendar-panel,.entry-panel,.tabel-auth-card,.salary-settings-dialog,.record-card) {
  border-color: var(--nm-edge);
}
body.anteks-app :is(.requests-workspace,.chat-shell,#taskModal,.settings-menu,.settings-dialog-panel,.admin-panel,.production-schedule-panel) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),select,textarea) {
  color: var(--nm-text);
  border-color: var(--nm-field-border);
  background: var(--nm-surface);
  box-shadow: var(--nm-inset);
}
body.anteks-app :is(.requests-workspace,.chat-shell,#taskModal,.settings-menu,.settings-dialog-panel,.admin-panel,.production-schedule-panel) :is(input,select,textarea):focus-visible {
  border-color: var(--nm-accent);
}

/* The separate time-accounting page uses html[data-theme] for its theme. */
body.anteks-tabel,:root[data-theme] body.anteks-tabel {
  --bg: var(--nm-bg); --surface: var(--nm-surface); --surface-soft: var(--nm-surface);
  --surface-panel: var(--nm-surface); --surface-tile: var(--nm-surface);
  --text: var(--nm-text); --muted: var(--nm-muted); --line: var(--nm-divider, var(--nm-border));
  --accent: var(--nm-accent); --accent-dark: var(--nm-accent);
  color: var(--nm-text); background: var(--nm-bg);
}
body.anteks-tabel :is(.calendar-panel,.entry-panel,.tabel-auth-card,.settings-popover,.records-modal-panel,.salary-settings-dialog) {
  border-color: var(--nm-divider, var(--nm-border)); background: var(--nm-surface); box-shadow: var(--nm-raised);
}
body.anteks-tabel .tabel-auth-gate { background: var(--nm-bg); }
body.anteks-tabel .salary-panel { background: var(--nm-surface); box-shadow: var(--nm-inset); }
body.anteks-tabel :is(.salary-result,.salary-stats div) { background: transparent; box-shadow: none; }
body.anteks-tabel :is(.salary-settings-button,.records-open-button,.record-card,.tabel-profile-back,.tabel-profile-logout,.ghost-button,.icon-button) {
  border-color: var(--nm-divider, var(--nm-border)); background: var(--nm-surface); box-shadow: var(--nm-raised-sm);
}
body.anteks-tabel :is(.salary-settings-button,.records-open-button,.tabel-profile-back,.tabel-profile-logout,.ghost-button,.icon-button):hover { background: var(--nm-surface); box-shadow: var(--nm-inset); }
body.anteks-tabel .calendar-day { border-color: var(--nm-divider, var(--nm-border)); background: transparent; box-shadow: none; }
body.anteks-tabel .calendar-day.weekend:not(.selected),body.anteks-tabel .calendar-day.holiday:not(.selected) { background: color-mix(in srgb,var(--nm-muted) 5%,var(--nm-surface)); }
body.anteks-tabel .calendar-day.has-hours:not(.weekend):not(.holiday) { background: color-mix(in srgb,var(--nm-accent) 7%,var(--nm-surface)); }
body.anteks-tabel .calendar-day.selected { border-color: var(--nm-accent); background: var(--nm-surface); box-shadow: var(--nm-inset),inset 0 0 0 1px var(--nm-accent); }
body.anteks-tabel .calendar-day:hover { border-color: var(--nm-accent); box-shadow: none; }
body.anteks-tabel :is(.salary-calculation,.empty-state) { border-color: var(--nm-divider, var(--nm-border)); background: var(--nm-surface); box-shadow: var(--nm-inset); }
body.anteks-tabel :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) {
  color: var(--nm-text); border-color: var(--nm-field-border);
  background: var(--nm-surface); box-shadow: var(--nm-inset);
}
body.anteks-tabel :is(input,select,textarea):focus-visible { border-color: var(--nm-accent); }
body.anteks-tabel .primary-button { color: #fff; background: #005b98; box-shadow: var(--nm-raised-sm); }
body.anteks-tabel .primary-button:hover { background: #006eb6; }

/* Floating dialogs sit over a dimmed backdrop: an outer white glow would read
   as a halo. Keep their soft material on the inside, with a neutral outer shadow. */
body.anteks-app #taskModal:not(.is-docked) .modal-panel,
body.anteks-app :is(.settings-dialog-panel,.admin-panel,.production-schedule-panel,.manager-images-panel),
body.anteks-tabel :is(.salary-settings-dialog,.records-modal-panel) {
  box-shadow: 0 18px 50px rgb(18 31 44 / 24%),inset 1px 1px 1px var(--nm-edge);
}

@media (forced-colors: active) {
  body.anteks-app :is(.task-card,.column,.metric,.chat-shell,.chat-message,.settings-menu,.production-schedule-panel),
  body.anteks-tabel :is(.calendar-day,.calendar-panel,.entry-panel,.record-card) { border: 1px solid CanvasText; box-shadow: none; }
}

/* Settings: one soft surface, quiet action rows, and an optional folder editor. */
body.anteks-app #settingsMenu {
  --settings-rule: color-mix(in srgb, var(--nm-divider) 58%, transparent);
  display: block;
  width: min(352px, calc(100vw - 24px));
  max-height: calc(100dvh - 84px);
  padding: 0;
  border: 1px solid var(--nm-edge);
  border-radius: 14px;
  background: var(--nm-surface);
  box-shadow: 0 12px 32px rgb(12 24 36 / 22%), inset 1px 1px 1px var(--nm-edge);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--nm-border) transparent;
  scroll-padding-block: 52px 8px;
}
#settingsMenu .settings-menu-header {
  position: sticky;
  top: 0;
  z-index: 1;
  min-height: 48px;
  padding: 8px 12px 8px 16px;
  border: 0;
  background: var(--nm-surface);
}
#settingsMenu .settings-menu-header strong { font-size: 15px; font-weight: 600; letter-spacing: -.02em; }
#settingsMenu .settings-menu-close { width: 32px; min-width: 32px; height: 32px; min-height: 32px; border-radius: 8px; }
#settingsMenu .settings-section { padding: 12px 16px; gap: 6px; border-color: var(--settings-rule); background: transparent; }
#settingsMenu .settings-section-heading strong,
#settingsMenu .settings-label { color: var(--nm-muted); font-size: 12px; font-weight: 500; line-height: 1.4; }
#settingsMenu .settings-preferences { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 12px; }
#settingsMenu :is(.settings-view-form,.settings-theme-form) { gap: 6px; }
#settingsMenu :is(select,#rootFolderPath) {
  height: 36px;
  min-height: 36px;
  padding-block: 0;
  border-radius: 8px;
  border-color: color-mix(in srgb, var(--nm-field-border) 65%, var(--nm-surface));
  box-shadow: inset 1px 1px 3px color-mix(in srgb, var(--nm-text) 12%, transparent), inset -1px -1px 2px var(--nm-edge);
  font-size: 13px;
}
#settingsMenu select { padding-inline: 10px 26px; }
#settingsMenu .settings-shortcuts { gap: 0; }
#settingsMenu .settings-launch-button,
#settingsMenu #settingsWorkspaceSummary,
#settingsMenu #logoutButton {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) 14px;
  gap: 10px;
  align-items: center;
  width: 100%;
  min-width: 0;
  min-height: 36px;
  padding: 6px 8px;
  border: 0;
  border-radius: 7px;
  color: var(--nm-text);
  background: transparent;
  box-shadow: none;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  text-align: left;
  cursor: pointer;
}
#settingsMenu .settings-launch-button { width: calc(100% + 16px); max-width: none; margin-inline: -8px; }
#settingsMenu .settings-launch-copy strong { color: inherit; font-size: 13px; font-weight: 500; line-height: 1.4; }
#settingsMenu .settings-launch-button > svg:not(.settings-launch-chevron),
#settingsMenu .settings-provider-mark,
#settingsMenu #settingsWorkspaceSummary > svg,
#settingsMenu #logoutButton > svg {
  width: 18px;
  height: 18px;
  padding: 0;
  border-radius: 0;
  color: var(--nm-muted);
  background: transparent;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
#settingsMenu .settings-launch-chevron { display: block; width: 14px; height: 14px; color: var(--nm-muted); opacity: .7; }
#settingsMenu .settings-provider-mark { font-size: 10px; }
#settingsMenu .settings-workspace-details { margin: 0; padding: 4px 8px; border-block: 1px solid var(--settings-rule); }
#settingsMenu #settingsWorkspaceSummary { list-style: none; min-height: 38px; }
#settingsMenu #settingsWorkspaceSummary::-webkit-details-marker { display: none; }
#settingsMenu #settingsWorkspaceSummary .settings-folder-chevron { width: 14px; height: 14px; opacity: .7; }
#settingsMenu .settings-workspace-details[open] .settings-folder-chevron { transform: rotate(180deg); }
#settingsMenu .settings-root-form { padding: 6px 8px 8px; gap: 8px; }
#settingsMenu .settings-actions { display: flex; flex-direction: row; gap: 6px; }
#settingsMenu .settings-path-actions { display: flex; gap: 2px; }
#settingsMenu .settings-actions :is(.settings-save-button,.settings-quiet-action) {
  width: auto;
  min-width: 0;
  height: 32px;
  min-height: 32px;
  padding: 0 8px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 500;
}
#settingsMenu .settings-menu-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 8px; gap: 0 4px; border: 0; background: transparent; }
#settingsMenu .settings-menu-actions :is(a,button) {
  justify-content: flex-start;
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 32px;
  padding: 6px 8px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
}
#settingsMenu .settings-menu-footer { padding: 4px 8px 8px; border-top: 1px solid var(--settings-rule); }
#settingsMenu #logoutButton { grid-template-columns: 18px minmax(0, 1fr); color: #b42332; }
body[data-theme="dark"] #settingsMenu #logoutButton { color: #ffafb8; }
#settingsMenu #logoutButton > svg { color: inherit; }
#settingsMenu :is(.settings-launch-button,#settingsWorkspaceSummary,#logoutButton,.settings-menu-actions a,.settings-menu-actions button):hover {
  background: color-mix(in srgb, var(--nm-accent) 7%, var(--nm-surface));
  box-shadow: none;
  transform: none;
}
@media (max-width: 560px), (pointer: coarse) {
  #settingsMenu :is(.settings-menu-close,.settings-launch-button,#settingsWorkspaceSummary,#logoutButton,select,#rootFolderPath),
  #settingsMenu .settings-actions :is(.settings-save-button,.settings-quiet-action),
  #settingsMenu .settings-menu-actions :is(a,button) { min-height: 44px; }
  #settingsMenu .settings-menu-close { min-width: 44px; width: 44px; }
  #settingsMenu .settings-menu-header { padding-block: 4px; }
  #settingsMenu .settings-section { padding-block: 10px; }
}
@media (max-width: 560px) {
  body.anteks-app #settingsMenu {
    position: fixed;
    top: 84px;
    right: max(8px, env(safe-area-inset-right));
    left: max(8px, env(safe-area-inset-left));
    bottom: auto;
    width: auto;
    max-height: calc(100dvh - 96px - env(safe-area-inset-bottom, 0px));
  }
}
@media (forced-colors: active) {
  body.anteks-app #settingsMenu { border-color: CanvasText; }
  #settingsMenu :is(select,#rootFolderPath) { border-color: ButtonText; }
}
