:root {
  --lz-red: #c62828;
  --lz-red-soft: #fff5f5;
  --lz-border: #e8eaed;
  --lz-text: #1a1a2e;
  --lz-muted: #64748b;
  --lz-bg: #f1f4f9;
  --lz-card: #ffffff;
  --lz-radius: 12px;
  --lz-radius-sm: 8px;
  --lz-shadow: 0 1px 3px rgba(15, 23, 42, 0.06), 0 2px 8px rgba(15, 23, 42, 0.04);
  --sidebar-w: 280px;
  --panel-w: 300px;
  --ops-bg: #eef6fc;
  --eng-bg: #f3f4f6;
  --safety-bg: #fff7ed;
  --workforce-bg: #ecfdf3;
  --enterprise-bg: #f5f3ff;
  --admin-bg: #fafafa;
  --core-bg: #f8fafc;
  --hr-bg: #f5f3ff;
  --commercial-bg: #eff6ff;
  --costing-bg: #fffbeb;
  --claims-bg: #fdf4ff;
  --ops-accent: #0284c7;
  --eng-accent: #475569;
  --safety-accent: #ea580c;
  --workforce-accent: #16a34a;
  --admin-accent: #7c3aed;
  --core-accent: #475569;
  --hr-accent: #7c3aed;
  --commercial-accent: #0369a1;
  --costing-accent: #b45309;
  --claims-accent: #a21caf;
}
* { box-sizing: border-box; }
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  margin: 0;
  background: var(--lz-bg);
  color: var(--lz-text);
  font-size: 14px;
  line-height: 1.5;
}
.hidden { display: none !important; }
.dashboard-status-panel,
.hosted-error-panel {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: var(--lz-bg);
}
.dashboard-status-card,
.hosted-error-card {
  background: var(--lz-card);
  border: 1px solid var(--lz-border);
  border-radius: var(--lz-radius);
  padding: 28px 24px;
  max-width: 520px;
  width: 100%;
  box-shadow: var(--lz-shadow);
}
.dashboard-status-card h2,
.hosted-error-card h2 {
  margin: 0 0 10px;
  font-size: 20px;
  color: var(--lz-red);
}
.dashboard-status-card p,
.hosted-error-card p {
  margin: 0 0 16px;
  color: var(--lz-text);
  font-size: 14px;
  line-height: 1.5;
  white-space: pre-wrap;
}
.dashboard-status-actions,
.hosted-error-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.dashboard-status-banner {
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid #fecaca;
  border-radius: var(--lz-radius-sm);
  background: var(--lz-red-soft);
  color: var(--lz-text);
  font-size: 13px;
  line-height: 1.45;
}
.legacy-modules-notice {
  margin: 0 0 14px;
  padding: 8px 12px;
  border-radius: var(--lz-radius-sm);
  background: var(--lz-surface-muted, #f4f4f5);
  color: var(--lz-text-muted, #52525b);
  font-size: 12px;
  line-height: 1.4;
}
.nav-link--gas-missing {
  opacity: 0.85;
}
.gas-link-missing,
.register-backend-notice {
  display: block;
  margin: 8px 0;
  padding: 10px 12px;
  border-radius: var(--lz-radius-sm);
  background: var(--lz-surface-muted, #f4f4f5);
  color: var(--lz-text-muted, #52525b);
  font-size: 12px;
  line-height: 1.45;
}
a { color: var(--lz-red); }
.lz-brand-logo-wrap {
  display: block;
  background: transparent;
}
.lz-brand-logo {
  height: 38px;
  width: auto;
  max-width: min(220px, 100%);
  object-fit: contain;
  display: block;
  background: transparent;
}
.lz-brand-logo--sidebar { margin-bottom: 2px; }
/* TODO: Replace LOGO_URL asset with transparent PNG/SVG if file still has white background. */
.lz-brand-logo--login { height: 56px; margin: 0 auto 20px; }
.lz-brand-logo-fallback {
  font-weight: 800;
  color: var(--lz-red);
  letter-spacing: -0.02em;
  white-space: nowrap;
}
.login-gate {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.login-card {
  background: var(--lz-card);
  border: 1px solid var(--lz-border);
  border-radius: var(--lz-radius);
  padding: 36px 32px;
  max-width: 440px;
  width: 100%;
  text-align: center;
  box-shadow: var(--lz-shadow);
}
.login-card h1 { margin: 0 0 8px; font-size: 22px; color: var(--lz-red); }
.login-card p { margin: 0 0 12px; color: var(--lz-muted); font-size: 14px; }
.btn {
  display: inline-block;
  padding: 10px 16px;
  border-radius: var(--lz-radius-sm);
  border: 1px solid var(--lz-border);
  background: var(--lz-card);
  color: var(--lz-text);
  font-weight: 600;
  font-size: 13px;
  cursor: pointer;
  text-decoration: none;
}
.btn-primary { background: var(--lz-red); color: #fff; border-color: var(--lz-red); }
.btn-block { display: block; width: 100%; margin-top: 10px; }
.app-shell { display: flex; min-height: 100vh; }
.sidebar {
  width: var(--sidebar-w);
  flex-shrink: 0;
  background: #fafbfc;
  border-right: 1px solid var(--lz-border);
  display: flex;
  flex-direction: column;
  padding: 20px 14px 16px;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow: hidden;
}
.sidebar-head {
  flex-shrink: 0;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--lz-border);
  margin-bottom: 14px;
}
.sidebar-user-card {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-top: 14px;
  padding: 11px 12px;
  background: var(--lz-card);
  border: 1px solid var(--lz-border);
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.sidebar-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--lz-red-soft);
  color: var(--lz-red);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 15px;
  flex-shrink: 0;
}
.sidebar-user-meta { min-width: 0; flex: 1; }
.sidebar-user-meta b {
  display: block;
  color: var(--lz-text);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sidebar-role {
  display: inline-block;
  margin-top: 4px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--lz-red-soft);
  color: var(--lz-red);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.sidebar-email {
  display: block;
  margin-top: 5px;
  font-size: 11px;
  color: var(--lz-muted);
  word-break: break-all;
  line-height: 1.35;
}
.sidebar-nav {
  flex: 1;
  overflow-y: auto;
  padding-right: 4px;
  margin-right: -2px;
}
.sidebar-nav::-webkit-scrollbar { width: 5px; }
.sidebar-nav::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 999px;
}
.nav-group {
  margin-bottom: 14px;
  border-radius: 10px;
  padding: 10px 8px 8px;
  border: 1px solid rgba(15, 23, 42, 0.06);
}
.nav-group--ops { background: var(--ops-bg); --group-accent: var(--ops-accent); }
.nav-group--eng { background: var(--eng-bg); --group-accent: var(--eng-accent); }
.nav-group--safety { background: var(--safety-bg); --group-accent: var(--safety-accent); }
.nav-group--workforce { background: var(--workforce-bg); --group-accent: var(--workforce-accent); }
.nav-group--enterprise { background: var(--enterprise-bg); --group-accent: #7c3aed; }
.nav-group--admin { background: var(--admin-bg); --group-accent: var(--admin-accent); }
.nav-group--core { background: var(--core-bg); --group-accent: var(--core-accent); }
.nav-group--hr { background: var(--hr-bg); --group-accent: var(--hr-accent); }
.nav-group--commercial { background: var(--commercial-bg); --group-accent: var(--commercial-accent); }
.nav-group--costing { background: var(--costing-bg); --group-accent: var(--costing-accent); }
.nav-group--claims { background: var(--claims-bg); --group-accent: var(--claims-accent); }
.nav-group-title {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--lz-muted);
  margin-bottom: 6px;
  padding: 0 6px 2px;
}
.nav-group-title::before {
  content: '';
  width: 3px;
  height: 12px;
  border-radius: 2px;
  background: var(--group-accent, #64748b);
  flex-shrink: 0;
}
.nav-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: var(--lz-radius-sm);
  color: var(--lz-text);
  text-decoration: none;
  font-size: 13px;
  font-weight: 500;
  margin-bottom: 3px;
  transition: background 0.15s ease, color 0.15s ease;
}
.nav-link:hover {
  background: rgba(255, 255, 255, 0.78);
  color: var(--lz-red);
}
.nav-icon-wrap {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.88);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
}
.nav-link svg { flex-shrink: 0; color: #475569; stroke-width: 1.75; }
.nav-link:hover svg { color: var(--lz-red); }
.nav-empty { font-size: 12px; color: var(--lz-muted); padding: 8px 10px; }
.sidebar-foot {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--lz-border);
  font-size: 11px;
  color: var(--lz-muted);
}
.sidebar-foot a {
  display: block;
  margin-top: 8px;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
}
.sidebar-version {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}
.sidebar-version-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #94a3b8;
}
.sidebar-version-value {
  font-size: 11px;
  font-weight: 700;
  color: var(--lz-text);
  font-variant-numeric: tabular-nums;
}
.sidebar-collapse-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin-top: 6px;
  padding: 8px 10px;
  border: 1px dashed var(--lz-border);
  border-radius: 8px;
  background: transparent;
  color: var(--lz-muted);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.sidebar-collapse-btn:hover { background: rgba(15, 23, 42, 0.04); color: var(--lz-text); }
.sidebar-collapse-icon { font-size: 14px; line-height: 1; }
.lz-panel-toggle--legacy { display: none !important; }
.lz-float-sidebar-toggle,
.lz-float-refbar-toggle {
  position: fixed;
  z-index: 2600;
  border: 1px solid var(--lz-border);
  background: #fff;
  color: var(--lz-muted);
  cursor: pointer;
  box-shadow: var(--lz-shadow);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.lz-float-sidebar-toggle {
  top: 50%;
  left: calc(var(--sidebar-w, 280px) - 14px);
  transform: translateY(-50%);
  width: 28px;
  height: 40px;
  border-radius: 999px;
  transition: left 0.2s ease;
}
.lz-float-refbar-toggle {
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 28px;
  min-height: 56px;
  border-radius: 8px 0 0 8px;
  border-right: 0;
  padding: 8px 4px;
}
.lz-float-refbar-toggle.is-collapsed { opacity: 1; }
.lz-float-sidebar-toggle:hover,
.lz-float-refbar-toggle:hover { color: var(--lz-red); border-color: #cbd5e1; }
.app-shell.sidebar-collapsed ~ .lz-float-sidebar-toggle,
body:has(.app-shell.sidebar-collapsed) .lz-float-sidebar-toggle {
  left: calc(72px - 14px);
}
@media (max-width: 900px) {
  .lz-float-sidebar-toggle { left: 8px; top: auto; bottom: 16px; transform: none; }
  .lz-float-refbar-toggle { top: auto; bottom: 16px; transform: none; }
}
.nav-link-label { flex: 1; min-width: 0; }
.app-shell.sidebar-collapsed { --sidebar-w: 72px; }
.app-shell.sidebar-collapsed .sidebar-head h2,
.app-shell.sidebar-collapsed .sidebar-head .feed-meta,
.app-shell.sidebar-collapsed .sidebar-user-card,
.app-shell.sidebar-collapsed .nav-group-title,
.app-shell.sidebar-collapsed .nav-link-label,
.app-shell.sidebar-collapsed .sidebar-version,
.app-shell.sidebar-collapsed .sidebar-collapse-btn .nav-link-label { display: none; }
.app-shell.sidebar-collapsed .sidebar { padding: 14px 8px; }
.app-shell.sidebar-collapsed .nav-link { justify-content: center; padding: 10px 8px; }
.app-shell.sidebar-collapsed .sidebar-collapse-icon { transform: rotate(180deg); display: inline-block; }
.app-shell.sidebar-collapsed .sidebar-collapse-btn { justify-content: center; padding: 8px; }
.app-shell.sidebar-collapsed .lz-brand-logo { height: 30px; margin: 0 auto; }
.app-shell.sidebar-collapsed .sidebar-head { padding-bottom: 10px; }
.app-shell.sidebar-collapsed .lz-brand-home { display: flex; justify-content: center; }
.lz-brand-home { display: block; text-decoration: none; }
.lz-header-actions { display: flex; align-items: center; gap: 12px; margin-left: auto; }
.lz-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--lz-red-soft);
  color: var(--lz-red);
  font-weight: 700;
}
.lz-avatar--photo { object-fit: cover; background: #e2e8f0; }
.lz-avatar-md { width: 36px; height: 36px; font-size: 14px; }
.lz-avatar-xl { width: 88px; height: 88px; font-size: 28px; }
.lz-user-menu { position: relative; }
.lz-user-menu-trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px 4px 4px;
  border: 1px solid var(--lz-border);
  border-radius: 999px;
  background: #fff;
  cursor: pointer;
}
.lz-user-menu-trigger:hover { border-color: #cbd5e1; background: #fafbfc; }
.lz-user-menu-chevron { font-size: 11px; color: var(--lz-muted); line-height: 1; }
.lz-user-menu-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 220px;
  background: #fff;
  border: 1px solid var(--lz-border);
  border-radius: 10px;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
  padding: 6px;
  z-index: 1200;
}
.lz-user-menu-head {
  padding: 10px 12px 8px;
  border-bottom: 1px solid #f1f5f9;
  margin-bottom: 4px;
}
.lz-user-menu-head strong { display: block; font-size: 14px; color: var(--lz-text); }
.lz-user-menu-item {
  display: block;
  width: 100%;
  text-align: left;
  padding: 9px 12px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--lz-text);
  font: inherit;
  font-size: 13px;
  text-decoration: none;
  cursor: pointer;
}
.lz-user-menu-item:hover { background: #f8fafc; color: var(--lz-red); }
.lz-user-menu-item--disabled { opacity: 0.45; cursor: not-allowed; }
.lz-user-menu-item--danger { color: #b91c1c; }
.lz-user-menu-divider { height: 1px; background: #f1f5f9; margin: 4px 0; }
.lz-right-panel { position: relative; }
.lz-right-panel-toggle {
  position: absolute;
  top: 10px;
  left: -14px;
  z-index: 2;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 1px solid var(--lz-border);
  background: #fff;
  color: var(--lz-muted);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--lz-shadow);
}
.lz-right-panel-toggle:hover { color: var(--lz-red); border-color: #cbd5e1; }
.app-shell.right-panel-collapsed .right-panel,
.app-shell.right-panel-collapsed .sch-board-sidebar {
  width: 0;
  min-width: 0;
  padding: 0;
  border-left: 0;
  overflow: visible;
}
.app-shell.right-panel-collapsed .right-panel .section-card,
.app-shell.right-panel-collapsed .sch-board-sidebar .section-card,
.app-shell.right-panel-collapsed .right-panel .panel-section,
.app-shell.right-panel-collapsed .sch-board-sidebar .panel-section {
  display: none;
}
.app-shell.right-panel-collapsed .lz-right-panel-toggle {
  left: auto;
  right: 8px;
  position: fixed;
  top: 72px;
}
.lz-profile-card { padding-top: 20px; }
.lz-profile-hero { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.lz-profile-hero-meta h3 { margin: 0 0 4px; font-size: 20px; color: var(--lz-text); }
.lz-drive-note {
  margin: 14px 0 0;
  padding: 10px 12px;
  border-radius: var(--lz-radius-sm);
  background: #f8fafc;
  border: 1px dashed var(--lz-border);
}
.hosted-badge { display: none !important; }
.dashboard-body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.main-header {
  background: var(--lz-card);
  border-bottom: 1px solid var(--lz-border);
  padding: 16px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  box-shadow: var(--lz-shadow);
}
.main-header-title h2 { margin: 0; font-size: 19px; font-weight: 800; letter-spacing: -0.02em; }
.main-header-title p { margin: 4px 0 0; font-size: 12px; color: var(--lz-muted); }
.profile-block { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--lz-red-soft);
  color: var(--lz-red);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 15px;
  flex-shrink: 0;
}
.profile-meta .name { font-weight: 700; font-size: 14px; }
.profile-meta .email { color: var(--lz-muted); font-size: 11px; margin-top: 2px; }
.badge-row { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
.badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
}
.badge-tier { background: var(--lz-red-soft); color: var(--lz-red); }
.badge-dept { background: #e0f2fe; color: #0369a1; }
.hosted-badge {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--lz-muted);
  border: 1px solid var(--lz-border);
  border-radius: 999px;
  padding: 4px 10px;
  background: #f8fafc;
}
.gas-url-banner {
  background: #fffbeb;
  border-bottom: 1px solid #fcd34d;
  padding: 10px 16px;
}
.gas-url-banner-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: #92400e;
}
.gas-url-input {
  flex: 1;
  min-width: 200px;
  padding: 8px 10px;
  border: 1px solid var(--lz-border);
  border-radius: var(--lz-radius-sm);
  font-size: 12px;
}
.dashboard-grid { display: flex; flex: 1; min-height: 0; }
.main-content { flex: 1; min-width: 0; padding: 22px 24px; overflow-y: auto; }
.activity-panel {
  width: var(--panel-w);
  flex-shrink: 0;
  background: var(--lz-card);
  border-left: 1px solid var(--lz-border);
  padding: 20px 18px;
  overflow-y: auto;
}
.right-panel {
  width: var(--panel-w);
  flex-shrink: 0;
  border-left: 1px solid var(--lz-border);
  background: #fafbfc;
  padding: 16px 14px;
  overflow-y: auto;
}
.dashboard-grid--command .main-content {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Dashboard command centre + follow-up bar */
.dash-kpi-row {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 10px;
}
.dash-kpi-link { text-decoration: none; color: inherit; }
.dash-kpi-link:hover .dash-kpi { border-color: var(--lz-red-soft); }
.dash-kpi {
  background: #f8fafc;
  border: 1px solid var(--lz-border);
  border-radius: 8px;
  padding: 12px 14px;
}
.dash-kpi strong { display: block; font-size: 22px; color: var(--lz-red); margin-top: 4px; }
.dash-kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.dash-kpi-grid--compact { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); }
.dash-two-col {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}
.dash-section-sub { margin: 0 0 8px; font-size: 12px; color: var(--lz-muted); }
.dash-view-all { margin-top: 6px; }
.skel-kpi { min-height: 64px; }

.lz-followup-panel .af-tab-row { flex-wrap: wrap; margin-bottom: 10px; }
.af-tab-count {
  display: inline-block;
  min-width: 16px;
  padding: 0 5px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.08);
  font-size: 10px;
  margin-left: 2px;
}
.pg-filter-btn.is-active .af-tab-count { background: rgba(255, 255, 255, 0.25); }

.af-item-list { list-style: none; margin: 0; padding: 0; }
.af-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 0;
  border-bottom: 1px solid #f1f5f9;
}
.af-item:last-child { border-bottom: 0; }
.af-item-main { flex: 1; min-width: 0; }
.af-item-title { display: block; font-size: 12px; line-height: 1.35; }
.af-item-sub { display: block; margin-top: 2px; }
.af-item-meta { display: block; font-size: 10px; color: var(--lz-muted); margin-top: 4px; }
.af-module-tag { text-transform: uppercase; letter-spacing: 0.03em; color: var(--group-accent, var(--lz-muted)); }
.af-item-action { flex-shrink: 0; }
.af-priority--urgent .af-item-title { color: #b91c1c; }
.af-priority--high .af-item-title { color: #c2410c; }
.af-module-strip { margin-bottom: 12px; }
.af-module-followup { margin-bottom: 12px; }
.af-panel-head { position: sticky; top: 0; z-index: 1; }

.panel-section { margin-bottom: 12px; }
.panel-section .panel-title { margin: 0 0 10px; font-size: 13px; font-weight: 700; color: var(--lz-text); }
.ops-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.ops-stat { background: #fafbfc; border: 1px solid var(--lz-border); border-radius: var(--lz-radius-sm); padding: 12px; text-align: center; }
.ops-value { display: block; font-size: 22px; font-weight: 800; color: var(--lz-red); }
.ops-label { display: block; font-size: 11px; color: var(--lz-muted); margin-top: 4px; }
.intel-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 12px; }
.intel-card { background: #fafbfc; border: 1px solid var(--lz-border); border-radius: var(--lz-radius-sm); padding: 10px; }
.intel-value { display: block; font-size: 18px; font-weight: 800; color: var(--lz-text); }
.intel-label { display: block; font-size: 11px; color: var(--lz-muted); }
.login-error { color: var(--lz-red); font-size: 13px; }
.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.data-table th, .data-table td { border-bottom: 1px solid var(--lz-border); padding: 8px 10px; text-align: left; }
.data-table th { background: #fafbfc; font-weight: 700; }
.form-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin-bottom: 12px; }
.form-grid label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; font-weight: 600; }
.form-grid input, .form-grid textarea { padding: 8px 10px; border: 1px solid var(--lz-border); border-radius: var(--lz-radius-sm); font: inherit; }
.checkbox-row { flex-direction: row !important; align-items: center; gap: 8px !important; }
.pg-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 14px; }
.pg-filter-row { display: flex; flex-wrap: wrap; gap: 6px; }
.pg-filter-btn {
  padding: 6px 12px;
  border: 1px solid var(--lz-border);
  border-radius: 999px;
  background: var(--lz-card);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  color: var(--lz-text);
}
.pg-filter-btn.is-active {
  background: var(--lz-red);
  border-color: var(--lz-red);
  color: #fff;
}
.pg-search-input {
  flex: 1;
  min-width: 200px;
  max-width: 360px;
  padding: 8px 12px;
  border: 1px solid var(--lz-border);
  border-radius: var(--lz-radius-sm);
  font: inherit;
}
.pg-status-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}
.pg-status--NEW { background: #dbeafe; color: #1d4ed8; }
.pg-status--ACTIVE { background: #dcfce7; color: #15803d; }
.pg-status--COMPLETED { background: #e0e7ff; color: #4338ca; }
.pg-status--SUPERSEDED { background: #f3f4f6; color: #6b7280; }
.pg-status--CANCELLED { background: #fee2e2; color: #b91c1c; }
.pg-tab-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.pg-tab-btn {
  border: 1px solid var(--lz-border, #ddd);
  background: #fff;
  border-radius: 8px;
  padding: 8px 14px;
  cursor: pointer;
  font-size: 13px;
}
.pg-tab-btn.is-active {
  background: var(--lz-red, #c62828);
  border-color: var(--lz-red, #c62828);
  color: #fff;
}
.pg-ingest-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; margin-bottom: 12px; }
.pg-ingest-toolbar label { font-size: 12px; display: flex; flex-direction: column; gap: 4px; }
.pg-review-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin-top: 12px; }
.pg-limitation { background: #fff8e1; border: 1px solid #ffe082; border-radius: 8px; padding: 10px 12px; font-size: 12px; margin-bottom: 12px; }
.pg-email-integration h3 { margin-top: 0; }
.pg-email-config { display: grid; gap: 12px; margin-bottom: 20px; max-width: 520px; }
.pg-config-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.pg-config-row--stack { flex-direction: column; align-items: flex-start; }
.pg-config-label { font-size: 12px; font-weight: 600; color: #555; min-width: 120px; }
.pg-mailbox-chip {
  display: inline-block;
  background: #f5f5f5;
  border: 1px solid #ddd;
  border-radius: 6px;
  padding: 6px 12px;
  font-size: 13px;
  font-family: ui-monospace, monospace;
}
.pg-contract-map { list-style: none; margin: 4px 0 0; padding: 0; }
.pg-contract-map li {
  font-size: 13px;
  font-family: ui-monospace, monospace;
  padding: 4px 0;
  color: #333;
}
.pg-scan-row { margin-top: 4px; }
.pg-recent-emails h4 { margin: 0 0 8px; font-size: 14px; }
.pg-recent-divider { border-top: 1px solid var(--lz-border, #ddd); margin-bottom: 12px; }
.pg-recent-list { display: flex; flex-direction: column; gap: 10px; }
.pg-recent-item {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-size: 14px;
  line-height: 1.4;
}
.pg-recent-icon { font-weight: 700; width: 16px; text-align: center; flex-shrink: 0; }
.pg-recent-item--ok .pg-recent-icon { color: #2e7d32; }
.pg-recent-item--bad .pg-recent-icon { color: #c62828; }
.pg-recent-item--neutral .pg-recent-icon { color: #757575; }
.pg-recent-label { font-weight: 500; min-width: 110px; }
.pg-recent-wo { color: #555; font-family: ui-monospace, monospace; font-size: 13px; }
.pg-recent-meta { font-size: 11px; color: #888; margin-left: auto; }

.pg-pipeline-legend {
  display: flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 600;
  color: #555; margin-bottom: 12px;
}
.pg-pipe-arrow { color: #999; }
.pg-claim-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.pg-claim-card {
  border: 1px solid var(--lz-border, #ddd); border-radius: 10px; padding: 14px; background: #fff;
}
.pg-claim-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.pg-claim-pipeline { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 8px; }
.pg-stage { display: flex; flex-direction: column; gap: 4px; min-width: 72px; }
.pg-stage-name { font-size: 11px; font-weight: 700; color: #888; text-transform: uppercase; }
.pg-stage-pill {
  display: inline-block; font-size: 12px; padding: 3px 8px; border-radius: 999px;
  background: #f3f4f6; color: #555;
}
.pg-stage-pill--ok { background: #dcfce7; color: #15803d; }
.pg-stage-pill--bad { background: #fee2e2; color: #b91c1c; }
.pg-stage-pill--active { background: #dbeafe; color: #1d4ed8; }
.pg-reject-count { font-size: 12px; color: #b91c1c; margin-bottom: 8px; }

.pg-email-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.pg-email-card {
  border: 1px solid var(--lz-border, #ddd); border-radius: 10px; padding: 14px; background: #fff;
}
.pg-email-card--ok { border-left: 4px solid #2e7d32; }
.pg-email-card--bad { border-left: 4px solid #c62828; }
.pg-email-card--neutral { border-left: 4px solid #9e9e9e; }
.pg-email-card-head { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.pg-email-card-icon { font-weight: 700; font-size: 16px; }
.pg-email-card-wo { margin-left: auto; font-family: ui-monospace, monospace; font-size: 13px; color: #555; }
.pg-email-card-meta { font-size: 12px; color: #444; display: grid; gap: 4px; margin-bottom: 10px; }
.pg-meta-label { font-weight: 600; color: #777; }
.pg-email-card-actions { display: flex; flex-wrap: wrap; gap: 6px; }

.pg-drawer { position: fixed; inset: 0; z-index: 1000; }
.pg-drawer.hidden { display: none; }
.pg-drawer-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.35); }
.pg-drawer-panel {
  position: absolute; top: 0; right: 0; width: min(480px, 100%); height: 100%;
  background: #fff; padding: 20px; overflow-y: auto; box-shadow: -4px 0 24px rgba(0,0,0,.12);
}
.pg-email-preview {
  background: #f8f9fa; border: 1px solid #e5e7eb; border-radius: 8px;
  padding: 12px; font-size: 12px; white-space: pre-wrap; max-height: 240px; overflow: auto;
}
.pg-drawer-actions { display: flex; gap: 8px; margin-top: 12px; }
.pg-timeline { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; }
.pg-timeline-item { display: flex; gap: 10px; align-items: flex-start; }
.pg-timeline-icon { font-weight: 700; width: 18px; }
.pg-timeline-item--ok .pg-timeline-icon { color: #2e7d32; }
.pg-timeline-item--bad .pg-timeline-icon { color: #c62828; }
.pg-timeline-comment { font-size: 12px; color: #555; margin-top: 4px; font-style: italic; }
.pg-settings-form { display: grid; gap: 12px; max-width: 420px; margin-bottom: 12px; }
.pg-toggle-row { display: flex; align-items: center; justify-content: space-between; }
.pg-wo-actions { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }

.pg-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 10px 16px;
  margin: 12px 0;
}
.pg-detail-grid dt { font-size: 11px; color: var(--lz-muted); font-weight: 600; margin: 0; }
.pg-detail-grid dd { margin: 0 0 8px; font-size: 13px; }
.pg-placeholder-card {
  border: 1px dashed var(--lz-border);
  background: #fafbfc;
  border-radius: var(--lz-radius-sm);
  padding: 14px 16px;
}
.data-table tbody tr.pg-row-clickable { cursor: pointer; }
.data-table tbody tr.pg-row-clickable:hover { background: #f8fafc; }
.sch-page-body { display: flex; flex-direction: column; min-height: 0; }
.sch-board-layout {
  display: flex;
  flex: 1;
  min-height: 0;
  gap: 0;
  overflow: hidden;
}
.sch-board-main {
  flex: 1;
  min-width: 0;
  overflow-y: auto;
  padding: 16px 20px;
}
.sch-board-sidebar {
  width: 280px;
  flex-shrink: 0;
  border-left: 1px solid var(--lz-border);
  background: #fafbfc;
  overflow-y: auto;
  padding: 14px 12px;
}
.sch-board-sidebar .section-card { padding: 12px 14px; margin-bottom: 12px; }
.sch-toolbar-card { margin-bottom: 12px; }
.sch-date-label { display: flex; align-items: center; gap: 8px; }
.sch-team-board {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 12px;
  align-items: start;
}
.sch-team-card {
  background: var(--lz-card);
  border: 1px solid var(--lz-border);
  border-radius: var(--lz-radius);
  padding: 12px 14px;
  box-shadow: var(--lz-shadow);
}
.sch-team-card--temp { border-style: dashed; border-color: #94a3b8; }
.sch-team-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}
.sch-team-card-head h4 { margin: 0; font-size: 14px; color: var(--lz-text); }
.sch-team-card-meta { font-size: 11px; color: var(--lz-muted); margin-top: 2px; }
.sch-job-list { list-style: none; margin: 0; padding: 0; }
.sch-job-item {
  border: 1px solid var(--lz-border);
  border-radius: var(--lz-radius-sm);
  padding: 8px 10px;
  margin-bottom: 8px;
  background: #fafbfc;
  cursor: pointer;
}
.sch-job-item:hover { background: #f1f5f9; }
.sch-job-item.is-selected { border-color: var(--lz-red); box-shadow: 0 0 0 1px var(--lz-red-soft); }
.sch-job-time { font-weight: 700; font-size: 12px; color: var(--lz-red); }
.sch-job-wo { font-size: 12px; margin-top: 2px; font-weight: 600; }
.sch-job-contract { font-size: 12px; margin-top: 2px; }
.sch-job-loc { font-size: 12px; margin-top: 2px; color: var(--lz-text); }
.sch-job-type { font-size: 11px; color: var(--lz-muted); margin-top: 2px; }
.sch-job-empty { font-size: 12px; color: var(--lz-muted); margin: 0 0 8px; }
.sch-shift-row { display: flex; align-items: center; gap: 12px; margin: 12px 0; flex-wrap: wrap; }
.sch-sidebar-hint { margin: 0 0 8px; }
.sch-worker-chip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 0;
  font-size: 12px;
  border-bottom: 1px solid var(--lz-border);
}
.sch-movement-item { padding: 8px 0; border-bottom: 1px solid #f1f5f9; }
.sch-movement-item:last-child { border-bottom: 0; }
.lz-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.lz-modal.hidden { display: none; }
.lz-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
}
.lz-modal-dialog {
  position: relative;
  z-index: 1;
  width: min(760px, 100%);
  max-height: calc(100vh - 40px);
  overflow: auto;
  background: var(--lz-card);
  border: 1px solid var(--lz-border);
  border-radius: var(--lz-radius);
  box-shadow: 0 20px 50px rgba(15, 23, 42, 0.18);
  padding: 18px 20px;
}
body.lz-modal-open { overflow: hidden; }
.sch-job-modal .section-head-row h3 { margin: 0; font-size: 16px; color: var(--lz-text); text-transform: none; letter-spacing: 0; }
.sch-job-modal .section-head-row { margin-bottom: 14px; }
.sch-job-modal #btnSchCloseJob { font-size: 20px; line-height: 1; padding: 4px 10px; }
.sch-planner-modal { width: min(720px, 100%); max-height: 92vh; overflow-y: auto; }
.sch-planner-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.sch-planner-head h3 { margin: 0; font-size: 17px; color: var(--lz-red); text-transform: none; letter-spacing: 0; }
.sch-planner-section { margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid #f1f5f9; }
.sch-planner-section:last-of-type { border-bottom: 0; }
.sch-planner-section-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.sch-planner-label { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--lz-muted); margin-bottom: 6px; }
.sch-planner-hint { margin: 0 0 8px; }
.sch-supervisor-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.sch-supervisor-name { margin: 4px 0 0; font-size: 15px; font-weight: 600; color: var(--lz-text); }
.sch-time-presets { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 12px; }
.sch-time-pill {
  border: 1px solid var(--lz-border);
  background: #fff;
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  color: var(--lz-text);
}
.sch-time-pill:hover { border-color: var(--lz-red); color: var(--lz-red); }
.sch-time-pill--accent { border-color: var(--lz-red-soft); background: var(--lz-red-soft); }
.sch-time-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sch-time-select { font-size: 15px; font-weight: 600; padding: 8px 10px; }
.sch-member-select { width: 100%; min-height: 110px; }
.sch-multi-day-rows { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
.sch-multi-day-row {
  display: grid;
  grid-template-columns: 120px 1fr 1fr 1fr 1.2fr;
  gap: 8px;
  align-items: end;
  padding: 10px;
  background: #f8fafc;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
}
.sch-multi-day-label strong { display: block; font-size: 13px; }
.sch-multi-day-row label { font-size: 11px; }
.sch-multi-day-row select, .sch-multi-day-row input { width: 100%; font-size: 12px; }
.wf-photo-ph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--lz-red-soft);
  color: var(--lz-red);
  font-size: 11px;
  font-weight: 700;
  margin-right: 6px;
  vertical-align: middle;
}
.wf-salary-lock, .wf-salary-restricted {
  background: #fef3c7;
  border: 1px solid #fcd34d;
  border-radius: 8px;
  padding: 12px 14px;
}
@media (max-width: 640px) {
  .sch-multi-day-row { grid-template-columns: 1fr; }
}
.wf-page-body { display: flex; flex-direction: column; min-height: 0; }
.wf-team-card { cursor: pointer; }
.wf-team-card--inactive { opacity: 0.65; border-style: dashed; }
.wf-team-card--store { border-color: #94a3b8; background: #f8fafc; }
.wf-team-card-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 12px;
  margin-top: 8px;
}
.wf-team-stat strong { display: block; font-size: 13px; margin-top: 2px; }
.wf-check-label { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.wf-team-modal { width: min(820px, 100%); }
.wf-team-modal h4 { margin: 16px 0 8px; font-size: 14px; color: var(--lz-text); }
.wf-members-section { border-top: 1px solid var(--lz-border); margin-top: 16px; padding-top: 8px; }
.wf-member-toolbar { margin-top: 10px; }
.wf-capacity-item { padding: 8px 0; border-bottom: 1px solid #f1f5f9; }
.wf-capacity-item:last-child { border-bottom: 0; }
.table-wrap { overflow-x: auto; }
.data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.data-table th,
.data-table td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--lz-border);
  text-align: left;
}
.data-table th {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--lz-muted);
}
.section-head-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.btn-sm { padding: 6px 10px; font-size: 12px; }
.feed-list.compact li { padding: 6px 0; }
.section-card {
  background: var(--lz-card);
  border: 1px solid var(--lz-border);
  border-radius: var(--lz-radius);
  padding: 18px 20px;
  box-shadow: var(--lz-shadow);
  margin-bottom: 16px;
}
.section-card h3 {
  margin: 0 0 14px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--lz-muted);
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 8px;
}
.section-card h3 .section-icon {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: var(--lz-red-soft);
  color: var(--lz-red);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.panel-title {
  margin: 0 0 14px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--lz-muted);
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 8px;
}
.action-groups { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.action-group {
  border: 1px solid var(--lz-border);
  border-radius: var(--lz-radius-sm);
  padding: 12px 14px;
  background: #fafbfc;
}
.action-group-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 700;
}
.action-count {
  background: var(--lz-red-soft);
  color: var(--lz-red);
  font-size: 11px;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: 999px;
  min-width: 22px;
  text-align: center;
}
.action-count.zero { background: #f1f5f9; color: var(--lz-muted); }
.quick-links {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px;
}
.quick-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--lz-border);
  border-radius: var(--lz-radius-sm);
  background: #fafbfc;
  color: var(--lz-text);
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.quick-link:hover {
  border-color: #fecaca;
  background: var(--lz-red-soft);
  color: var(--lz-red);
}
.feed-list { margin: 0; padding: 0; list-style: none; }
.feed-list li { padding: 10px 0; border-bottom: 1px solid #f1f5f9; font-size: 12px; line-height: 1.45; }
.feed-list li:last-child { border-bottom: none; }
.feed-meta { color: var(--lz-muted); font-size: 11px; margin-top: 3px; }
.feed-action { font-weight: 600; color: var(--lz-text); }
.feed-empty { color: var(--lz-muted); font-size: 12px; margin: 0; }
.text-link { color: var(--lz-red); font-size: 12px; font-weight: 700; text-decoration: none; }
.text-link:hover { text-decoration: underline; }
.skel { background: #e2e8f0; border-radius: 6px; animation: skel-pulse 1.4s ease-in-out infinite; }
@keyframes skel-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.55; }
}
.skel-block { height: 48px; }
.skel-line { height: 10px; margin-bottom: 8px; }
.settings-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.settings-card {
  border: 1px solid var(--lz-border);
  border-radius: var(--lz-radius-sm);
  padding: 14px;
  background: #fafbfc;
}
.settings-card h4 { margin: 0 0 6px; color: var(--lz-red); font-size: 14px; }
.settings-card p { margin: 0 0 10px; font-size: 12px; color: var(--lz-muted); }

/* Management Settings — admin control centre cards */
.mgmt-settings-main { display: flex; flex-direction: column; gap: 14px; }
.mgmt-settings-intro { margin-bottom: 0; }
.mgmt-settings-quicklinks { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.mgmt-section-head { margin-bottom: 12px; }
.mgmt-section-head h3 { margin: 0 0 4px; }
.mgmt-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 12px;
}
.mgmt-card {
  border: 1px solid var(--lz-border);
  border-radius: var(--lz-radius-sm);
  padding: 14px;
  background: #fafbfc;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.mgmt-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.mgmt-card-head h4 { margin: 0; color: var(--lz-red); font-size: 14px; flex: 1; }
.mgmt-card-desc { margin: 0; font-size: 12px; color: var(--lz-muted); line-height: 1.45; }
.mgmt-card-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.mgmt-action--soon {
  font-size: 11px;
  color: var(--lz-muted);
  background: #eef1f4;
  border-radius: 6px;
  padding: 6px 10px;
}
.mgmt-card-meta {
  margin: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 12px;
  font-size: 11px;
}
.mgmt-card-meta dt { color: var(--lz-muted); font-weight: 600; }
.mgmt-card-meta dd { margin: 0; color: #334155; }
.mgmt-card-status { margin: 0; min-height: 1.2em; font-size: 11px; }
.mgmt-badge {
  font-size: 10px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 999px;
  white-space: nowrap;
}
.mgmt-badge--idle { background: #e2e8f0; color: #475569; }
.mgmt-badge--ok { background: #dcfce7; color: #166534; }
.mgmt-badge--busy { background: #fef3c7; color: #92400e; }

/* WorkPlan module */
.wp-toolbar { flex-wrap: wrap; gap: 8px; align-items: center; margin: 12px 0; }
.wp-list-table tbody tr.wp-row { cursor: pointer; }
.wp-list-table tbody tr.wp-row:hover { background: #f8fafc; }
.wp-row--active { background: #fff5f5 !important; }
.wp-status {
  display: inline-block;
  font-size: 10px;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 999px;
  background: #e2e8f0;
  color: #475569;
}
.wp-status--active { background: #dcfce7; color: #166534; }
.wp-status--completed { background: #dbeafe; color: #1e40af; }
.wp-status--on-hold { background: #fef3c7; color: #92400e; }
.wp-status--draft { background: #f1f5f9; color: #64748b; }
.wp-status--planned { background: #e0e7ff; color: #3730a3; }
.wp-status--cancelled { background: #fee2e2; color: #991b1b; }
.wp-detail-card { margin-top: 12px; }
.wp-detail-tabs { margin: 12px 0; }
.wp-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
  margin: 12px 0;
}
.wp-detail-span { grid-column: 1 / -1; }
.wp-detail-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.wp-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.wp-form-span { grid-column: 1 / -1; }
.wp-link-dl { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.wp-link-dl dt { font-size: 11px; color: var(--lz-muted); font-weight: 600; }
.wp-link-dl dd { margin: 0; }
@media (max-width: 768px) {
  .wp-form-grid, .wp-link-dl { grid-template-columns: 1fr; }
}
@media (max-width: 1100px) { .action-groups { grid-template-columns: 1fr; } }
@media (max-width: 960px) {
  .dashboard-grid { flex-direction: column; }
  .activity-panel, .right-panel { width: 100%; border-left: none; border-top: 1px solid var(--lz-border); }
}
@media (max-width: 768px) {
  .app-shell { flex-direction: column; }
  .sidebar { width: 100%; height: auto; position: relative; max-height: 46vh; }
  .main-header { padding: 12px 16px; }
  .main-content { padding: 14px 16px; }
}

/* Safety — OHS / Management Inspection */
.sf-page-body { display: flex; flex-direction: column; min-height: 0; }
.sf-kpi-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin: 12px 0; }
.sf-kpi { background: #f8fafc; border: 1px solid var(--lz-border); border-radius: 8px; padding: 10px 12px; }
.sf-kpi strong { display: block; font-size: 20px; color: var(--lz-red); margin-top: 4px; }
.sf-drive-notice {
  background: #eff6ff;
  border: 1px solid #93c5fd;
  border-radius: 8px;
  padding: 10px 12px;
  font-size: 12px;
  color: #1e40af;
  margin: 10px 0;
}
.sf-header-grid { margin-bottom: 16px; }
.sf-obs-section { margin-top: 16px; border-top: 1px solid var(--lz-border); padding-top: 12px; }
.sf-obs-table-wrap { max-height: 420px; overflow: auto; }
.sf-obs-table { font-size: 11px; min-width: 1200px; }
.sf-obs-table input, .sf-obs-table select { font-size: 11px; min-width: 90px; }
.sf-photo-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 12px; }
.sf-photo-ph { opacity: 0.75; cursor: not-allowed; }
.sf-photo-cell { white-space: nowrap; }
.sf-photo-thumb { max-width: 48px; max-height: 48px; border-radius: 4px; vertical-align: middle; margin-right: 4px; }
.sf-photo-link { font-size: 11px; }
.sf-photo-pending { font-size: 10px; max-width: 80px; display: inline-block; overflow: hidden; text-overflow: ellipsis; }
.sf-appsheet-notice { background: #f0fdf4; border-color: #86efac; color: #166534; margin-top: 8px; }
.sf-workflow-actions { margin-top: 16px; gap: 8px; flex-wrap: wrap; }
.sf-list-row { cursor: pointer; }
.sf-dash-card { margin-bottom: 16px; }

/* Safety hub module cards */
.sf-module-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
  margin-top: 14px;
}
.sf-module-card {
  display: block;
  border: 1px solid var(--lz-border);
  border-radius: var(--lz-radius-sm);
  padding: 16px;
  background: #fff;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s, box-shadow 0.15s;
  position: relative;
}
.sf-module-card:hover {
  border-color: #cbd5e1;
  box-shadow: var(--lz-shadow);
}
.sf-module-card h4 { margin: 8px 0 6px; font-size: 15px; color: var(--lz-text); }
.sf-card-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 8px;
  border-radius: 999px;
  background: #f1f5f9;
  color: var(--lz-muted);
}
.sf-card-badge--live { background: #dcfce7; color: #166534; }
.sf-card-collection { display: block; margin-top: 8px; font-family: monospace; font-size: 10px; }

/* Mass TBM Live */
.tbm-form-grid { max-width: 720px; }
.tbm-upload-section, .tbm-quiz-prep { margin-top: 16px; }
.tbm-slide-list { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.tbm-slide-thumb { border: 1px solid var(--lz-border); border-radius: 8px; padding: 8px; max-width: 140px; }
.tbm-slide-thumb img { max-width: 120px; max-height: 80px; display: block; }
.tbm-qr-section { margin: 16px 0; text-align: center; }
.tbm-qr-img { max-width: 200px; border-radius: 8px; }
.tbm-quiz-row { border: 1px solid var(--lz-border); border-radius: 8px; padding: 12px; margin-bottom: 10px; }
.tbm-actions-cell { white-space: nowrap; }

.tbm-live-body { background: #0f172a; }
.tbm-live-app { min-height: 100vh; color: #e2e8f0; }
.tbm-live-header {
  display: flex; justify-content: space-between; align-items: flex-start;
  padding: 16px 20px; background: #1e293b; border-bottom: 1px solid #334155;
}
.tbm-live-header h2 { color: #fff; margin: 0; }
.tbm-live-grid { display: grid; grid-template-columns: 1fr 360px; gap: 16px; padding: 16px; min-height: calc(100vh - 80px); }
.tbm-slide-stage {
  background: #000; border-radius: 12px; min-height: 420px;
  display: flex; align-items: center; justify-content: center; overflow: hidden;
}
.tbm-slide-img { max-width: 100%; max-height: 70vh; object-fit: contain; }
.tbm-slide-pdf { width: 100%; height: 70vh; border: 0; }
.tbm-slide-empty { color: #94a3b8; padding: 40px; }
.tbm-slide-controls { display: flex; justify-content: center; align-items: center; gap: 16px; margin-top: 12px; }
.tbm-live-side .section-card { background: #1e293b; border-color: #334155; margin-bottom: 12px; }
.tbm-live-side h4, .tbm-live-side h5 { color: #f8fafc; }
.tbm-attendance-stats { display: flex; gap: 12px; margin-bottom: 12px; }
.tbm-stat-ring { flex: 1; text-align: center; background: #0f172a; border-radius: 8px; padding: 10px; }
.tbm-stat-ring strong { display: block; font-size: 24px; color: #22c55e; }
.tbm-stat-ring--pct strong { color: #38bdf8; }
.tbm-latest-checkin { min-height: 24px; color: #fbbf24; font-weight: 600; }
.tbm-checkin-flash { animation: tbmFlash 1.2s ease; }
@keyframes tbmFlash { 0%,100% { opacity: 1; } 50% { opacity: 0.3; transform: scale(1.02); } }
.tbm-qr-wrap { text-align: center; margin: 12px 0; }
.tbm-qr-wrap img { background: #fff; padding: 8px; border-radius: 8px; max-width: 160px; }
.tbm-attendance-list { list-style: none; margin: 0; padding: 0; max-height: 220px; overflow-y: auto; }
.tbm-att-row { padding: 8px 0; border-bottom: 1px solid #334155; }
.tbm-leaderboard { margin: 0; padding-left: 20px; }
.tbm-leaderboard li { display: flex; gap: 8px; align-items: center; padding: 6px 0; }
.tbm-leader-winner { color: #fbbf24; font-weight: 700; }
.tbm-winner-banner { margin-top: 12px; padding: 10px; background: #422006; border-radius: 8px; color: #fde68a; }

.tbm-worker-body { background: #f1f5f9; min-height: 100vh; margin: 0; }
.tbm-worker-app { max-width: 480px; margin: 0 auto; padding: 16px; }
.tbm-worker-header { text-align: center; margin-bottom: 20px; }
.tbm-worker-header h1 { margin: 0 0 8px; color: var(--lz-red); font-size: 22px; }
.tbm-worker-card {
  background: #fff; border-radius: 12px; padding: 20px;
  box-shadow: var(--lz-shadow); margin-bottom: 16px;
}
.tbm-worker-card label { display: block; margin-bottom: 12px; font-size: 13px; font-weight: 600; }
.tbm-worker-card input { width: 100%; margin-top: 4px; }
.btn-block { width: 100%; margin-top: 8px; }
.tbm-worker-ok { border-left: 4px solid #22c55e; }
.tbm-quiz-q { border: 0; margin-bottom: 16px; padding: 0; }
.tbm-quiz-opt { display: block; font-weight: 400; margin: 8px 0; }
@media (max-width: 960px) {
  .tbm-live-grid { grid-template-columns: 1fr; }
}

.sic-tab-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.tbm-audience-panel, .tbm-picker-wrap { margin-top: 12px; }
.tbm-picker-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 6px; max-height: 200px; overflow-y: auto; border: 1px solid var(--lz-border); padding: 8px; border-radius: 8px; }
.tbm-picker-item { font-size: 12px; font-weight: 400; display: block; }
.tbm-expected-list { margin-top: 10px; }
.tbm-quiz-gen-grid { max-width: 640px; }
.tbm-external-form { display: grid; gap: 8px; max-width: 400px; }

.sic-expiry-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; margin-bottom: 16px; }
.sic-stat-card { text-align: center; padding: 12px; border-radius: 8px; border: 1px solid var(--lz-border); }
.sic-stat-card strong { display: block; font-size: 22px; }
.sic-stat--valid strong { color: #16a34a; }
.sic-stat--expiring strong { color: #d97706; }
.sic-stat--expired strong { color: #dc2626; }
.sic-stat--pending strong { color: #64748b; }

.sic-status { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 12px; font-weight: 600; }
.sic-status--valid { background: #dcfce7; color: #166534; }
.sic-status--expiring { background: #fef3c7; color: #92400e; }
.sic-status--expired { background: #fee2e2; color: #991b1b; }
.sic-status--not_completed, .sic-status--pending { background: #f1f5f9; color: #475569; }
.sic-profile-status { padding: 12px; border-radius: 8px; margin-bottom: 16px; }
.sic-profile-dates { margin-top: 12px; }
}

.sf-placeholder-panel .feed-list.compact { margin: 8px 0 0; padding-left: 18px; }
.sf-placeholder-panel .feed-list.compact li { padding: 4px 0; border: 0; }

/* Permission flags editor */
.perm-flags-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 8px;
  margin: 12px 0 16px;
}
.perm-flag-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 10px;
  align-items: start;
  padding: 10px 12px;
  border: 1px solid var(--lz-border);
  border-radius: 8px;
  background: #fafbfc;
  cursor: pointer;
}
.perm-flag-row input { grid-row: span 2; margin-top: 2px; }
.perm-flag-row code { grid-column: 2; font-size: 10px; }

/* Daily Records */
.dr-page-body { display: flex; flex-direction: column; min-height: 0; }
.dr-date-label { display: inline-flex; flex-direction: column; gap: 4px; }
.dr-header-card { margin-bottom: 14px; background: #f8fafc; }
.dr-header-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
}
.dr-header-field strong { display: block; margin-top: 4px; font-size: 14px; }
.dr-sections-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 12px;
}
.dr-section-card { margin: 0; }
.dr-drive-notice {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 8px;
  background: #eff6ff;
  border: 1px solid #93c5fd;
  color: #1e40af;
  font-size: 12px;
}
.dr-list-row { cursor: pointer; }
.dr-range-toolbar { flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.dr-summary-host { margin: 12px 0; }
.dr-summary-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: stretch;
}
.dr-summary-chip {
  display: inline-flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--lz-border);
  background: #fff;
  min-width: 72px;
}
.dr-summary-chip strong { font-size: 18px; color: var(--lz-text); }
.dr-summary-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--lz-muted); }
.dr-summary-chip--total { border-color: var(--lz-red-soft); background: #fef2f2; }
.dr-summary-chip--warn strong { color: #b45309; }
.dr-summary-chip.is-active,
button.dr-summary-chip.is-active {
  border-color: var(--lz-red);
  box-shadow: 0 0 0 1px var(--lz-red-soft);
}

/* Status summary cards (shared filter UX) */
.status-summary-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 14px;
}
.status-summary-card,
button.status-summary-card {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--lz-border);
  background: #fff;
  min-width: 72px;
  cursor: pointer;
  font: inherit;
  color: inherit;
  text-align: left;
}
.status-summary-card strong { font-size: 18px; color: var(--lz-text); }
.status-summary-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--lz-muted); }
.status-summary-card.is-active {
  border-color: var(--lz-red);
  background: #fef2f2;
  box-shadow: 0 0 0 1px var(--lz-red-soft);
}
.ctr-status-summary { margin-bottom: 12px; }

/* Dashboard action summary cards */
.dash-action-cards {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.dash-action-card {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 12px 16px;
  border-radius: 10px;
  border: 1px solid var(--lz-border);
  background: #fff;
  min-width: 100px;
  cursor: pointer;
  font: inherit;
  color: inherit;
}
.dash-action-card strong { font-size: 22px; color: var(--lz-red); }
.dash-action-label { font-size: 11px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--lz-muted); }
.dash-action-card.is-active {
  border-color: var(--lz-red);
  background: #fef2f2;
}

/* Announcements */
.ann-strip-urgent { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.ann-strip-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin-bottom: 8px; }
.ann-strip-card {
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--lz-border);
  background: #fafafa;
}
.ann-list { display: flex; flex-direction: column; gap: 12px; }
.ann-card {
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid var(--lz-border);
  background: #fff;
}
.ann-card-head { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 6px; }
.ann-type-tag { font-size: 10px; text-transform: uppercase; color: var(--lz-muted); }
.ann-pin, .ann-priority-tag { font-size: 10px; padding: 2px 6px; border-radius: 4px; background: #fef3c7; color: #92400e; }
.ann-priority--urgent { border-color: #fca5a5; background: #fef2f2; }
.ann-body { font-size: 13px; margin: 6px 0; white-space: pre-wrap; }
.ann-body-preview { font-size: 12px; margin: 4px 0 0; color: var(--lz-muted); }
button.sf-kpi {
  cursor: pointer;
  border: 1px solid var(--lz-border);
  background: #fff;
  font: inherit;
  text-align: left;
}
button.sf-kpi.is-active { border-color: var(--lz-red); background: #fef2f2; }

.dr-workflow-host { margin-bottom: 14px; }
.dr-workflow-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding: 10px 12px;
  border-radius: 8px;
  background: #f8fafc;
  border: 1px solid var(--lz-border);
}
.dr-wf-status { margin-left: auto; }
.dr-editor-table-wrap { overflow-x: auto; margin-bottom: 8px; }
.dr-editor-table .dr-inp {
  width: 100%;
  min-width: 60px;
  font-size: 12px;
  padding: 4px 6px;
  border: 1px solid var(--lz-border);
  border-radius: 4px;
}
.dr-editor-table .dr-inp-time { max-width: 90px; }
.dr-editor-actions { display: flex; gap: 8px; flex-wrap: wrap; }

/* Scheduler calendar */
.sch-calendar-host { margin-bottom: 16px; }
.sch-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}
.sch-cal-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  min-height: 120px;
  padding: 8px 10px;
  border: 1px solid var(--lz-border);
  border-radius: 8px;
  background: #fff;
  text-align: left;
  cursor: pointer;
  font: inherit;
  color: inherit;
}
.sch-cal-cell:hover { border-color: var(--lz-red); background: #fef2f2; }
.sch-cal-cell--pad { visibility: hidden; pointer-events: none; border: 0; background: transparent; min-height: 0; }
.sch-cal-cell--today { box-shadow: 0 0 0 2px var(--lz-red-soft); }
.sch-cal-date { font-weight: 700; font-size: 12px; color: var(--lz-red); }
.sch-cal-dow { font-size: 10px; color: var(--lz-muted); margin-bottom: 4px; }
.sch-cal-stat { font-size: 11px; line-height: 1.35; }
.sch-cal-stat--muted { color: var(--lz-muted); }
.sch-cal-stat--released { color: #2563eb; }
.sch-cal-stat--done { color: #059669; }
.sch-cal-stat--warn { color: #b45309; }
.sch-cal-stat--ok { color: #047857; }
@media (max-width: 900px) {
  .sch-cal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Alignment hosted */
.aln-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
  margin-top: 12px;
}

/* Engineering schematic editor */
.sch-layout { display: flex; flex-direction: column; gap: 12px; min-height: 0; flex: 1; }
.sch-toolbar { flex-wrap: wrap; gap: 8px; align-items: center; }
.sch-toolbar-divider { width: 1px; height: 24px; background: var(--lz-border); margin: 0 4px; }
.sch-source-card { padding: 12px 14px; }
.sch-source-pane--inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 8px 0 0;
}
.sch-prop-inline { font-size: 12px; display: inline-flex; align-items: center; gap: 6px; }
.sch-draw-area {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  gap: 12px;
  min-height: calc(100vh - 280px);
  align-items: stretch;
}
.sch-workspace {
  display: grid;
  grid-template-columns: minmax(200px, 240px) minmax(0, 1fr) minmax(240px, 300px);
  gap: 12px;
  min-height: calc(100vh - 220px);
  align-items: stretch;
}
.sch-workspace--draw {
  grid-template-columns: minmax(0, 1fr) minmax(260px, 320px);
  min-height: calc(100vh - 340px);
}
.sch-top-insert-bar {
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sch-insert-meta-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
  margin-bottom: 4px;
}
.sch-insert-meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
}
.sch-insert-meta-label { color: var(--lz-muted); font-weight: 600; }
.sch-active-line-label { font-size: 12px; font-weight: 700; color: var(--lz-red); }
.sch-size-row-label { font-size: 10px; font-weight: 700; color: var(--lz-muted); text-transform: uppercase; min-width: 36px; }
.sch-bq-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.sch-bq-group-title { margin: 0 0 8px; font-size: 12px; font-weight: 700; color: var(--lz-red); }
.sch-bq-list { margin: 0; padding-left: 18px; font-size: 13px; }
.sch-mat-row--compact { padding: 8px 0; border-bottom: 1px solid var(--lz-border); }
.sch-mat-row-main { display: flex; align-items: center; gap: 8px; }
.sch-mat-mini-sym { flex-shrink: 0; }
.sch-mat-actions--compact { display: flex; gap: 4px; margin-top: 6px; flex-wrap: wrap; }
.sch-edit-type-grid { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.sch-mat-pick-row--brand strong { font-size: 15px; color: var(--lz-red); }
.sch-node--builtin .sch-builtin-symbol { pointer-events: all; }
.sch-turn-group { gap: 4px; }
.sch-turn-btn { min-width: 64px; height: 26px; font-size: 11px; }
.sch-turn-btn.is-active {
  border-color: var(--lz-red);
  background: var(--lz-red-soft);
  color: var(--lz-red);
}
.sch-source-inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--lz-border);
}
.sch-source-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--lz-red);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.sch-modal-card--sm { max-width: 360px; }
.sch-elbow-options { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.sch-elbow-opt-btn {
  width: 100%;
  text-align: left;
  padding: 10px 12px;
  border: 1px solid var(--lz-border);
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
  font-size: 13px;
}
.sch-elbow-opt-btn:hover { border-color: var(--lz-red); background: #fef2f2; }
.sch-mat-group-head {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 6px 0;
  border: 0;
  background: none;
  cursor: pointer;
  text-align: left;
}
.sch-mat-group-head .sch-mat-group-chevron { font-size: 10px; color: var(--lz-muted); }
.sch-mat-group.is-collapsed .sch-mat-group-body { display: none; }
.sch-mat-badge--drawn { background: #dcfce7; color: #166534; }
.sch-mat-badge--needs { background: #fef3c7; color: #92400e; }
.sch-mat-badge--dr-only { background: #f1f5f9; color: #475569; }
.sch-mat-badge--drawing-only { background: #dbeafe; color: #1d4ed8; }
.sch-mat-row--drawn { border-left: 3px solid #22c55e; }
.sch-mat-row--needs { border-left: 3px solid #f59e0b; }
.sch-node--vertical-elbow .sch-vertical-marker { stroke: #64748b; stroke-width: 2; fill: none; }
.sch-left-panel, .sch-right-panel {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 12px;
  overflow: hidden;
}
.sch-left-section { margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid var(--lz-border); }
.sch-left-section:last-child { border-bottom: 0; margin-bottom: 0; }
.sch-panel-title { margin: 0 0 10px; font-size: 13px; font-weight: 700; color: var(--lz-red); text-transform: uppercase; letter-spacing: 0.04em; }
.sch-source-tabs--compact { margin-bottom: 8px; }
.sch-source-pane--stack { display: flex; flex-direction: column; gap: 8px; align-items: stretch; }
.sch-center-stack { display: flex; flex-direction: column; gap: 12px; min-height: 0; min-width: 0; }
.sch-right-selected { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--lz-border); }
.sch-mat-warnings { padding: 8px 10px; margin-bottom: 10px; border-radius: 8px; background: #fffbeb; border: 1px solid #fcd34d; font-size: 12px; }
.sch-mat-badge { font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 999px; margin-left: auto; }
.sch-mat-badge--ok { background: #dcfce7; color: #166534; }
.sch-mat-badge--warn { background: #fef3c7; color: #92400e; }
.sch-mat-row--placed { border-left: 3px solid #22c55e; }
.sch-mat-row--unplaced { border-left: 3px solid #f59e0b; }
.sch-bottom-dock {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 0;
  overflow: hidden;
}
.sch-bottom-dock[data-dock-height="collapse"] { flex: 0 0 auto; }
.sch-bottom-dock[data-dock-height="collapse"] .sch-dock-body { display: none; }
.sch-bottom-dock[data-dock-height="half"] { flex: 0 0 220px; max-height: 40vh; }
.sch-bottom-dock[data-dock-height="full"] { flex: 1 1 50vh; max-height: 60vh; }
.sch-dock-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  border-bottom: 1px solid var(--lz-border);
  background: #f8fafc;
  flex-wrap: wrap;
}
.sch-dock-tabs { margin: 0; flex-wrap: wrap; }
.sch-dock-resize { display: flex; gap: 4px; }
.sch-dock-body { flex: 1; min-height: 0; overflow: auto; padding: 10px; }
.sch-dock-pane { min-height: 120px; }
.sch-dock-table-wrap { max-height: 180px; overflow: auto; }
.sch-dock-totals { margin-bottom: 8px; }
.sch-dock-ok { color: #059669; }
.sch-validation-list { list-style: none; margin: 0; padding: 0; }
.sch-validation-item { margin-bottom: 6px; }
.sch-validation-item--warn button { color: #b45309; border-color: #fcd34d; }
.sch-node--pipe .sch-pipe-bar { opacity: 0.95; }
.sch-node--pipe.sch-node--selected .sch-pipe-bar { stroke: #f59e0b !important; stroke-width: 2 !important; }
.sch-fusion-totals { display: flex; flex-wrap: wrap; gap: 16px; margin-bottom: 12px; font-size: 13px; }
.sch-fusion-ok-text { color: #166534; }
.sch-fusion-miss-text { color: #b45309; }
.sch-fusion-missing { margin-bottom: 12px; }
.sch-fusion-miss-item { color: #92400e; font-weight: 600; }
.sch-fusion-badge { font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: 999px; }
.sch-fusion-badge--ok { background: #dcfce7; color: #166534; }
.sch-fusion-badge--warn { background: #fef3c7; color: #92400e; }
.sch-fusion-miss td { background: #fffbeb; }
.sch-canvas-card { padding: 0; overflow: hidden; display: flex; flex-direction: column; min-height: 0; }
.sch-mat-drawer {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  padding: 12px;
  transition: width 0.2s, min-width 0.2s, padding 0.2s;
}
.sch-mat-drawer--collapsed {
  min-width: 36px;
  width: 36px;
  padding: 8px 4px;
  overflow: hidden;
}
.sch-mat-drawer--collapsed .sch-right-tabs,
.sch-mat-drawer--collapsed .sch-right-pane,
.sch-mat-drawer--collapsed .pg-toolbar { display: none; }
.sch-mat-drawer-toggle {
  position: absolute;
  left: -14px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 28px;
  height: 48px;
  border: 1px solid var(--lz-border);
  border-radius: 999px;
  background: #fff;
  color: var(--lz-red);
  font-size: 12px;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
}
.sch-mat-drawer-toggle:hover { background: var(--lz-red-soft); border-color: var(--lz-red); }
.sch-source-tabs, .sch-right-tabs { margin-bottom: 10px; flex-wrap: wrap; }
.sch-source-pane, .sch-right-pane { padding: 4px 0; min-height: 0; overflow: auto; }
.sch-node--grouped .sch-node-hit { stroke: transparent; }
.sch-canvas-host--conn-graph .sch-node--grouped .sch-node-hit { stroke: #818cf8; stroke-width: 1; }
.sch-node--selected.sch-node--grouped .sch-node-hit { stroke: #2563eb; }
.sch-node--joined .sch-node-hit,
.sch-node--joined .sch-pipe-bar { /* joined = physical touch, no overlay */ }
.sch-canvas-host--conn-graph .sch-node--joined .sch-node-hit { stroke: #16a34a; stroke-width: 1; }
.sch-canvas-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
  padding: 8px 10px;
  border-bottom: 1px solid var(--lz-border);
  background: #f8fafc;
}
.sch-icon-btn {
  min-width: 36px;
  height: 36px;
  padding: 0 8px;
  border: 1px solid var(--lz-border);
  border-radius: 6px;
  background: #fff;
  font-size: 15px;
  cursor: pointer;
  line-height: 1;
}
.sch-icon-btn:hover { border-color: var(--lz-red); background: #fef2f2; }
.sch-icon-btn.is-active { border-color: var(--lz-red); background: var(--lz-red-soft); box-shadow: inset 0 0 0 1px var(--lz-red); }
.sch-canvas-wrap { flex: 1; min-height: 480px; display: flex; flex-direction: column; position: relative; }
.sch-view-controls {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 6;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  padding: 6px 10px;
  border: 1px solid var(--lz-border);
  border-radius: 8px;
  background: rgba(255,255,255,0.95);
  box-shadow: 0 1px 4px rgba(0,0,0,0.08);
  max-width: calc(100% - 16px);
}
.sch-view-toggle {
  font-size: 11px;
  color: var(--lz-text);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
}
.sch-view-toggle--dev { color: var(--lz-muted); font-size: 10px; }
.sch-canvas-card.sch-screenshot-mode .sch-canvas-toolbar { display: none; }
.sch-canvas-card.sch-screenshot-mode .sch-view-controls .sch-view-toggle,
.sch-canvas-card.sch-screenshot-mode .sch-view-controls #btnSchScreenshot { display: none; }
.sch-canvas-card.sch-screenshot-mode .sch-view-controls #btnSchScreenshotExit { display: inline-flex !important; }
.sch-canvas-card.sch-screenshot-mode + .sch-bottom-dock { display: none; }
.sch-toolbar-card--compact { padding: 8px 14px; margin-bottom: 0; }
.sch-materials-list { max-height: calc(100vh - 360px); overflow: auto; flex: 1; min-height: 0; }
.sch-mat-row {
  padding: 10px;
  border: 1px solid var(--lz-border);
  border-radius: 8px;
  margin-bottom: 8px;
  background: #fff;
}
.sch-mat-row--warn { border-color: #fcd34d; background: #fffbeb; }
.sch-mat-row-head { display: flex; align-items: center; gap: 6px; font-size: 13px; }
.sch-mat-warn { color: #b45309; }
.sch-mat-meta { font-size: 11px; color: var(--lz-muted); margin-top: 4px; }
.sch-mat-actions { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.sch-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.sch-modal.hidden { display: none; }
.sch-modal-backdrop { position: absolute; inset: 0; background: rgba(15,23,42,0.45); }
.sch-modal-card { position: relative; z-index: 1; width: min(920px, 100%); max-height: 90vh; overflow: auto; }
.sch-dr-filters { flex-wrap: wrap; gap: 10px; margin-bottom: 12px; }
.sch-dr-table-wrap { max-height: 360px; overflow: auto; }
.sch-node--abandon .sch-node-hit { stroke-dasharray: 4 4; stroke: #6b7280; }
.sch-canvas-host {
  min-height: 520px;
  height: 100%;
  background: #ffffff;
  border-radius: 8px;
  position: relative;
  overflow: hidden;
  border: 1px solid #e2e8f0;
}
.sch-svg { display: block; cursor: crosshair; background: #ffffff; }
.sch-grid-line { stroke: #e5e7eb; stroke-width: 1; }
.sch-grid-line--major { stroke: #cbd5e1; stroke-width: 1; }
.sch-node-hit { fill: transparent; stroke: transparent; cursor: move; }
.sch-node--selected .sch-node-hit,
.sch-node--selected .sch-pipe-bar {
  stroke: #2563eb !important;
  stroke-width: 2 !important;
}
.sch-node--selected .sch-node-hit { fill: rgba(37,99,235,0.06); }
.sch-node--missing-icon .sch-node-icon { opacity: 0.35; }
.sch-node--existing .sch-node-hit { stroke-dasharray: 4 3; stroke: #64748b; }
.sch-node-label { fill: #334155; font-size: 10px; font-family: system-ui, sans-serif; pointer-events: none; }
.sch-edge--debug { stroke: #94a3b8; stroke-width: 1; stroke-dasharray: 4 4; opacity: 0.7; }
.sch-connect-point--std { fill: #f97316; stroke: #c2410c; stroke-width: 1; cursor: crosshair; opacity: 0.9; }
.sch-connect-point--branch { fill: #9333ea; stroke: #6b21a8; stroke-width: 1; cursor: crosshair; opacity: 0.9; }
.sch-connect-point:hover { fill: #fbbf24; stroke: #b45309; }
.sch-connect-label {
  fill: #64748b;
  font-size: 9px;
  font-family: system-ui, sans-serif;
  opacity: 0;
}
.sch-canvas-host--conn-labels .sch-connect-label--visible,
.sch-connect-label--visible { opacity: 1; fill: #475569; }
.sch-canvas-host--no-anchors .sch-connect-point,
.sch-canvas-host--no-anchors .sch-connect-label { display: none; }
.sch-canvas-host--no-labels .sch-node-label { display: none; }
.sch-canvas-host--screenshot .sch-node--selected .sch-node-hit,
.sch-canvas-host--screenshot .sch-node--selected .sch-pipe-bar {
  stroke: transparent !important;
  fill-opacity: 1;
}
.sch-set-anchor-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-end;
  margin: 8px 0;
}
.sch-set-anchor-rename { margin: 0; min-width: 140px; }
.sch-prop { display: block; margin-bottom: 10px; font-size: 12px; color: var(--lz-muted); }
.sch-prop input, .sch-prop textarea, .sch-prop select { display: block; width: 100%; margin-top: 4px; }
.sch-source-radios { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; font-size: 13px; }
.sch-source-block { margin-top: 8px; }
.sch-warnings { margin-top: 8px; padding: 10px; border-radius: 8px; background: #fffbeb; border: 1px solid #fcd34d; }
.sch-warn-title { margin: 0 0 6px; font-weight: 700; color: #92400e; }
.sch-hint { margin-top: 12px; }

.sch-set-layout {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(320px, 420px);
  gap: 16px;
  align-items: start;
}
.sch-set-layout--tabs { display: flex; flex-direction: column; grid-template-columns: unset; }
.sch-set-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.sch-set-tab {
  border: 1px solid var(--lz-border, #e2e8f0);
  background: #fff;
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.sch-set-tab.is-active { background: var(--lz-red, #dc2626); color: #fff; border-color: var(--lz-red, #dc2626); }
.sch-set-pane.hidden { display: none; }
.sch-set-split { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; min-height: 0; width: 100%; }
.sch-set-form--grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.sch-prop--full { grid-column: 1 / -1; }
.sch-svg-textarea { font-family: ui-monospace, monospace; font-size: 12px; min-height: 120px; resize: vertical; }
.sch-set-form-actions { display: flex; gap: 8px; margin-top: 12px; }
.sch-set-save-status { padding: 0 4px; }
.sch-sym-preview-host {
  background: #1a1f2e;
  border-radius: 8px;
  padding: 8px;
  margin: 12px 0;
  min-height: 120px;
}
.sch-sym-preview-svg { display: block; }
.sch-sym-anchor-hit { fill: #f97316; stroke: #fff; stroke-width: 2px; cursor: grab; }
.sch-sym-anchor--selected .sch-sym-anchor-hit { fill: #ea580c; }
.sch-sym-anchor-label { fill: #fdba74; font-size: 10px; font-weight: 700; pointer-events: none; }
.sch-set-thumb-cell svg { display: block; }
.sch-map-preview-empty { color: #92400e; padding: 24px; text-align: center; }
.sch-node-label--warn { fill: #dc2626; font-size: 10px; font-weight: 700; }
@media (max-width: 960px) {
  .sch-set-split { grid-template-columns: 1fr; }
}
.sch-set-detail-card { min-width: 0; }
.sch-set-form { margin-top: 12px; }
.sch-set-filter-check { font-size: 12px; display: flex; align-items: center; gap: 6px; }
.sch-set-row--warn { background: #fffbeb; }
.sch-color-swatch { display: inline-block; width: 18px; height: 18px; border-radius: 4px; border: 1px solid var(--lz-border); vertical-align: middle; }
.sch-set-anchor-canvas {
  background: #1a1f2e;
  border-radius: 8px;
  min-height: 160px;
  cursor: crosshair;
}
.sch-set-svg-bg { fill: #1a1f2e; }
.sch-anchor-hit { fill: #22c55e; stroke: #14532d; stroke-width: 1; cursor: move; }
.sch-anchor--selected .sch-anchor-hit { fill: #f59e0b; }
.sch-anchor-label { fill: #e2e8f0; font-size: 10px; font-family: system-ui, sans-serif; pointer-events: none; }
.sch-symbol-editor { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--lz-border); }
.sch-symbol-tools { flex-wrap: wrap; gap: 6px; align-items: center; }
.sch-prop-inline { font-size: 12px; display: inline-flex; align-items: center; gap: 4px; }
.sch-set-table-wrap { max-height: calc(100vh - 240px); overflow: auto; }
.sch-set-thumb { width: 36px; height: 24px; object-fit: contain; background: #1a1f2e; border-radius: 4px; }
.sch-set-row { cursor: pointer; }
.sch-set-row--active { background: #fef2f2; }
.sch-set-preview {
  padding: 16px;
  background: #1a1f2e;
  border-radius: 8px;
  text-align: center;
  margin-bottom: 12px;
}
.sch-set-preview img { max-width: 120px; max-height: 80px; }
.sch-set-checks { display: flex; flex-direction: column; gap: 6px; margin: 10px 0; font-size: 13px; }

/* Digital alignment canvas */
.aln-page-body { display: flex; flex-direction: column; min-height: 0; }
.aln-layout { display: flex; flex-direction: column; gap: 12px; flex: 1; }
.aln-workspace {
  display: grid;
  grid-template-columns: minmax(240px, 300px) minmax(0, 1fr) minmax(220px, 280px);
  gap: 12px;
  min-height: calc(100vh - 240px);
}
.aln-panel { min-height: 0; overflow: auto; }
.aln-panel--canvas { padding: 0; overflow: hidden; }
.aln-canvas-host {
  min-height: 520px;
  height: 100%;
  background: #0f172a;
  border-radius: 8px;
  overflow: hidden;
  position: relative;
}
.aln-canvas-wrap { width: 100%; height: 100%; min-height: 520px; overflow: hidden; position: relative; cursor: grab; }
.aln-stage { transform-origin: 0 0; position: relative; min-width: 100%; min-height: 100%; }
.aln-drawing-img { max-width: none; display: block; user-select: none; }
.aln-overlay-svg { position: absolute; inset: 0; pointer-events: none; }
.aln-trace-line, .aln-trace-poly { stroke: #22d3ee; stroke-width: 3; }
.aln-trace-draft { stroke-dasharray: 6 4; opacity: 0.8; }
.aln-trace-node { fill: #f97316; stroke: #fff; stroke-width: 1; }
.aln-canvas-placeholder {
  min-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  font-size: 14px;
  padding: 24px;
}
.aln-tools-row { margin-top: 8px; }
.aln-metrics-list { margin: 0; padding-left: 18px; font-size: 13px; }
.aln-ai-note { margin-top: 12px; font-size: 11px; color: var(--lz-muted); }
.aln-meta-form { margin: 12px 0; }
.data-table tr.is-selected { background: #fef2f2; }

@media (max-width: 1100px) {
  .sch-draw-area, .aln-workspace, .sch-set-layout {
    grid-template-columns: 1fr;
  }
  .sch-canvas-host, .aln-canvas-host { min-height: 360px; }
}
.ctr-tab-row { flex-wrap: wrap; }
.ctr-list-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 16px; }
.ctr-show-completed { font-size: 13px; display: flex; align-items: center; gap: 6px; }
.ctr-group-cards { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.ctr-group-card {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
  min-width: 140px; padding: 12px 16px; border: 1px solid var(--lz-border, #e2e8f0);
  border-radius: 10px; background: #fff; cursor: pointer; text-align: left;
}
.ctr-group-card:hover { border-color: var(--lz-red, #dc2626); }
.ctr-group-card.is-expanded { border-color: var(--lz-red, #dc2626); background: #fef2f2; }
.ctr-group-card strong { font-size: 14px; color: var(--lz-red, #dc2626); }
.ctr-group-hidden { color: #92400e; font-size: 11px; }
.ctr-group-list { margin-bottom: 16px; }
.ctr-compact-table td, .ctr-compact-table th { padding: 8px 10px; font-size: 13px; }
.ctr-row-completed { opacity: 0.65; background: #f8fafc; color: #64748b; }
.ctr-detail-drawer {
  margin-top: 16px; padding: 16px; border: 1px solid var(--lz-border, #e2e8f0);
  border-radius: 12px; background: #fff; box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.ctr-drawer-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.ctr-assign-pickers { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.ctr-assign-col h4 { margin: 0 0 8px; font-size: 13px; }
.ctr-multi-select { width: 100%; min-height: 160px; margin: 8px 0; font-size: 13px; }
.ctr-bulk-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 12px; padding: 10px; background: #f8fafc; border-radius: 8px; }
.ctr-assign-table select.pg-search-input { min-width: 120px; padding: 4px 6px; font-size: 12px; }
.ctr-row-draft { background: #fffbeb; }
@media (max-width: 900px) {
  .ctr-assign-pickers { grid-template-columns: 1fr; }
}
.ctr-chart-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.ctr-stat-card {
  padding: 12px 14px;
  border-radius: 8px;
  border: 1px solid var(--lz-border);
  background: #f8fafc;
}
.ctr-stat-card strong { display: block; font-size: 22px; margin-top: 4px; }
.lz-backend-notice {
  padding: 8px 10px;
  border-radius: 6px;
  background: #fffbeb;
  border: 1px solid #fcd34d;
  color: #92400e;
  font-size: 12px;
}

/* Store */
.store-page-body { display: flex; flex-direction: column; min-height: 0; }
.store-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
  gap: 16px;
  align-items: start;
}
.store-main-panel { min-width: 0; }
.store-history-panel { min-width: 0; max-height: calc(100vh - 160px); overflow: auto; }
.store-history-wrap { max-height: 420px; overflow: auto; }
.store-action-row { display: flex; flex-wrap: wrap; gap: 8px; }
.store-item-row { cursor: pointer; }
.store-item-row.store-row--selected { background: #fef2f2; }
.sch-detail-actions { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 960px) {
  .store-layout { grid-template-columns: 1fr; }
}

/* Business foundation modules */
.biz-page-body { display: flex; flex-direction: column; min-height: 0; }
.biz-tab-row { flex-wrap: wrap; margin: 12px 0; }
.biz-toolbar { margin: 10px 0; }
.biz-kpi-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; margin: 12px 0; }
.biz-kpi { background: #f8fafc; border: 1px solid var(--lz-border); border-radius: 8px; padding: 10px 12px; }
.biz-kpi strong { display: block; font-size: 20px; color: var(--lz-red); margin-top: 4px; }

/* Quotation — Xero-style editor */
.qt-editor { display: flex; flex-direction: column; gap: 12px; }
.qt-editor-head { margin-bottom: 4px; }
.qt-editor-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.qt-editor-tabs { margin: 0; }
.qt-editor-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  gap: 16px;
  align-items: start;
}
.qt-editor-main { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.qt-card { padding: 14px 16px; }
.qt-card-title { margin: 0 0 12px; font-size: 14px; color: var(--lz-text); text-transform: uppercase; letter-spacing: 0.04em; }
.qt-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 10px 14px;
}
.qt-form-grid label { font-size: 12px; color: var(--lz-muted); }
.qt-form-grid input, .qt-form-grid select { display: block; width: 100%; margin-top: 4px; }
.qt-span-2 { grid-column: span 2; }
.qt-block-label { display: block; font-size: 12px; color: var(--lz-muted); margin-bottom: 10px; }
.qt-block-label textarea { display: block; width: 100%; margin-top: 4px; }
.qt-summary-card { position: sticky; top: 12px; }
.qt-summary-dl { margin: 0; }
.qt-summary-dl div { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid #f1f5f9; font-size: 13px; }
.qt-summary-dl dt { color: var(--lz-muted); margin: 0; }
.qt-summary-dl dd { margin: 0; font-weight: 600; }
.qt-summary-total { font-size: 15px; color: var(--lz-red); border-top: 2px solid var(--lz-border); margin-top: 6px; padding-top: 8px; }
.qt-line-table-wrap { overflow-x: auto; }
.qt-line-table input.pg-search-input, .qt-line-table select.pg-search-input { min-width: 64px; font-size: 12px; padding: 4px 6px; }
.qt-line-table .qt-in-desc { min-width: 140px; }
.qt-line-amt { font-weight: 600; white-space: nowrap; }
.qt-line-actions { white-space: nowrap; }
.qt-line-actions .btn { padding: 2px 6px; margin: 0 1px; }
.qt-line-tools { display: flex; gap: 6px; }
.qt-action-row { display: flex; flex-wrap: wrap; gap: 8px; }
.qt-attach-row { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; flex-wrap: wrap; }
.qt-attach-row input { flex: 1; min-width: 120px; }
.qt-status-badge { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #f1f5f9; }
.qt-status--accepted, .qt-status--converted_to_contract { background: #dcfce7; color: #166534; }
.qt-status--sent { background: #dbeafe; color: #1d4ed8; }
.qt-status--draft, .qt-status--revised { background: #fef3c7; color: #92400e; }
.qt-status--rejected, .qt-status--void { background: #fee2e2; color: #991b1b; }
.qt-budget-wrap { display: flex; flex-direction: column; gap: 12px; }
.qt-budget-summary dd:last-child { color: var(--lz-red); font-size: 16px; }
.qt-print-note { margin-top: 12px; font-size: 11px; }
@media (max-width: 1100px) {
  .qt-editor-grid { grid-template-columns: 1fr; }
  .qt-summary-card { position: static; }
}
.lz-backend-notice {
  margin: 10px 0;
  padding: 10px 12px;
  border-radius: 8px;
  background: #fffbeb;
  border: 1px solid #fcd34d;
  color: #92400e;
  font-size: 12px;
}
.lz-salary-restricted, .lz-salary-restricted-inline {
  color: #94a3b8;
  font-style: italic;
  font-size: 12px;
}
.nav-group--hr .nav-group-title,
.nav-group--hr .nav-group-title-text,
.nav-group--hr .nav-group-header { color: var(--hr-accent); }
.nav-group--commercial .nav-group-title,
.nav-group--commercial .nav-group-title-text,
.nav-group--commercial .nav-group-header { color: var(--commercial-accent); }
.nav-group--costing .nav-group-title,
.nav-group--costing .nav-group-title-text,
.nav-group--costing .nav-group-header { color: var(--costing-accent); }
.nav-group--claims .nav-group-title,
.nav-group--claims .nav-group-title-text,
.nav-group--claims .nav-group-header { color: var(--claims-accent); }
.nav-group--core .nav-group-title,
.nav-group--core .nav-group-title-text,
.nav-group--core .nav-group-header { color: var(--core-accent); }

/* Collapsible sidebar groups */
.nav-group-header {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 6px 8px;
  margin-bottom: 4px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--lz-muted);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  cursor: pointer;
  text-align: left;
}
.nav-group-header::before {
  content: '';
  width: 3px;
  height: 12px;
  border-radius: 2px;
  background: var(--group-accent, #64748b);
  flex-shrink: 0;
}
.nav-group-header:hover { background: rgba(255, 255, 255, 0.55); color: var(--lz-text); }
.nav-group-header .nav-icon-wrap { width: 28px; height: 28px; }
.nav-group-chevron {
  width: 12px;
  flex-shrink: 0;
  font-size: 10px;
  color: #94a3b8;
}
.nav-group-title-text { flex: 1; min-width: 0; }
.nav-group--collapsed .nav-group-body { display: none; }
.nav-group--expanded .nav-group-body { display: block; }
.nav-group--flat .nav-group-title { margin-bottom: 6px; }
.nav-link--active {
  background: rgba(255, 255, 255, 0.92);
  color: var(--group-accent, var(--lz-red));
  box-shadow: inset 3px 0 0 var(--group-accent, var(--lz-red));
}
.nav-link--active svg { color: var(--group-accent, var(--lz-red)); }
.nav-group-flyout {
  position: fixed;
  z-index: 2800;
  min-width: 200px;
  max-width: 260px;
  padding: 8px;
  background: #fff;
  border: 1px solid var(--lz-border);
  border-radius: 10px;
  box-shadow: var(--lz-shadow);
}
.nav-group-flyout-link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 8px;
  text-decoration: none;
  color: var(--lz-text);
  font-size: 13px;
  font-weight: 500;
}
.nav-group-flyout-link:hover { background: #f8fafc; color: var(--lz-red); }
.nav-group-flyout-link .nav-icon-wrap { width: 28px; height: 28px; }

.app-shell.sidebar-collapsed .nav-group-chevron,
.app-shell.sidebar-collapsed .nav-group-title-text,
.app-shell.sidebar-collapsed .nav-group-title { display: none; }
.app-shell.sidebar-collapsed .nav-group-header {
  justify-content: center;
  padding: 8px 6px;
}
.app-shell.sidebar-collapsed .nav-group--collapsible .nav-group-body { display: none !important; }
.app-shell.sidebar-collapsed .nav-group--flat .nav-group-body { display: block !important; }
.app-shell.sidebar-collapsed .nav-group--flat .sidebar-collapse-btn .nav-link-label { display: none; }

/* Header quick modules */
.lz-header-actions {
  flex: 1;
  min-width: 0;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
}
.lz-quick-modules-wrap {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 1;
  min-width: 0;
  max-width: min(560px, 52vw);
  height: 32px;
}
.lz-quick-modules-wrap.hidden { display: none; }
.lz-quick-scroll-btn {
  flex-shrink: 0;
  width: 22px;
  height: 28px;
  padding: 0;
  border: 1px solid var(--lz-border);
  border-radius: 6px;
  background: #fff;
  color: var(--lz-muted);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}
.lz-quick-scroll-btn:not(.is-disabled):not(:disabled):hover {
  color: var(--lz-red);
  border-color: #cbd5e1;
}
.lz-quick-scroll-btn.is-disabled,
.lz-quick-scroll-btn:disabled {
  opacity: 0.35;
  cursor: default;
  color: #94a3b8;
}
.lz-quick-scroll-btn.is-disabled:hover,
.lz-quick-scroll-btn:disabled:hover {
  color: #94a3b8;
  border-color: var(--lz-border);
}
.lz-quick-modules {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  min-width: 0;
  height: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  flex-wrap: nowrap;
  padding: 0 4px;
  scroll-behavior: smooth;
  scrollbar-width: none;
}
.lz-quick-modules::-webkit-scrollbar { display: none; }
.lz-quick-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: 108px;
  height: 28px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid transparent;
  color: #fff;
  text-decoration: none;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
  line-height: 1;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.12);
  overflow: hidden;
}
.lz-quick-pill:hover { filter: brightness(1.06); color: #fff; }
.lz-quick-pill .nav-icon-wrap {
  width: 18px;
  height: 18px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.2);
  box-shadow: none;
  flex-shrink: 0;
}
.lz-quick-pill svg { width: 13px; height: 13px; stroke: #fff; }
.lz-quick-pill-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  flex: 1;
}
.lz-quick-pill--core { background: var(--core-accent, #64748b); }
.lz-quick-pill--ops { background: var(--ops-accent, #2563eb); }
.lz-quick-pill--safety { background: var(--safety-accent, #059669); }
.lz-quick-pill--hr { background: var(--hr-accent, #7c3aed); }
.lz-quick-pill--commercial { background: var(--commercial-accent, #0369a1); }
.lz-quick-pill--costing { background: var(--costing-accent, #b45309); }
.lz-quick-pill--claims { background: var(--claims-accent, #a21caf); }
.lz-quick-pill--eng { background: var(--eng-accent, #0d9488); }
.lz-quick-pill--workforce { background: var(--workforce-accent, #9333ea); }
.lz-quick-pill--admin { background: var(--admin-accent, #475569); }
.lz-quick-pill--enterprise { background: #7c3aed; }
.lz-module-error { border-color: #fecaca; background: #fef2f2; }
.lz-error-detail {
  font-size: 11px;
  overflow: auto;
  max-height: 180px;
  padding: 8px;
  background: #fff;
  border: 1px solid var(--lz-border);
  border-radius: 6px;
}
.lz-quick-modules-picker {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.lz-quick-module-option {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--lz-border);
  border-radius: 8px;
  font-size: 13px;
  cursor: pointer;
}
.lz-quick-module-option:hover { background: #f8fafc; }
.lz-quick-modules-limit { margin-top: 10px; }
.lz-access-denied { text-align: left; }

.sch-palette-scroll-row {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 8px;
  min-height: 32px;
}
.sch-palette-scroll-row .sch-palette-track {
  flex: 1;
  min-width: 0;
  max-width: 100%;
}
.sch-palette-btn {
  flex-shrink: 0;
  min-width: 52px;
  height: 28px;
  padding: 0 10px;
  border: 1px solid var(--lz-border);
  border-radius: 6px;
  background: #fff;
  font-size: 11px;
  font-weight: 600;
  color: var(--lz-text);
  cursor: pointer;
  white-space: nowrap;
}
.sch-palette-btn:hover:not(.is-disabled):not(:disabled) {
  border-color: var(--lz-red);
  background: var(--lz-red-soft);
}
.sch-palette-btn.is-active {
  border-color: var(--lz-red);
  background: var(--lz-red-soft);
  color: var(--lz-red);
  box-shadow: inset 0 0 0 1px var(--lz-red);
}
.sch-palette-btn.is-disabled,
.sch-palette-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.sch-palette-tabs { margin: 6px 0 8px; }
.sch-mat-group { margin-bottom: 14px; }
.sch-mat-group-title {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 700;
  color: var(--lz-red);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.sch-mat-badge--fusion { background: #ede9fe; color: #5b21b6; margin-left: 4px; }
.sch-mat-pick-list { display: flex; flex-direction: column; gap: 8px; max-height: 360px; overflow: auto; }
.sch-mat-pick-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  width: 100%;
  padding: 10px 12px;
  border: 1px solid var(--lz-border);
  border-radius: 8px;
  background: #fff;
  text-align: left;
  cursor: pointer;
}
.sch-mat-pick-row:hover { border-color: var(--lz-red); background: #fef2f2; }
.sch-set-palette-card { grid-column: 1 / -1; margin-top: 12px; }
.sch-set-palette-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.sch-pal-table { font-size: 12px; }
.sch-pal-kw { max-width: 220px; word-break: break-word; }
@media (max-width: 900px) {
  .sch-set-palette-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  .lz-quick-modules-wrap { max-width: min(320px, 42vw); }
  .lz-quick-pill-label { display: none; }
  .lz-quick-pill { padding: 4px 7px; }
}
@media (max-width: 640px) {
  .lz-quick-modules-wrap { max-width: min(220px, 38vw); }
  .lz-quick-scroll-btn { width: 20px; }
}
