@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:#f3f3f0;color:#0c0c0a;font-family:Inter,system-ui,sans-serif;font-size:13.5px;line-height:1.5;margin:0}::selection{background:rgba(27,78,216,.15);color:#0c0c0a}:focus-visible{outline:2px solid #1b4ed8;outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ccccc6;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#adadaa}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;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-color .14s ease,opacity .14s ease,border-color .14s ease,color .14s ease;line-height:1.4}.btn:disabled,.btn[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}.btn:focus-visible{outline:2px solid #1b4ed8;outline-offset:2px}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;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;line-height:1.4;transition:background-color .14s ease,opacity .14s ease,border-color .14s ease,color .14s ease;background:#0c0c0a;color:#fff}.btn-primary:hover:not(:disabled){background:#252522}.btn-primary:active:not(:disabled){background:#080806}.btn-primary:disabled,.btn-primary[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;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-color .14s ease,opacity .14s ease,border-color .14s ease,color .14s ease;background:#fff;color:#0c0c0a;border:1px solid #e4e4df}.btn-secondary:hover:not(:disabled){background:#f3f3f0;border-color:#ccccc6}.btn-secondary:active:not(:disabled){background:#ededea}.btn-secondary:disabled,.btn-secondary[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-secondary:focus-visible{outline:2px solid #1b4ed8;outline-offset:2px}.btn-accent{display:inline-flex;align-items:center;justify-content:center;gap:8px;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;line-height:1.4;transition:background-color .14s ease,opacity .14s ease,color .14s ease;background:#1b4ed8;color:#fff}.btn-accent:hover:not(:disabled){background:#1741b0}.btn-accent:active:not(:disabled){background:#1338a0}.btn-accent:disabled,.btn-accent[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:8px;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;line-height:1.4;transition:background-color .14s ease,opacity .14s ease,color .14s ease;background:#c8281c;color:#fff}.btn-danger:hover:not(:disabled){background:#a82218}.btn-danger:active:not(:disabled){background:#8c1c14}.btn-danger:disabled,.btn-danger[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:500;font-family:Inter,system-ui,sans-serif;letter-spacing:-.01em;padding:6px 10px;border-radius:8px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:pointer;text-decoration:none;border:none;line-height:1.4;transition:background-color .14s ease,color .14s ease;background:transparent;color:#5e5e5a}.btn-ghost:hover:not(:disabled){background:#ededea;color:#0c0c0a}.btn-ghost:disabled,.btn-ghost[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none}.btn-sm{font-size:12px!important;padding:5px 10px!important;border-radius:6px!important}.btn-accent:focus-visible,.btn-danger:focus-visible,.btn-ghost:focus-visible,.btn-primary:focus-visible{outline:2px solid #1b4ed8;outline-offset:2px}[id^=cat-]{scroll-margin-top:24px}.data-name-link{color:#0c0c0a;text-decoration:none;transition:color .12s ease}.data-name-link:hover{color:#1b4ed8}.card{background:#fff;border:1px solid #e4e4df;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.04),0 1px 2px rgba(0,0,0,.02)}.card-inset{background:#f3f3f0;border:1px solid #e4e4df;border-radius:8px}.label{display:block;font-size:10.5px;font-weight:500;letter-spacing:.055em;text-transform:uppercase;color:#96968f;margin-bottom:7px}.input{display:block;width:100%;background:#fff;border:1px solid #e4e4df;border-radius:8px;padding:8px 12px;font-size:13.5px;font-family:Inter,system-ui,sans-serif;color:#0c0c0a;line-height:1.4;transition:border-color .14s ease,box-shadow .14s ease;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input::placeholder{color:#c2c2bb}.input:hover:not(:disabled){border-color:#ccccc6}.input:focus{outline:none;border-color:#1b4ed8;box-shadow:0 0 0 3px rgba(27,78,216,.1)}.input:disabled{background:#f3f3f0;cursor:not-allowed;color:#96968f}select.input{cursor:pointer}textarea.input{resize:vertical;min-height:72px}.field-hint{font-size:11.5px;color:#96968f;margin-top:5px;line-height:1.4}.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:#92400e}.s-pending .status-dot{background:#d97706}.s-offered{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#1e40af}.s-offered .status-dot{background:#3b82f6}.s-passed{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#065f46}.s-passed .status-dot{background:#10b981}.s-rejected{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#991b1b}.s-rejected .status-dot{background:#ef4444}.s-tpia{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#5b21b6}.s-tpia .status-dot{background:#8b5cf6}.s-approved{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#065f46}.s-approved .status-dot{background:#34d399}.s-welding{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#9a3412}.s-welding .status-dot{background:#f97316}.s-fabricating{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#1e3a8a}.s-fabricating .status-dot{background:#60a5fa}.s-complete{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:#065f46}.s-complete .status-dot{background:#059669}.section-label{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:hsla(0,0%,100%,.25);padding:0 8px;margin-bottom:2px;display:block}.data-table{width:100%;border-collapse:collapse}.data-th{padding:10px 16px;text-align:left;font-size:10.5px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:#96968f;border-bottom:1px solid #e4e4df;white-space:nowrap;background:#f8f8f6}.data-td{padding:11px 16px;font-size:13px;color:#0c0c0a;border-bottom:1px solid #eeeeed;vertical-align:middle}.data-tr:last-child .data-td{border-bottom:none}.data-tr:hover .data-td{background:#fafaf8}.modal-overlay{position:fixed;inset:0;background:rgba(10,10,8,.48);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:50;display:flex;align-items:center;justify-content:center;padding:20px;animation:fade-in .18s ease}.modal-card{background:#fff;border-radius:16px;box-shadow:0 24px 64px rgba(0,0,0,.14),0 8px 24px rgba(0,0,0,.07);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:#0c0c0a;letter-spacing:-.015em;margin:0 0 4px}.modal-sub{font-size:12.5px;color:#96968f;margin:0 0 20px;line-height:1.4}.alert-error{background:#fff5f5;border:1px solid #fecaca;border-radius:8px;font-size:13px;color:#991b1b}.alert-error,.alert-info{padding:10px 14px;line-height:1.5}.alert-info{background:#eff4ff;border:1px solid #bfdbfe;border-radius:8px;font-size:12.5px;color:#1e40af}.alert-success{background:#f0fdf4;border:1px solid #a7f3d0;border-radius:8px;font-size:13px;color:#065f46}.alert-success,.alert-warning{padding:10px 14px;line-height:1.5}.alert-warning{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;font-size:12.5px;color:#92400e}.progress-track{height:3px;background:#e4e4df;border-radius:10px;overflow:hidden}.progress-fill{height:100%;background:#1b4ed8;border-radius:10px;transition:width .4s cubic-bezier(.25,.46,.45,.94)}.notif-badge{position:absolute;top:-2px;right:-2px;min-width:15px;height:15px;border-radius:10px;background:#c8281c;color:#fff;font-size:9px;font-weight:600;display:flex;align-items:center;justify-content:center;padding:0 3px;border:1.5px solid #0e0f12}@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}}