/**
 * 德式商务风：工整、低饱和、细边框、弱阴影（全站 via #main-panels-mount / #app-sidebar）。
 */

:root {
  --biz-paper: #f6f5f2;
  --biz-paper-deep: #ebe9e4;
  --biz-surface: #ffffff;
  --biz-border: #c8cdd4;
  --biz-border-soft: #e2e5ea;
  --biz-ink: #1a2332;
  --biz-ink-muted: #5c6573;
  --biz-accent: #1e3348;
  --biz-accent-hover: #2a455c;
  --biz-radius: 0.375rem;
  --biz-radius-sm: 0.25rem;
  --biz-shadow: 0 1px 2px rgba(26, 35, 50, 0.06), 0 0 0 1px rgba(26, 35, 50, 0.04);
}

/* —— 全局底色 —— */
body.biz-app,
body.biz-app.app-surface {
  background: var(--biz-paper);
  color: var(--biz-ink);
}

#app-scroll {
  background: linear-gradient(180deg, var(--biz-paper) 0%, #f0eeea 100%);
}

/* —— 侧栏 —— */
#app-sidebar {
  background: var(--biz-surface);
  border-color: var(--biz-border-soft) !important;
  box-shadow: 1px 0 0 rgba(26, 35, 50, 0.06);
}

#app-sidebar > .border-b:first-of-type h1 {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  color: var(--biz-accent);
}

#app-sidebar .border-b p[data-i18n="sidebar_lang_label"] {
  color: var(--biz-ink-muted);
  letter-spacing: 0.12em;
}

.biz-nav-btn {
  border-radius: var(--biz-radius-sm);
  border-width: 1px;
  border-style: solid;
  font-weight: 500;
  line-height: 1.35;
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease;
}

.biz-nav-btn:focus-visible {
  outline: 2px solid var(--biz-accent);
  outline-offset: 2px;
}

.biz-nav-idle {
  border-color: var(--biz-border-soft);
  background: var(--biz-surface);
  color: var(--biz-ink);
  box-shadow: none;
}

.biz-nav-idle:hover {
  border-color: var(--biz-border);
  background: var(--biz-paper);
  color: var(--biz-accent);
}

.biz-nav-active {
  border-color: var(--biz-accent);
  background: var(--biz-accent);
  color: #fff;
  box-shadow: var(--biz-shadow);
}

/* —— 主内容卡片（各 panel / section） —— */
#main-panels-mount [id^="panel-"],
#main-panels-mount [id^="section-"] {
  border-radius: var(--biz-radius) !important;
  border: 1px solid var(--biz-border) !important;
  background: var(--biz-surface) !important;
  box-shadow: var(--biz-shadow) !important;
}

#main-panels-mount [id^="panel-"] > .border-b,
#main-panels-mount [id^="section-"] > .border-b {
  background: linear-gradient(180deg, #fafaf9 0%, #f3f2ef 100%) !important;
  border-bottom: 1px solid var(--biz-border) !important;
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

#main-panels-mount [id^="panel-"] > .border-b h2,
#main-panels-mount [id^="section-"] > .border-b h2 {
  font-size: 0.8125rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase;
  color: var(--biz-accent) !important;
}

#main-panels-mount [id^="panel-"] > .border-b p,
#main-panels-mount [id^="section-"] > .border-b p {
  color: var(--biz-ink-muted) !important;
  font-size: 0.75rem !important;
  line-height: 1.45 !important;
}

/* —— 表单控件 —— */
#main-panels-mount input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not(
    [type="hidden"]
  ),
#main-panels-mount select,
#main-panels-mount textarea {
  border-radius: var(--biz-radius-sm) !important;
  border-color: var(--biz-border) !important;
  background: var(--biz-surface) !important;
  color: var(--biz-ink) !important;
  box-shadow: inset 0 1px 2px rgba(26, 35, 50, 0.04) !important;
}

#main-panels-mount input:not([type="checkbox"]):not([type="radio"]):focus,
#main-panels-mount select:focus,
#main-panels-mount textarea:focus {
  border-color: var(--biz-accent) !important;
  outline: none !important;
  box-shadow:
    inset 0 1px 2px rgba(26, 35, 50, 0.04),
    0 0 0 2px rgba(30, 51, 72, 0.15) !important;
}

#main-panels-mount label {
  color: var(--biz-ink);
  font-size: 0.8125rem;
  font-weight: 500;
}

/* —— 按钮层级 —— */
#main-panels-mount button[type="submit"],
#main-panels-mount #synthetic-stunden-generate,
#main-panels-mount #contract-generate-btn,
#main-panels-mount .biz-btn-primary {
  border-radius: var(--biz-radius-sm) !important;
  border: 1px solid var(--biz-accent) !important;
  background: var(--biz-accent) !important;
  color: #fff !important;
  font-weight: 600 !important;
  box-shadow: var(--biz-shadow) !important;
}

