:root {
  --ns-bg: #f2f6f8;
  --ns-surface: #ffffff;
  --ns-surface-muted: #f7fafb;
  --ns-border: #dbe5ea;
  --ns-border-strong: #c7d5dd;
  --ns-text: #1c3342;
  --ns-text-muted: #607583;
  --ns-sidebar: #17364b;
  --ns-sidebar-active: rgba(255,255,255,.11);
  --ns-focus: var(--primary, #216789);
  --ns-accent: #e7b46b;
  --ns-copper: #bd7443;
  --ns-warning: #946018;
  --ns-danger: #a5403b;
  --ns-success: #27715a;
}

html { color-scheme: light; }

body {
  background: var(--ns-bg) !important;
  color: var(--ns-text) !important;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
    "Microsoft YaHei", sans-serif !important;
  font-size: 14px;
}

h1, h2, h3, h4, b, strong { letter-spacing: 0; }
h1 { font-size: 24px !important; font-weight: 700 !important; letter-spacing: -.025em; }
h2 { font-size: 17px !important; font-weight: 650 !important; }
h3 { font-weight: 650 !important; }

.ey {
  color: var(--ns-text-muted) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.sub, small { color: var(--ns-text-muted); }

body.workbench .side {
  width: 224px !important;
  padding: 22px 12px !important;
  background: var(--sidebar, var(--ns-sidebar)) !important;
}

body.workbench .side::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(0deg, transparent 0 79px, rgba(255,255,255,.025) 79px 80px);
}

body.workbench .side-scroll, body.workbench .session-box { position: relative; }

body.workbench .brand {
  display: flex;
  align-items: center;
  gap: 11px;
  min-width: 0;
  margin: 0 8px 22px !important;
  padding: 1px 0 21px;
  border-bottom: 1px solid rgba(255,255,255,.17);
  font-size: 17px !important;
  font-weight: 650 !important;
}

body.workbench .brand b {
  display: inline-block;
  flex: 0 0 auto;
  width: auto;
  height: auto;
  border: 0;
  border-right: 1px solid rgba(255,255,255,.24);
  padding-right: 11px;
  color: var(--ns-accent) !important;
  font-family: "Bahnschrift", "Arial Narrow", "Microsoft YaHei", sans-serif;
  font-size: 13px;
  font-weight: 750;
  letter-spacing: .035em;
  line-height: 1.2;
  white-space: nowrap;
}

body.workbench .brand-lockup {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
  gap: 3px;
}

body.workbench .brand #brandName {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.workbench .brand-caption {
  display: block;
  overflow: hidden;
  color: #a8becb !important;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .04em;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.workbench .label {
  margin: 20px 9px 8px !important;
  color: #abc0cd !important;
  font-size: 10px !important;
  font-weight: 700;
  letter-spacing: .11em !important;
}

body.workbench .nav {
  margin: 2px 0 !important;
  padding: 10px 9px !important;
  border-radius: 3px !important;
  border: 0 !important;
  transition: background-color .12s ease, color .12s ease !important;
}

body.workbench .nav:not(.nav-child) { display: flex; align-items: center; gap: 8px; min-width: 0; }
body.workbench .nav-code {
  flex: 0 0 21px;
  color: #bad0db;
  font-family: "Bahnschrift", "Microsoft YaHei", sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .02em;
  text-align: center;
}
body.workbench .nav.on .nav-code, body.workbench .nav-group.open .nav-code { color: var(--ns-accent); }
body.workbench .nav-text { min-width: 0; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
body.workbench .nav-group-toggle .nav-text { flex: 1 1 auto; text-align: left; }
body.workbench .nav-group-toggle .chevron { margin-left: auto; }
body.workbench .nav-child { position: relative; padding-left: 19px !important; }
body.workbench .nav-child::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 6px;
  width: 4px;
  height: 4px;
  border: 1px solid #a9c0cd;
  border-radius: 50%;
  transform: translateY(-50%);
}
body.workbench .nav-child.on::before { border-color: var(--ns-accent); background: var(--ns-accent); }

body.workbench .nav:hover { transform: none !important; background: rgba(255,255,255,.07) !important; }
body.workbench .nav.on {
  transform: none !important;
  background: var(--ns-sidebar-active) !important;
  box-shadow: inset 2px 0 var(--ns-accent) !important;
}

body.workbench .nav-children { border-left-color: rgba(255,255,255,.14) !important; }
body.workbench .session-box { color: #bfd0d9 !important; }
body.workbench .session-box { border-top-color: rgba(255,255,255,.2); }

body.workbench > .main {
  margin-left: 224px !important;
  max-width: 1600px !important;
  padding: 30px 36px 48px !important;
}

body.workbench #businessDashboard .dash-head {
  padding-bottom: 20px;
  border-bottom: 1px solid var(--ns-border-strong);
}

