/* Hermes energetic workbench design system — shared by all non-factory pages. */
:root {
  color-scheme: light;
  --ink: #20212b; --muted: #6f6d78; --paper: #fffefa; --canvas: #fff8e9;
  --pink: #f58fba; --pink-pale: #fff0f6; --yellow: #ffd46a; --yellow-pale: #fff8df;
  --cyan: #43c9df; --cyan-pale: #eafaff; --coral: #ff8066; --coral-pale: #fff0eb;
  --green: #55bd8b; --green-pale: #ebf9f2; --line: 2px solid var(--ink);
  --hard-shadow: 3px 4px 0 var(--ink);
  --bg: var(--canvas); --topbar-bg: var(--paper); --topbar-border: var(--ink);
  --sidebar-bg: var(--paper); --sidebar-border: var(--ink); --card-bg: var(--paper);
  --text: var(--ink); --text-secondary: #5e5c67; --text-muted: #817e89;
  --accent: #e56b9b; --accent-hover: #cf5184; --accent-light: var(--pink-pale);
  --primary: var(--coral); --primary-light: var(--ink); --primary-dark: #d85d49;
  --hover-bg: var(--yellow-pale); --active-bg: var(--cyan-pale); --input-bg: #fffdf7;
  --input-border: var(--ink); --input-focus: var(--cyan); --input-area-bg: var(--paper);
  --msg-user-bg: var(--coral); --msg-user-text: var(--ink); --msg-assistant-bg: var(--paper);
  --msg-assistant-border: var(--ink); --msg-assistant-text: var(--ink); --btn-text: var(--ink);
  --shadow: var(--hard-shadow); --card-shadow: var(--hard-shadow); --card-border: var(--ink);
  --overlay: rgba(32,33,43,.42); --overlay-bg: rgba(32,33,43,.42);
}
[data-theme="dark"] {
  color-scheme: dark;
  --ink: #f7f0e7; --muted: #beb4aa; --paper: #292936; --canvas: #171720;
  --pink: #d76b99; --pink-pale: #3c2936; --yellow: #d6a94f; --yellow-pale: #3d3523;
  --cyan: #4ebfd1; --cyan-pale: #20393f; --coral: #dd7867; --coral-pale: #432b2a;
  --green: #63b88d; --green-pale: #25392f; --hard-shadow: 3px 4px 0 #08080d;
  --text-secondary: #d0c7bf; --text-muted: #aaa29d; --input-bg: #20202b;
  --accent: #e881aa; --accent-hover: #f39abc; --primary: var(--coral); --primary-light: var(--ink);
  --input-placeholder: #a8a09b; --btn-text: #171720;
  --overlay: rgba(0,0,0,.62); --overlay-bg: rgba(0,0,0,.62);
}

