@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap");@tailwind base;@tailwind components;@tailwind utilities;*,:after,:before{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:#111318;color:hsla(0,0%,100%,.82);font-family:Inter,system-ui,sans-serif;font-size:13.5px;line-height:1.5;margin:0}::selection{background:rgba(59,130,246,.28);color:hsla(0,0%,100%,.95)}:focus-visible{outline:2px solid #3b82f6;outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.12);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.2)}:root{--surface-page:#111318;--surface-chrome:#0c0d10;--surface-card:#161820;--surface-raised:#1c1f2a;--surface-inset:#0e0f14;--border-dim:hsla(0,0%,100%,.06);--border-mid:hsla(0,0%,100%,.1);--border-strong:hsla(0,0%,100%,.18);--text-primary:hsla(0,0%,100%,.88);--text-secondary:hsla(0,0%,100%,.5);--text-tertiary:hsla(0,0%,100%,.28);--text-disabled:hsla(0,0%,100%,.18);--accent:#3b82f6;--accent-dim:#2563eb;--accent-glow:rgba(59,130,246,.15);--s-pending:#f59e0b;--s-offered:#3b82f6;--s-passed:#34d399;--s-rejected:#f87171;--s-tpia:#c4b5fd;--s-welding:#fb923c;--s-fabricating:#60a5fa;--s-complete:#4ade80;--s-fail:#f87171;--sidebar-w:176px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:500;font-family:Inter,system-ui,sans-serif;letter-spacing:-.01em;padding:7px 14px;border-radius:8px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;text-decoration:none;border:none;transition:background .12s ease,opacity .12s ease,color .12s ease;line-height:1.4}.btn:disabled,.btn[disabled]{opacity:.35;cursor:not-allowed;pointer-events:none}.btn:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:500;font-family:Inter,system-ui,sans-serif;letter-spacing:-.01em;padding:7px 14px;border-radius:8px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;text-decoration:none;line-height:1.4;transition:background .12s ease,opacity .12s ease;background:hsla(0,0%,100%,.92);color:#0c0d10;border:none}.btn-primary:hover:not(:disabled){background:#fff}.btn-primary:active:not(:disabled){background:hsla(0,0%,100%,.82)}.btn-primary:disabled,.btn-primary[disabled]{opacity:.35;cursor:not-allowed;pointer-events:none}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:500;font-family:Inter,system-ui,sans-serif;letter-spacing:-.01em;padding:7px 14px;border-radius:8px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;text-decoration:none;line-height:1.4;transition:background .12s ease,border-color .12s ease;background:transparent;color:var(--text-primary);border:1px solid var(--border-mid)}.btn-secondary:hover:not(:disabled){background:hsla(0,0%,100%,.06);border-color:var(--border-strong)}.btn-secondary:active:not(:disabled){background:hsla(0,0%,100%,.04)}.btn-secondary:disabled,.btn-secondary[disabled]{opacity:.35;cursor:not-allowed;pointer-events:none}.btn-secondary:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.btn-accent{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:500;font-family:Inter,system-ui,sans-serif;letter-spacing:-.01em;padding:7px 14px;border-radius:8px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;text-decoration:none;line-height:1.4;transition:background .12s ease;background:#2563eb;color:#fff;border:none}.btn-accent:hover:not(:disabled){background:#1d4ed8}.btn-accent:active:not(:disabled){background:#1e40af}.btn-accent:disabled,.btn-accent[disabled]{opacity:.35;cursor:not-allowed;pointer-events:none}.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:500;font-family:Inter,system-ui,sans-serif;letter-spacing:-.01em;padding:7px 14px;border-radius:8px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;text-decoration:none;line-height:1.4;transition:background .12s ease;background:rgba(239,68,68,.15);color:#f87171;border:1px solid rgba(239,68,68,.25)}.btn-danger:hover:not(:disabled){background:rgba(239,68,68,.22)}.btn-danger:disabled,.btn-danger[disabled]{opacity:.35;cursor:not-allowed;pointer-events:none}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:13px;font-weight:500;font-family:Inter,system-ui,sans-serif;letter-spacing:-.01em;padding:6px 10px;border-radius:7px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;text-decoration:none;line-height:1.4;transition:background .12s ease,color .12s ease;background:transparent;color:var(--text-secondary);border:none}.btn-ghost:hover:not(:disabled){background:hsla(0,0%,100%,.06);color:var(--text-primary)}.btn-ghost:disabled,.btn-ghost[disabled]{opacity:.35;cursor:not-allowed;pointer-events:none}.btn-sm{font-size:12px!important;padding:5px 11px!important;border-radius:6px!important}.btn-accent:focus-visible,.btn-danger:focus-visible,.btn-ghost:focus-visible,.btn-primary:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}.card{background:var(--surface-card);border:1px solid var(--border-dim);border-radius:12px}.card-inset{background:var(--surface-inset);border:1px solid var(--border-dim);border-radius:8px}.label{display:block;font-size:10.5px;font-weight:500;letter-spacing:.055em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:7px}.input{display:block;width:100%;background:var(--surface-inset);border:1px solid var(--border-mid);border-radius:8px;padding:8px 12px;font-size:13.5px;font-family:Inter,system-ui,sans-serif;color:var(--text-primary);line-height:1.4;transition:border-color .12s ease,box-shadow .12s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input::placeholder{color:var(--text-disabled)}.input:hover:not(:disabled){border-color:var(--border-strong)}.input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.15)}.input:disabled{background:var(--surface-chrome);cursor:not-allowed;color:var(--text-disabled);opacity:.6}select.input{cursor:pointer}textarea.input{resize:vertical;min-height:72px}.field-hint{font-size:11.5px;color:var(--text-tertiary);margin-top:5px;line-height:1.4}select.input option{background:#1c1f2a;color:hsla(0,0%,100%,.88)}input[type=checkbox]{width:15px;height:15px;border-radius:4px;border:1px solid var(--border-strong);background:var(--surface-inset);cursor:pointer;accent-color:#3b82f6;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.status-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;letter-spacing:-.005em;white-space:nowrap}.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.s-pending{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#fcd34d}.s-pending .status-dot{background:var(--s-pending);box-shadow:0 0 0 2px rgba(245,158,11,.2)}.s-offered{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#93c5fd}.s-offered .status-dot{background:var(--s-offered);box-shadow:0 0 0 2px rgba(59,130,246,.2)}.s-passed{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#6ee7b7}.s-passed .status-dot{background:var(--s-passed);box-shadow:0 0 0 2px rgba(52,211,153,.2)}.s-rejected{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#fca5a5}.s-rejected .status-dot{background:var(--s-rejected);box-shadow:0 0 0 2px hsla(0,91%,71%,.2)}.s-tpia{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#c4b5fd}.s-tpia .status-dot{background:var(--s-tpia);box-shadow:0 0 0 2px rgba(196,181,253,.2)}.s-approved{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#6ee7b7}.s-approved .status-dot{background:#34d399}.s-welding{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#fdba74}.s-welding .status-dot{background:var(--s-welding);box-shadow:0 0 0 2px rgba(251,146,60,.2)}.s-fabricating{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#93c5fd}.s-fabricating .status-dot{background:var(--s-fabricating)}.s-complete{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#86efac}.s-complete .status-dot{background:var(--s-complete);box-shadow:0 0 0 2px rgba(74,222,128,.2)}.section-label{font-size:9.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:hsla(0,0%,100%,.2);padding:0 8px;margin-bottom:3px;display:block}.data-table{width:100%;border-collapse:collapse}.data-th{text-align:left;font-size:10px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--text-tertiary);white-space:nowrap;background:transparent}.data-td,.data-th{padding:10px 16px;border-bottom:1px solid var(--border-dim)}.data-td{font-size:13px;color:var(--text-secondary);vertical-align:middle}.data-tr:last-child .data-td{border-bottom:none}.data-tr:hover .data-td{background:hsla(0,0%,100%,.025)}.data-name-link{color:var(--text-primary);text-decoration:none;transition:color .1s ease}.data-name-link:hover{color:#60a5fa}.kpi-strip{display:grid;grid-gap:1px;gap:1px;background:var(--border-dim);border-radius:12px;overflow:hidden;border:1px solid var(--border-dim)}.kpi-cell{background:var(--surface-card);padding:16px 18px 14px}.kpi-label{font-size:9.5px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:6px}.kpi-val{font-size:26px;font-weight:500;color:var(--text-primary);letter-spacing:-.035em;line-height:1;margin-bottom:3px}.kpi-sub{font-size:10.5px;color:var(--text-tertiary)}.kpi-cell-danger{background:#1a1212}.kpi-cell-amber{background:#1a1710}.kpi-cell-purple{background:#16121a}.kpi-cell-blue{background:#101420}.page-eyebrow{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:5px;display:block}.page-title{font-size:22px;font-weight:500;color:var(--text-primary);letter-spacing:-.025em;margin:0}.sect-label{font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:8px;display:block}.progress-track{height:3px;background:hsla(0,0%,100%,.08);border-radius:10px;overflow:hidden}.progress-fill{height:100%;background:#3b82f6;border-radius:10px;transition:width .4s cubic-bezier(.25,.46,.45,.94)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;animation:fade-in .18s ease}.modal-card{background:var(--surface-raised);border-radius:16px;border:1px solid var(--border-mid);box-shadow:0 32px 80px rgba(0,0,0,.5),0 8px 24px rgba(0,0,0,.3);width:100%;max-width:420px;padding:24px;animation:slide-up .22s cubic-bezier(.25,.46,.45,.94)}.modal-title{font-size:15px;font-weight:500;color:var(--text-primary);letter-spacing:-.015em;margin:0 0 4px}.modal-sub{font-size:12.5px;color:var(--text-tertiary);margin:0 0 20px;line-height:1.4}.alert-error{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.25);border-radius:8px;font-size:13px;color:#fca5a5}.alert-error,.alert-info{padding:10px 14px;line-height:1.5}.alert-info{background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.2);border-radius:8px;font-size:12.5px;color:#93c5fd}.alert-success{background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.2);border-radius:8px;font-size:13px;color:#6ee7b7}.alert-success,.alert-warning{padding:10px 14px;line-height:1.5}.alert-warning{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.2);border-radius:8px;font-size:12.5px;color:#fcd34d}.role-badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:500;padding:2px 8px;border-radius:5px;white-space:nowrap}.role-admin{background:rgba(148,163,184,.12);color:#94a3b8;border:1px solid rgba(148,163,184,.2)}.role-production{background:rgba(59,130,246,.12);color:#93c5fd;border:1px solid rgba(59,130,246,.2)}.role-inspection{background:rgba(52,211,153,.12);color:#6ee7b7;border:1px solid rgba(52,211,153,.2)}.role-welding{background:rgba(251,146,60,.12);color:#fdba74;border:1px solid rgba(251,146,60,.2)}.role-stores{background:rgba(196,181,253,.12);color:#c4b5fd;border:1px solid rgba(196,181,253,.2)}.role-nde{background:rgba(244,114,182,.12);color:#f9a8d4;border:1px solid rgba(244,114,182,.2)}.pwht-badge{font-size:11px;font-weight:500;color:#fcd34d;background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.25);border-radius:4px;padding:2px 7px}.cat-badge{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0}.cat-not-started{background:hsla(0,0%,100%,.05);color:var(--text-tertiary);border:1px solid var(--border-dim)}.cat-in-progress{background:rgba(59,130,246,.15);color:#93c5fd;border:1px solid rgba(59,130,246,.3)}.cat-complete{background:rgba(74,222,128,.12);color:#86efac;border:1px solid rgba(74,222,128,.25)}.stage-dot{width:20px;height:20px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}.stage-done{background:rgba(74,222,128,.15);color:#86efac;border:1px solid rgba(74,222,128,.25)}.stage-pending{background:hsla(0,0%,100%,.05);color:var(--text-tertiary);border:1px solid var(--border-dim)}.notif-badge{position:absolute;top:-2px;right:-2px;min-width:15px;height:15px;border-radius:10px;background:#ef4444;color:#fff;font-size:9px;font-weight:600;justify-content:center;padding:0 3px;border:1.5px solid var(--surface-chrome)}.action-banner,.notif-badge{display:flex;align-items:center}.action-banner{background:var(--surface-inset);border:1px solid rgba(59,130,246,.25);border-radius:12px;padding:16px 20px;justify-content:space-between;gap:16px}.breadcrumb{display:flex;align-items:center;gap:7px;margin-bottom:12px}.breadcrumb a{font-size:12.5px;color:var(--text-tertiary);text-decoration:none;transition:color .1s}.breadcrumb a:hover{color:var(--text-secondary)}.breadcrumb-sep{color:var(--text-disabled);font-size:12px}.breadcrumb-current{font-size:12.5px;color:var(--text-tertiary);font-family:JetBrains Mono,monospace;font-weight:500}[id^=cat-]{scroll-margin-top:24px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.ls-back-link{font-size:12.5px;color:var(--text-tertiary);text-decoration:none;display:flex;align-items:center;gap:5px;transition:color .12s ease}.ls-back-link:hover{color:var(--text-secondary)}.hover-link{color:var(--text-tertiary);text-decoration:none;transition:color .12s ease}.hover-link:hover{color:var(--text-secondary)}.hover-sign-out{width:100%;text-align:left;font-size:11px;color:hsla(0,0%,100%,.22);background:none;border:none;cursor:pointer;padding:3px 2px;transition:color .12s ease;letter-spacing:-.005em;font-family:inherit}.hover-sign-out:hover{color:hsla(0,0%,100%,.55)}.sidebar-nav-item{display:flex;align-items:center;gap:8px;padding:6px 9px;border-radius:7px;font-size:12.5px;font-weight:400;color:hsla(0,0%,100%,.36);text-decoration:none;border-left:2px solid transparent;transition:background .12s ease,color .12s ease,border-color .12s ease;letter-spacing:-.005em}.sidebar-nav-item:hover{background:hsla(0,0%,100%,.04);color:hsla(0,0%,100%,.6)}.sidebar-nav-item.active{background:hsla(0,0%,100%,.07);color:hsla(0,0%,100%,.88);font-weight:500;border-left-color:#3b82f6}