body.workbench #businessDashboard, body.workbench #businessDashboard .dash-head > *, body.workbench .dash-tools { min-width: 0; max-width: 100%; }
body.workbench .dash-tools > * { max-width: 100%; }

body.workbench #businessDashboard .dash-head .ey {
  color: var(--ns-copper) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .11em !important;
}

body.workbench #businessDashboard .dash-head h1 { font-size: 30px !important; }

body.workbench .metric-grid, body.workbench .annual-kpi-grid {
  gap: 0;
  overflow: hidden;
  border: 1px solid var(--ns-border-strong);
  border-radius: 4px;
  background: var(--ns-surface);
}

body.workbench .metric-grid { margin-top: 16px; }

body.workbench .metric-grid > .card, body.workbench .annual-kpi-grid > .card {
  min-width: 0;
  border: 0 !important;
  border-right: 1px solid var(--ns-border) !important;
  border-radius: 0 !important;
  padding: 20px 22px !important;
}

body.workbench .metric-grid > .card:last-child, body.workbench .annual-kpi-grid > .card:last-child { border-right: 0 !important; }
body.workbench .metric-grid > .card:first-child, body.workbench .annual-kpi-grid > .card:first-child { box-shadow: inset 0 3px var(--ns-copper) !important; }
body.workbench .metric-grid > .card p, body.workbench .annual-kpi-grid > .card p { color: var(--ns-text-muted); font-size: 11px; font-weight: 650; letter-spacing: .04em; }
body.workbench .metric-grid .metric-value, body.workbench .annual-kpi-grid .metric-value {
  color: var(--ns-text);
  font-family: "Bahnschrift", "Segoe UI", "Microsoft YaHei", sans-serif;
  font-size: 30px;
  font-variant-numeric: tabular-nums;
  font-weight: 650;
  letter-spacing: -.035em;
  overflow-wrap: anywhere;
}

body.workbench .dashboard-grid, body.workbench .annual-dashboard-grid { gap: 12px; }
body.workbench .dashboard-panel { min-width: 0; padding: 20px 22px; border-radius: 4px !important; }
body.workbench .dashboard-panel > .ey { color: var(--ns-focus) !important; font-size: 10px !important; font-weight: 700 !important; letter-spacing: .1em !important; }
body.workbench .dashboard-panel > .ey::before { content: ""; display: inline-block; width: 12px; height: 2px; margin: 0 8px 3px 0; background: var(--ns-copper); }
body.workbench .dashboard-panel h2 { margin-top: 3px; font-size: 18px !important; }

.card,
.dashboard-panel,
.editor,
.panel,
.module-entry-card,
.annual-filter-shell,
.preview {
  border-color: var(--ns-border) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}

.card, .dashboard-panel, .editor, .panel { background: var(--ns-surface) !important; }
.card { padding: 16px !important; }

.module-entry-card {
  min-height: 150px !important;
  padding: 18px !important;
  background: var(--ns-surface) !important;
  border-top: 2px solid var(--ns-focus) !important;
  border-radius: 4px !important;
  transition: background-color .12s ease, border-color .12s ease !important;
}

.module-entry-card:hover {
  transform: none !important;
  background: var(--ns-surface-muted) !important;
  border-color: var(--ns-border-strong) !important;
  box-shadow: none !important;
}

.module-entry-icon {
  width: 36px !important;
  height: 36px !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--ns-focus) !important;
  font-size: 24px !important;
}

.module-entry-action { color: var(--ns-focus) !important; }

.btn, button.btn, a.btn, .back {
  border-radius: 6px !important;
  padding: 9px 12px !important;
  font-weight: 600 !important;
  box-shadow: none !important;
}

.btn:not(.ghost):not(.danger):not(.quiet) {
  background: var(--ns-focus) !important;
  border-color: var(--ns-focus) !important;
  color: #fff !important;
}

.btn.ghost, .back {
  background: var(--ns-surface) !important;
  border-color: var(--ns-focus) !important;
  color: var(--ns-focus) !important;
}

.btn.quiet { color: var(--ns-focus) !important; }
.btn:disabled { opacity: .55; cursor: not-allowed; }

.admin-link, .text-link { color: var(--ns-focus) !important; }

input, select, textarea {
  border-color: var(--ns-border-strong) !important;
  border-radius: 6px !important;
  box-shadow: none !important;
}

input:focus, select:focus, textarea:focus, button:focus-visible, a:focus-visible {
  outline: 2px solid var(--ns-focus);
  outline-offset: 1px;
}