#main-panels-mount button[type="submit"]:hover,
#main-panels-mount #synthetic-stunden-generate:hover,
#main-panels-mount #contract-generate-btn:hover {
  background: var(--biz-accent-hover) !important;
}

#main-panels-mount #synthetic-stunden-import-list {
  border-radius: var(--biz-radius-sm) !important;
  border: 1px solid #8b2942 !important;
  background: #9f1239 !important;
  font-weight: 600 !important;
}

#main-panels-mount #synthetic-stunden-import-list:hover:not(:disabled) {
  background: #881337 !important;
}

#main-panels-mount button[type="button"]:not(#synthetic-stunden-generate):not(
    #synthetic-stunden-import-list
  ):not([id^="contract-"]):not([id^="settings-"]):not([id^="synth-preview"]):not(
    [id^="export-"]
  ) {
  border-radius: var(--biz-radius-sm);
}

#main-panels-mount table {
  border-collapse: collapse;
  font-size: 0.8125rem;
}

#main-panels-mount thead th {
  background: var(--biz-paper-deep) !important;
  color: var(--biz-accent) !important;
  font-weight: 600;
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-bottom: 2px solid var(--biz-border) !important;
}

#main-panels-mount tbody tr:nth-child(even) {
  background: rgba(246, 245, 242, 0.65);
}

#main-panels-mount tbody td {
  border-bottom: 1px solid var(--biz-border-soft);
  vertical-align: middle;
}

/* —— 设置折叠 / 排班折叠 —— */
#main-panels-mount .settings-fold,
#main-panels-mount #synthetic-stunden-panel {
  border-radius: var(--biz-radius-sm) !important;
  border-color: var(--biz-border) !important;
}

#main-panels-mount .settings-fold > summary,
#main-panels-mount #synthetic-stunden-panel > summary {
  font-weight: 600;
  color: var(--biz-accent);
}

#main-panels-mount #synthetic-stunden-panel {
  border-style: dashed !important;
  background: rgba(255, 255, 255, 0.72) !important;
}

/* —— 登录 / 危险对话框 —— */
#app-login-form {
  border-radius: var(--biz-radius) !important;
  border: 1px solid var(--biz-border) !important;
  background: var(--biz-surface) !important;
  box-shadow: 0 12px 40px rgba(26, 35, 50, 0.12) !important;
}

#app-login-form h2 {
  color: var(--biz-accent);
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* —— 语言切换 —— */
#lang-switcher [data-lang-trigger] {
  border-radius: var(--biz-radius-sm);
  border-color: var(--biz-border);
  background: var(--biz-surface);
  color: var(--biz-ink);
  box-shadow: var(--biz-shadow);
}

#lang-switcher [data-lang-menu] {
  border-radius: var(--biz-radius-sm);
  border-color: var(--biz-border);
  box-shadow: 0 8px 24px rgba(26, 35, 50, 0.1);
}

#lang-switcher [data-lang-code]:hover {
  background: var(--biz-paper);
  color: var(--biz-accent);
}

/* —— 登录按钮 —— */
.biz-login-submit {
  border: 1px solid var(--biz-accent);
  background: var(--biz-accent);
  border-radius: var(--biz-radius-sm);
  transition: background-color 0.15s ease;
}

.biz-login-submit:hover {
  background: var(--biz-accent-hover);
}

#app-login-input:focus {
  border-color: var(--biz-accent);
  outline: none;
  box-shadow: 0 0 0 2px rgba(30, 51, 72, 0.15);
}

/* —— 对话框 —— */
.biz-modal-overlay:not(.hidden) {
  display: flex;
  align-items: center;
  justify-content: center;
}

.biz-modal-danger {
  border-radius: var(--biz-radius);
  border: 1px solid #c4a4a8;
  border-top: 3px solid #9f1239;
  background: var(--biz-surface);
  box-shadow: 0 16px 48px rgba(26, 35, 50, 0.14);
}

.biz-btn-secondary {
  transition: background-color 0.15s ease;
}

.biz-btn-secondary:hover {
  background: var(--biz-paper) !important;
}

.biz-btn-danger:hover {
  background: #881337 !important;
}

/* —— 次要操作按钮（白底描边） —— */
#main-panels-mount button.border-slate-200,
#main-panels-mount button.border-slate-300 {
  border-radius: var(--biz-radius-sm) !important;
  border-color: var(--biz-border) !important;
  color: var(--biz-accent) !important;
  font-weight: 500;
}

#main-panels-mount h3.contract-panel-section-title {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--biz-accent);
}
