/* 生物制药浅色主题：只作用于已有浅色模式。 */
body.theme-light {
  --space-1: 4px;
  --space-2: 8px;
  --space-4: 16px;
  --card-gap: var(--space-2);
  --glass-surface: rgba(255, 255, 255, 0.14);
  --glass-border: rgba(255, 255, 255, 0.72);
  --ink: #16354b;
  --muted: #496479;
  --accent: #126ca6;
  --line: rgba(70, 118, 146, 0.22);
  background: #e9f2f7;
  color: var(--ink);
  color-scheme: light;
  font-family: "Segoe UI", "Microsoft YaHei", sans-serif;
  font-variant-numeric: tabular-nums;
  isolation: isolate;
}
body.theme-light::before {
  position: fixed;
  inset: -2%;
  z-index: -1;
  opacity: 1;
  background: url("./assets/biopharma-login-background-20260924.png") center / cover no-repeat;
  animation: light-photo-breathe 24s ease-in-out infinite alternate;
}
body.theme-light::after,
body.theme-light .app-shell::before { content: none; }
body.theme-light .card,
body.theme-light button { animation: none; }
body.theme-light .main-panel { min-width: 0; }
body.theme-light .shell-content { padding: 16px; }
body.theme-light .sidebar {
  background: rgba(244, 250, 253, 0.48);
  backdrop-filter: blur(24px);
  border-right: 1px solid var(--glass-border);
  padding: 20px 12px;
  gap: 8px;
}
body.theme-light .sidebar a {
  align-self: stretch;
  width: auto;
  min-height: 44px;
  border-radius: 10px;
  color: var(--muted);
  font-size: 14px;
  transition: background 180ms ease, color 180ms ease;
}
body.theme-light .sidebar a:hover { background: rgba(255,255,255,0.5); color: var(--ink); }
body.theme-light .sidebar a.active {
  background: #156d9f;
  color: #fff;
  box-shadow: 0 5px 14px rgba(18,108,166,0.18);
}
.sidebar-nav-icon svg { width: 20px; height: 20px; display: block; }
body.theme-light .sidebar-head { padding-bottom: 16px; border-bottom: 1px solid var(--line); }
body.theme-light .profile-menu-trigger { background: transparent; border-color: var(--line); color: var(--ink); }
body.theme-light .profile-menu-avatar { background: #176b93; color: #fff; }
body.theme-light details.profile-menu .profile-menu-panel {
  background: #f5fafc;
  border: 1px solid #c4dbe8;
  box-shadow: 0 12px 32px rgba(25,70,98,0.16);
}
body.theme-light button.profile-menu-item { background: transparent; color: var(--ink); box-shadow: none; }
body.theme-light button.profile-menu-item:hover { background: #dfedf5; }
body.theme-light:has(.app-shell) .main-panel .card,
body.theme-light #dashPanelBi .card,
body.theme-light #dashPanelBi article.card {
  background: var(--glass-surface);
  border: 1px solid var(--glass-border);
  border-radius: 16px;
  backdrop-filter: blur(24px) saturate(1.1);
  -webkit-backdrop-filter: blur(24px) saturate(1.1);
  box-shadow: 0 8px 24px rgba(23,89,126,0.09), 0 0 12px rgba(117,216,246,0.12),
    inset 0 1px 0 rgba(255,255,255,0.85), inset 0 -1px 0 rgba(120,210,239,0.3);
  margin-bottom: 8px;
  animation: none;
}
body.theme-light .dashboard-grid,
body.theme-light .dashboard-bi-layout,
body.theme-light .dashboard-bi-side { gap: var(--card-gap); }
body.theme-light #dashPanelBi .dashboard-bi-side > .card,
body.theme-light #dashPanelBi article.metric-card { margin-bottom: 0; }
body.theme-light .dashboard-kpi-row { grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); }
body.theme-light .metric-value { font-size: clamp(20px, 1.8vw, 30px); overflow-wrap: normal; white-space: nowrap; letter-spacing: -0.6px; }
body.theme-light .metric-card { min-width: 0; padding: 18px 14px; }
body.theme-light .dashboard-bi-layout { grid-template-columns: minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr); }
body.theme-light .dashboard-bi-side { min-width: 0; }
body.theme-light h1 { font-size: 24px; letter-spacing: -0.4px; }
body.theme-light h2 { font-size: 16px; }
body.theme-light h1, body.theme-light h2, body.theme-light h3,
body.theme-light .metric-value { color: var(--ink); }
body.theme-light .subtitle, body.theme-light .metric-sub,
body.theme-light .form-item label, body.theme-light .profile-menu-name { color: var(--muted); }
body.theme-light:has(.app-shell) .main-panel .topbar {
  background: transparent;
  border-bottom: 0;
  padding: 8px 8px 16px;
}
body.theme-light .dashboard-main-tabs,
body.theme-light .dashboard-todo-subtabs,
body.theme-light .dashboard-report-subtabs {
  background: rgba(255,255,255,0.24);
  border: 1px solid var(--glass-border);
  border-radius: 12px;
  padding: 5px;
  gap: 8px;
  margin-bottom: 8px;
}
body.theme-light button { background: #126ca6; color: #fff; box-shadow: none; border-radius: 8px; }
body.theme-light button:hover { box-shadow: 0 4px 12px rgba(18,108,166,0.16); }
body.theme-light button.danger { background: #b83b45; color: #fff; }
body.theme-light button.secondary,
body.theme-light button[role="tab"] { background: rgba(255,255,255,0.48); color: #28546d; border: 1px solid var(--line); }
body.theme-light button[role="tab"][aria-selected="true"] { background: #126ca6; color: #fff; border-color: transparent; }
body.theme-light input, body.theme-light select, body.theme-light textarea {
  background: rgba(255,255,255,0.72);
  color: var(--ink);
  border: 1px solid #b3cddb;
  border-radius: 8px;
}
body.theme-light input:focus, body.theme-light select:focus, body.theme-light textarea:focus {
  background: #f9fcfe;
  border-color: #1b83b6;
  box-shadow: 0 0 0 3px rgba(27,131,182,0.13);
}
body.theme-light input::placeholder, body.theme-light textarea::placeholder { color: #5a7485; }
body.theme-light .search-bar .search-date-range-inner { background: rgba(255,255,255,0.72); border-color: #b3cddb; }
body.theme-light .search-bar .search-date-range-title,
body.theme-light .search-bar .search-date-sep { color: #496479; }
body.theme-light .search-bar .search-date-range-inner input[type="date"] { color: #16354b; color-scheme: light; background: transparent; }
body.theme-light .search-bar .search-date-range-inner input[type="date"]::-webkit-calendar-picker-indicator { filter: none; }
body.theme-light :is(button,a,input,select,textarea,summary,[role="button"]):focus-visible {
  outline: 2px solid #126ca6; outline-offset: 3px;
}
body.theme-light table { background: rgba(255,255,255,0.38); font-variant-numeric: tabular-nums; }
body.theme-light th, body.theme-light td { color: var(--ink); border-color: var(--line); }
body.theme-light th,
body.theme-light .list-table-scroll thead th,
body.theme-light .modal-card th { background: #dcecf4; color: #24485f; box-shadow: 0 1px 0 #c1d8e4; }
body.theme-light tbody tr:nth-child(even),
body.theme-light .modal-card tbody tr:nth-child(even) { background: rgba(222,239,248,0.42); }
body.theme-light tbody tr:hover,
body.theme-light .modal-card tbody tr:hover { background: rgba(174,217,238,0.4); }
body.theme-light .modal-backdrop { background: rgba(26,58,78,0.24); backdrop-filter: blur(5px); }
body.theme-light .modal-card {
  background: rgba(245,251,254,0.94);
  color: var(--ink);
  border: 1px solid #fff;
  border-radius: 18px;
  box-shadow: 0 24px 80px rgba(20,61,86,0.22), inset 0 1px 0 #fff;
}
body.theme-light .modal-card input, body.theme-light .modal-card select { background: #fff; }
body.theme-light .modal-card :is(h3,strong,label,p), body.theme-light .app-alert-modal-message { color: var(--ink); }
body.theme-light .chip { background: #deedf5; color: #28546d; border-color: var(--line); }
body.theme-light .list-pagination { background: rgba(245,251,254,0.7); color: var(--muted); }
body.theme-light button:disabled { opacity: 0.55; cursor: not-allowed; }
body.theme-light.embedded-mode { background: transparent; }
body.theme-light.embedded-mode::before { content: none; }
@keyframes light-photo-breathe {
  from { transform: translate3d(-0.5%,0,0) scale(1.03); }
  to { transform: translate3d(0.5%,-0.5%,0) scale(1.055); }
}
@media (max-width: 760px) {
  body.theme-light .dashboard-bi-layout { grid-template-columns: minmax(0,1fr); }
  body.theme-light .list-pagination-host,
  body.theme-light .list-pagination-inner { min-width: 0; max-width: 100%; flex-wrap: wrap; gap: 8px; }
  body.theme-light .shell-content { padding: 8px; }
  body.theme-light .sidebar { padding: 12px 8px; }
  body.theme-light .sidebar a { min-height: 44px; }
  body.theme-light button, body.theme-light select { min-height: 44px; }
  body.theme-light .dashboard-kpi-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  body.theme-light::before { animation: none; transform: none; }
  body.theme-light *, body.theme-light *::before { transition: none !important; }
}
@supports not (backdrop-filter: blur(1px)) {
  body.theme-light:has(.app-shell) .main-panel .card { background: #edf6fb; }
}
