:root {
  --bg: #f5f1e8;
  --panel: #fffdf7;
  --line: #d8d1c2;
  --ink: #2f2a24;
  --muted: #776f63;
  --brand: #c98a25;
  --accent: #24406e;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: "Microsoft YaHei UI", "PingFang SC", sans-serif; background: linear-gradient(180deg, #efe7d6, var(--bg)); color: var(--ink); }
.app-shell { min-height: 100vh; }
.topbar { position: sticky; top: 0; z-index: 20; background: rgba(36, 64, 110, 0.94); border-bottom: 1px solid rgba(255,255,255,0.08); backdrop-filter: blur(8px); }
.brand { display: flex; align-items: center; gap: 14px; padding: 12px 16px; }
.brand-logo { width: 46px; height: 46px; object-fit: cover; border-radius: 12px; border: 2px solid rgba(255,255,255,0.16); }
.brand h1 { margin: 0; color: #f8c554; font-size: 20px; }
.brand p { margin: 2px 0 0; color: rgba(255,255,255,0.86); font-size: 13px; }
.module-tabs, .workspace-tabs { display: flex; gap: 8px; overflow-x: auto; padding: 10px 12px 0; }
.module-tabs button, .workspace-tabs button, button { border: 1px solid #cfc5b2; background: linear-gradient(180deg, #fffefb, #efe5d2); color: var(--ink); border-radius: 10px; padding: 8px 14px; cursor: pointer; white-space: nowrap; }
.module-tabs button.active, .workspace-tabs button.active { background: linear-gradient(180deg, #2b4b81, #24406e); color: white; border-color: #24406e; }
.content { padding: 12px; }
.module { display: none; }
.module.active { display: block; }
.workspace { display: none; }
.workspace.active { display: block; }
.toolbar.wrap { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; padding: 10px 0; }
.toolbar label { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 14px; }
.toolbar input, .toolbar select { height: 34px; border: 1px solid var(--line); border-radius: 8px; padding: 0 10px; min-width: 70px; background: white; }
.stats { color: var(--accent); font-weight: 700; padding: 6px 0 12px; }
.panel-grid { display: grid; gap: 14px; }
.panel-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.panel-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.panel-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.panel { background: rgba(255,255,255,0.7); border: 1px solid var(--line); border-radius: 14px; padding: 10px; min-width: 0; }
.panel-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.panel-head strong { flex: 1; }
.panel-head span { color: var(--accent); font-weight: 700; }
textarea { width: 100%; min-height: 360px; resize: vertical; border: 1px solid var(--line); border-radius: 10px; padding: 10px; font-family: Consolas, monospace; background: #fff; }
.workspace-container .panel-grid.two textarea { min-height: 300px; }
.table-scroll { overflow: auto; max-height: 70vh; border: 1px solid var(--line); border-radius: 10px; background: white; }
.data-table { width: 100%; border-collapse: collapse; min-width: 1200px; }
.data-table th, .data-table td { border: 1px solid #e6e0d3; padding: 6px 8px; font-size: 13px; white-space: nowrap; }
.data-table th { position: sticky; top: 0; background: #f7f1e5; cursor: pointer; }
@media (max-width: 1100px) { .panel-grid.two, .panel-grid.three, .panel-grid.four { grid-template-columns: 1fr; } textarea { min-height: 240px; } }
