/* Step34 Fix7 — NeoLab QMS Enterprise UI tokens and component standards.
   This file is a reference layer for phased migration. It does not force all legacy screens yet. */
:root{
  --nl-app-bg:#f5f7fa;
  --nl-surface:#ffffff;
  --nl-surface-muted:#f8fafc;
  --nl-border:#d9e1e8;
  --nl-border-subtle:#edf1f5;
  --nl-text:#1f2937;
  --nl-text-muted:#6b7280;
  --nl-text-soft:#94a3b8;
  --nl-primary:#2563eb;
  --nl-primary-dark:#1e40af;
  --nl-accent:#0f766e;
  --nl-success:#16a34a;
  --nl-warning:#d97706;
  --nl-danger:#dc2626;
  --nl-info:#0284c7;
  --nl-radius-sm:6px;
  --nl-radius-md:10px;
  --nl-radius-lg:14px;
  --nl-shadow-panel:0 8px 22px rgba(15,23,42,.06);
  --nl-shadow-float:0 18px 42px rgba(15,23,42,.16);
  --nl-header-h:56px;
  --nl-toolbar-h:44px;
  --nl-side-w:288px;
}
.nl-enterprise-body{background:var(--nl-app-bg);color:var(--nl-text);font-family:Pretendard,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:0;}
.nl-shell{height:100vh;display:grid;grid-template-columns:var(--nl-side-w) 1fr;overflow:hidden;background:var(--nl-app-bg);}
.nl-sidebar{background:var(--nl-surface);border-right:1px solid var(--nl-border);display:flex;flex-direction:column;min-width:0;}
.nl-topbar{height:var(--nl-header-h);background:var(--nl-surface);border-bottom:1px solid var(--nl-border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;gap:12px;}
.nl-workspace{display:grid;grid-template-rows:auto var(--nl-toolbar-h) 1fr;min-width:0;min-height:0;}
.nl-page-head{background:var(--nl-surface);border-bottom:1px solid var(--nl-border-subtle);padding:12px 16px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;}
.nl-page-title{margin:0;font-size:18px;font-weight:850;letter-spacing:-.01em;}
.nl-page-subtitle{margin:4px 0 0;color:var(--nl-text-muted);font-size:12px;line-height:1.45;}
.nl-process{background:var(--nl-surface);border-bottom:1px solid var(--nl-border);display:flex;align-items:center;gap:8px;overflow-x:auto;padding:8px 16px;}
.nl-step{display:inline-flex;align-items:center;gap:8px;min-width:132px;border:1px solid var(--nl-border);background:var(--nl-surface-muted);border-radius:var(--nl-radius-md);padding:7px 10px;color:#334155;white-space:nowrap;}
.nl-step.is-active{background:#15805e;color:#fff;border-color:#15805e;}
.nl-step.is-done{border-color:#bbf7d0;background:#f0fdf4;color:#166534;}
.nl-step-no{width:22px;height:22px;border-radius:999px;display:grid;place-items:center;background:#e2e8f0;color:#334155;font-size:11px;font-weight:900;}
.nl-step.is-active .nl-step-no{background:var(--nl-accent);color:#fff;}
.nl-content-grid{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:12px;padding:12px;overflow:hidden;}
.nl-panel{background:var(--nl-surface);border:1px solid var(--nl-border);border-radius:var(--nl-radius-lg);box-shadow:var(--nl-shadow-panel);min-width:0;min-height:0;overflow:hidden;}
.nl-panel-head{min-height:44px;border-bottom:1px solid var(--nl-border-subtle);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;}
.nl-panel-title{margin:0;font-size:14px;font-weight:850;}
.nl-toolbar{height:var(--nl-toolbar-h);display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--nl-border-subtle);background:#fbfdff;}
.nl-table{width:100%;border-collapse:collapse;font-size:13px;}
.nl-table th{height:34px;text-align:left;background:#f8fafc;color:#334155;border-bottom:1px solid var(--nl-border);font-size:12px;font-weight:850;padding:0 10px;}
.nl-table td{height:38px;border-bottom:1px solid var(--nl-border-subtle);padding:6px 10px;vertical-align:middle;}
.nl-table tbody tr:hover{background:#f8fbff;}
.nl-btn{height:32px;border-radius:var(--nl-radius-sm);border:1px solid var(--nl-border);background:var(--nl-surface);color:var(--nl-text);padding:0 10px;font-weight:750;cursor:pointer;display:inline-flex;align-items:center;gap:6px;}
.nl-btn:hover{background:#f8fafc;}
.nl-btn-primary{background:var(--nl-primary);border-color:var(--nl-primary);color:#fff;}
.nl-btn-primary:hover{background:var(--nl-primary-dark);}
.nl-btn-danger{background:#fff;border-color:#fecaca;color:var(--nl-danger);}
.nl-btn-ghost{border-color:transparent;background:transparent;color:#475569;}
.nl-badge{display:inline-flex;align-items:center;border-radius:999px;border:1px solid #dbe2ea;background:#f8fafc;color:#475569;padding:2px 8px;font-size:11px;font-weight:850;white-space:nowrap;}
.nl-badge-success{background:#f0fdf4;border-color:#bbf7d0;color:#166534;}
.nl-badge-warning{background:#fffbeb;border-color:#fde68a;color:#92400e;}
.nl-badge-danger{background:#fef2f2;border-color:#fecaca;color:#991b1b;}
.nl-badge-info{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8;}
.nl-detail{display:grid;gap:10px;padding:12px;overflow:auto;}
.nl-kv{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:start;font-size:12px;border-bottom:1px solid var(--nl-border-subtle);padding-bottom:8px;}
.nl-kv b{color:#475569;font-weight:850;}.nl-kv span{color:#111827;}
.nl-muted{color:var(--nl-text-muted);}
.nl-density-compact .nl-table td{height:32px}.nl-density-compact .nl-table th{height:30px}.nl-density-compact .nl-btn{height:30px}
@media(max-width:1100px){.nl-shell{grid-template-columns:72px 1fr}.nl-content-grid{grid-template-columns:1fr}.nl-detail{max-height:320px}.nl-page-head{flex-direction:column;align-items:stretch}}
@media print{.nl-sidebar,.nl-topbar,.nl-process,.nl-toolbar{display:none!important}.nl-shell{display:block}.nl-content-grid{display:block;padding:0}.nl-panel{border:0;box-shadow:none;border-radius:0}}