table { border-color: var(--ns-border) !important; }
th {
  background: #edf4f7 !important;
  color: #476272 !important;
  font-weight: 600 !important;
}
th, td { border-bottom-color: #e3ebef !important; }

.tag, .status, .pill { border-radius: 4px !important; }

.ai-launcher {
  width: 46px !important;
  height: 42px !important;
  border-radius: 7px !important;
  background: var(--ns-sidebar) !important;
  box-shadow: 0 4px 14px rgba(20,35,43,.16) !important;
  font-weight: 650 !important;
}

.ai-panel { border-radius: 9px !important; box-shadow: 0 12px 34px rgba(20,35,43,.18) !important; }
.ai-head { background: var(--ns-sidebar) !important; }
.ai-message { border-radius: 7px !important; }
body.workbench .ai-message.user, body.workbench .ai-compose button { background: var(--ns-focus) !important; }

.tracking-workbench .primary-button { background: var(--ns-focus) !important; color: #fff !important; }
.tracking-workbench .surface { border-color: var(--ns-border) !important; }
.tracking-workbench .source-tabs { background: #e8f0f4 !important; border-color: var(--ns-border) !important; }
.tracking-workbench .source-tab.on, .tracking-workbench .filter-button.on { color: var(--ns-focus) !important; }
.tracking-workbench .record-link, .tracking-workbench .status.transit { color: var(--ns-focus) !important; }
.tracking-workbench .timeline li.current:before { background: var(--ns-focus) !important; border-color: var(--ns-focus) !important; }

.module-error {
  max-width: 720px;
  margin: 40px auto;
  padding: 22px;
  border: 1px solid var(--ns-border);
  border-left: 4px solid var(--ns-warning);
  border-radius: 7px;
  background: var(--ns-surface);
}

.module-error h2 { margin: 0 0 8px; }
.module-error p { margin: 0; color: var(--ns-text-muted); line-height: 1.65; }

.resource-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  flex-wrap: wrap;
}

.resource-head h1 { margin-bottom: 7px; }
.resource-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.resource-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 18px 0 14px;
}
.resource-kpi {
  padding: 14px 15px;
  border: 1px solid var(--ns-border);
  border-radius: 7px;
  background: var(--ns-surface);
}
.resource-kpi span { display: block; color: var(--ns-text-muted); font-size: 12px; }
.resource-kpi b { display: block; margin-top: 6px; font-size: 24px; font-weight: 650; }
.resource-kpi.warning b { color: var(--ns-warning); }
.resource-tabs { display: flex; gap: 4px; margin: 0 0 14px; border-bottom: 1px solid var(--ns-border); }
.resource-tab {
  border: 0;
  border-bottom: 2px solid transparent;
  padding: 10px 14px;
  background: transparent;
  color: var(--ns-text-muted);
  cursor: pointer;
  font: inherit;
  font-weight: 600;
}
.resource-tab.active { border-bottom-color: var(--ns-focus); color: var(--ns-focus); }
.resource-purpose-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.resource-purpose { min-height: 125px; padding: 16px; border: 1px solid var(--ns-border); border-radius: 7px; background: var(--ns-surface); }
.resource-purpose b { display: block; margin-bottom: 7px; }
.resource-purpose p { margin: 0; color: var(--ns-text-muted); line-height: 1.65; }
.resource-section-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; flex-wrap: wrap; }
.resource-table-shell { overflow: auto; }
.quote-batch { margin-top: 12px; padding: 15px; border: 1px solid var(--ns-border); border-radius: 7px; background: var(--ns-surface); }
.quote-batch-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; flex-wrap: wrap; }
.quote-batch-head h3 { margin: 0 0 5px; }
.quote-status { display: inline-block; margin-left: 7px; padding: 3px 6px; border-radius: 4px; background: #edf3f6; color: #526b79; font-size: 11px; font-weight: 600; }
.quote-status.active { background: #e5f0ea; color: var(--ns-success); }
.quote-status.expiring, .quote-status.upcoming { background: #f6ecdc; color: var(--ns-warning); }
.quote-status.expired { background: #f4e5e4; color: var(--ns-danger); }
.quote-meta { color: var(--ns-text-muted); font-size: 12px; line-height: 1.7; }
.quote-editor-grid { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 10px; }
.quote-editor-grid label, .quote-line-editor label { color: var(--ns-text-muted); font-size: 12px; }
.quote-editor-grid input, .quote-editor-grid select, .quote-line-editor input, .quote-line-editor select { width: 100%; margin-top: 5px; }
.quote-span-2 { grid-column: span 2; }
.quote-line-list { display: grid; gap: 9px; margin-top: 10px; }
.quote-line-editor {
  display: grid;
  grid-template-columns: 1.5fr .8fr 1fr .65fr .7fr .7fr .7fr .55fr .55fr auto;
  gap: 7px;
  align-items: end;
  padding: 11px;
  border: 1px solid var(--ns-border);
  border-radius: 7px;
  background: var(--ns-surface-muted);
}
.quote-line-editor .btn { white-space: nowrap; }
.quote-empty { padding: 28px 18px; text-align: center; color: var(--ns-text-muted); border: 1px dashed var(--ns-border-strong); border-radius: 7px; }

@media (max-width: 1100px) {
  .resource-kpi-grid, .quote-editor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resource-purpose-grid { grid-template-columns: 1fr; }
  .quote-line-editor { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 680px) {
  .resource-kpi-grid, .quote-editor-grid, .quote-line-editor { grid-template-columns: 1fr; }
  .quote-span-2 { grid-column: auto; }
}

body.login-page .shell {
  border-radius: 9px !important;
  border-color: var(--ns-border-strong) !important;
  box-shadow: 0 10px 30px rgba(20,35,43,.08) !important;
}

body.login-page .brand {
  min-height: 560px !important;
  padding: 46px 40px !important;
  background: var(--sidebar, var(--ns-sidebar)) !important;
  border-left: 4px solid var(--ns-accent);
}

body.login-page .brand h1 { font-size: 38px !important; line-height: 1.16; }
body.login-page .brand p { max-width: 32ch; }

body.login-page .mark {
  display: inline-block;
  width: auto;
  height: auto;
  border: 0;
  color: var(--ns-accent) !important;
  font-size: 14px !important;
  font-weight: 750;
  letter-spacing: .1em;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

body.login-page .mark::after { content: ""; display: block; width: 38px; height: 2px; margin-top: 12px; background: var(--ns-accent); }

body.login-page .tabs { gap: 20px !important; }
body.login-page .tab { font-weight: 600 !important; }
body.login-page .tab.active { border-bottom-width: 2px !important; border-bottom-color: var(--ns-focus) !important; color: var(--ns-focus) !important; }

@media (max-width: 1000px) {
  body.workbench .metric-grid > .card:nth-child(2), body.workbench .annual-kpi-grid > .card:nth-child(2) { border-right: 0 !important; }
  body.workbench .metric-grid > .card:nth-child(-n+2), body.workbench .annual-kpi-grid > .card:nth-child(-n+2) { border-bottom: 1px solid var(--ns-border) !important; }
}

@media (max-width: 820px) {
  body.workbench > .main { margin-left: 65px !important; padding: 22px 14px !important; }
  body.workbench .side { width: 65px !important; padding: 22px 7px !important; }
  body.workbench .brand { justify-content: center; margin: 0 0 18px !important; padding-bottom: 14px; }
  body.workbench .brand-lockup { display: none; }
  body.workbench .brand b { max-width: 100%; padding-right: 0; border-right: 0; font-size: 10px; line-height: 1.15; overflow-wrap: anywhere; text-align: center; white-space: normal; }
  body.workbench .label { margin: 12px 0 5px !important; font-size: 0 !important; line-height: 0; }
  body.workbench .nav { padding: 10px 4px !important; text-align: center; }
  body.workbench .nav:not(.nav-child) { justify-content: center; }
  body.workbench .nav:not(.nav-child) .nav-text, body.workbench .nav-group-toggle .chevron { display: none; }
  body.workbench .nav-code { flex-basis: auto; font-size: 13px; }
  body.workbench .nav-child { padding-left: 3px !important; }
  body.workbench .nav-child::before { display: none; }
  body.workbench .nav-child .nav-text { display: block; max-width: 100%; overflow: hidden; white-space: nowrap; font-size: 11px !important; line-height: 1.2; }
  body.workbench .nav-children { margin-left: 0; padding-left: 3px; }
  body.workbench .session-box { padding: 8px 2px; text-align: center; overflow-wrap: anywhere; }
  body.workbench .session-actions { flex-direction: column; gap: 5px; }
}

@media (max-width: 560px) {
  body.workbench .dash-tools { width: 100%; }
  body.workbench .dash-tools select { flex: 1 1 130px; min-width: 0; }
  body.workbench .dash-tools input[type="file"] { flex: 1 1 100%; min-width: 0; }
  body.workbench .metric-grid, body.workbench .annual-kpi-grid { grid-template-columns: 1fr !important; }
  body.workbench .metric-grid > .card, body.workbench .annual-kpi-grid > .card { border-right: 0 !important; border-bottom: 1px solid var(--ns-border) !important; }
  body.workbench .metric-grid > .card:last-child, body.workbench .annual-kpi-grid > .card:last-child { border-bottom: 0 !important; }
}

@media (max-width: 780px) {
  body.login-page .brand { min-height: auto !important; padding: 30px 24px !important; }
}