html { background: var(--canvas); }
body {
  color: var(--text) !important; background-color: var(--canvas) !important;
  background-image: radial-gradient(circle at 0 0, color-mix(in srgb, var(--pink) 22%, transparent), transparent 24%), radial-gradient(circle at 100% 100%, color-mix(in srgb, var(--cyan) 18%, transparent), transparent 28%) !important;
  font-family: Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif !important;
}
/* 登录页保留海边小镇原图：主题只提供可读性的彩色遮罩与卡片，不覆盖背景图层。 */
body:has(.login-card) { background: transparent !important; }
body:has(.login-card) .bg-overlay {
  background: linear-gradient(125deg, rgba(255, 235, 241, .48), rgba(255, 245, 211, .24) 48%, rgba(81, 202, 220, .22)) !important;
  backdrop-filter: blur(1px); -webkit-backdrop-filter: blur(1px);
}
body:has(.login-card) .login-card { background: rgba(255, 254, 250, .88) !important; backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
[data-theme="dark"] body:has(.login-card) .bg-overlay { background: linear-gradient(125deg, rgba(37, 20, 35, .62), rgba(20, 22, 34, .54) 52%, rgba(15, 47, 54, .52)) !important; }
[data-theme="dark"] body:has(.login-card) .login-card { background: rgba(34, 34, 45, .9) !important; }
button, input, select, textarea { font: inherit; }
button, .btn, .primary-btn, .action-btn, .save-btn, .submit-btn {
  border: var(--line) !important; border-radius: 12px !important; box-shadow: 2px 3px 0 var(--ink);
  font-weight: 750 !important; transition: transform .14s ease, box-shadow .14s ease, background .14s ease !important;
}
button:hover, .btn:hover, .primary-btn:hover, .action-btn:hover, .save-btn:hover, .submit-btn:hover { transform: translate(-1px,-1px); box-shadow: 3px 4px 0 var(--ink); }
button:active, .btn:active, .primary-btn:active, .action-btn:active, .save-btn:active, .submit-btn:active { transform: translate(2px,3px); box-shadow: 0 0 0 var(--ink); }
input, textarea, select { background: var(--input-bg) !important; color: var(--text) !important; border: var(--line) !important; border-radius: 10px !important; }
input:focus, textarea:focus, select:focus { outline: 3px solid var(--cyan) !important; outline-offset: 1px; }
.topbar, .header, .navbar, .app-header {
  background: var(--topbar-bg) !important; color: var(--text) !important; border-bottom: var(--line) !important;
  box-shadow: 0 3px 0 color-mix(in srgb, var(--ink) 16%, transparent); position: relative;
}
.topbar h1, .topbar h2, .header h1, .navbar h1 { color: var(--text) !important; font-weight: 850 !important; letter-spacing: -.03em; }
.topbar h1::first-letter, h1::first-letter { color: var(--coral); }
.card, .panel, .task-card, .service-card, .project-card, .item-card, .content-card, .setting-card, .model-card, .file-card, .status-card,
.login-card, .category-card, .chunk-card, .plan-card-wrap, .rule-item, .alert-item, .info-card, .session-item, .evo-item, .answer-box, .current-card {
  background: var(--card-bg) !important; color: var(--text) !important; border: var(--line) !important;
  border-radius: 16px !important; box-shadow: var(--hard-shadow) !important;
}
.card:nth-of-type(4n+1), .panel:nth-of-type(4n+1), .task-card:nth-of-type(4n+1) { border-top: 6px solid var(--pink) !important; }
.card:nth-of-type(4n+2), .panel:nth-of-type(4n+2), .task-card:nth-of-type(4n+2) { border-top: 6px solid var(--yellow) !important; }
.card:nth-of-type(4n+3), .panel:nth-of-type(4n+3), .task-card:nth-of-type(4n+3) { border-top: 6px solid var(--cyan) !important; }
.card:nth-of-type(4n), .panel:nth-of-type(4n), .task-card:nth-of-type(4n) { border-top: 6px solid var(--green) !important; }
.login-card { border-top: 8px solid var(--pink) !important; }
[data-theme="dark"] .login-card h1, [data-theme="dark"] .login-card .subtitle,
[data-theme="dark"] .login-card label, [data-theme="dark"] .login-card .field label { color: #f7f0e7 !important; }
[data-theme="dark"] .login-card h1, [data-theme="dark"] .login-card .subtitle { color: #f7f0e7 !important; }
[data-theme="dark"] .login-card input { color: #f7f0e7 !important; border-color: #f7f0e7 !important; }
[data-theme="dark"] .login-card input::placeholder { color: #bdb4ad !important; }
.category-card:nth-of-type(4n+1), .rule-item:nth-of-type(4n+1), .alert-item:nth-of-type(4n+1) { border-left: 6px solid var(--pink) !important; }
.category-card:nth-of-type(4n+2), .rule-item:nth-of-type(4n+2), .alert-item:nth-of-type(4n+2) { border-left: 6px solid var(--yellow) !important; }
.category-card:nth-of-type(4n+3), .rule-item:nth-of-type(4n+3), .alert-item:nth-of-type(4n+3) { border-left: 6px solid var(--cyan) !important; }
.category-card:nth-of-type(4n), .rule-item:nth-of-type(4n), .alert-item:nth-of-type(4n) { border-left: 6px solid var(--green) !important; }
.section-title, .card-title, .card-header, .plan-date-header, .file-header, .model-name, .service-name { color: var(--text) !important; font-weight: 850 !important; }
.page, .page-content, .content, .content-area, .main, .list-container, .scroll-area { color: var(--text); }
.modal, .dialog, .drawer, .sidebar, .popup, .dropdown-menu { background: var(--paper) !important; color: var(--text) !important; border-color: var(--ink) !important; }
.empty-state, .empty, .no-data { color: var(--text-muted) !important; }
.badge, .tag, .count-badge, .status-badge { border: 1.5px solid var(--ink) !important; font-weight: 750 !important; }
a { color: inherit; }
@media (max-width: 640px) { .topbar { min-height: 56px; } .card, .panel, .task-card { border-radius: 13px !important; box-shadow: 2px 3px 0 var(--ink) !important; } }
