@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap'); *{margin:0;padding:0;box-sizing:border-box;} :root{ --bg:#06080f;--bg2:#0a0f1e;--card:#0c1220;--card2:#111827;--card3:#1a2332; --border:rgba(255,255,255,0.06);--border2:rgba(255,255,255,0.1); --text:#e2e8f0;--text2:#f8fafc;--muted:#64748b;--dim:#334155; --blue:#60a5fa;--green:#4ade80;--red:#f87171;--amber:#fbbf24;--purple:#a78bfa; --cyan:#22d3ee;--pink:#f472b6;--teal:#2dd4bf;--orange:#fb923c; --blue-bg:rgba(96,165,250,0.12);--green-bg:rgba(74,222,128,0.1); --red-bg:rgba(248,113,113,0.1);--amber-bg:rgba(251,191,36,0.1); --purple-bg:rgba(167,139,250,0.1);--cyan-bg:rgba(34,211,238,0.1); } body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;} a{color:var(--blue);text-decoration:none;} input,select,textarea,button{font-family:inherit;} /* LAYOUT */ .app{display:flex;min-height:100vh;} .sidebar{width:260px;background:var(--card);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:200;transition:transform 0.3s;} .sidebar-header{padding:20px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(59,130,246,0.06),transparent);} .sidebar-logo{display:flex;align-items:center;gap:12px;} .sidebar-logo .icon{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#3b82f6,#06b6d4);display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:900;color:#fff;box-shadow:0 0 24px rgba(59,130,246,0.35);letter-spacing:-0.5px;} .sidebar-logo h1{font-size:16px;font-weight:800;color:var(--text2);line-height:1.2;letter-spacing:-0.3px;} .sidebar-logo .sub{font-size:9px;color:var(--blue);text-transform:uppercase;letter-spacing:1.5px;margin-top:3px;font-weight:600;opacity:0.8;} .sidebar-nav{flex:1;padding:12px;overflow-y:auto;} .nav-section{font-size:9px;text-transform:uppercase;letter-spacing:1.5px;color:var(--dim);padding:16px 12px 6px;font-weight:600;} .nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;cursor:pointer;color:var(--muted);font-size:13px;font-weight:500;transition:all 0.15s;margin-bottom:2px;} .nav-item:hover{background:rgba(255,255,255,0.04);color:var(--text);} .nav-item.active{background:rgba(59,130,246,0.12);color:var(--blue);font-weight:600;} .nav-item .ni{font-size:16px;width:20px;text-align:center;} .nav-item .badge{margin-left:auto;background:var(--blue);color:#fff;font-size:10px;padding:2px 7px;border-radius:10px;font-weight:700;} .sidebar-footer{padding:16px;border-top:1px solid var(--border);} .user-info{display:flex;align-items:center;gap:10px;} .user-avatar{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,var(--purple),var(--blue));display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#fff;} .user-name{font-size:12px;font-weight:600;color:var(--text);} .user-role{font-size:10px;color:var(--muted);text-transform:capitalize;} .btn-logout{margin-top:10px;width:100%;padding:7px;border-radius:6px;border:1px solid var(--border2);background:transparent;color:var(--muted);font-size:11px;cursor:pointer;transition:all 0.15s;} .btn-logout:hover{background:rgba(248,113,113,0.1);color:var(--red);border-color:rgba(248,113,113,0.3);} /* MAIN */ .main{flex:1;margin-left:260px;min-height:100vh;} .topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;border-bottom:1px solid var(--border);background:rgba(12,18,32,0.95);backdrop-filter:blur(20px);position:sticky;top:0;z-index:100;} .topbar h2{font-size:17px;font-weight:800;color:var(--text2);letter-spacing:-0.2px;} .topbar-right{display:flex;align-items:center;gap:14px;} .hamburger{display:none;background:none;border:none;color:var(--text);font-size:22px;cursor:pointer;padding:4px 8px;} .sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:150;} .content{padding:24px 28px;} .view{display:none;animation:fadeIn 0.25s ease;} .view.active{display:block;} @keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}} /* AUTH VIEW */ .auth-wrapper{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg);} .auth-card{width:440px;max-width:95vw;background:var(--card);border:1px solid var(--border2);border-radius:16px;overflow:hidden;} .auth-header{padding:32px 32px 0;text-align:center;} .auth-header .logo-big{width:64px;height:64px;border-radius:16px;background:linear-gradient(135deg,#3b82f6,#06b6d4);display:inline-flex;align-items:center;justify-content:center;font-size:24px;font-weight:900;color:#fff;margin-bottom:18px;box-shadow:0 0 40px rgba(59,130,246,0.35),0 0 80px rgba(6,182,212,0.15);letter-spacing:-0.5px;} .auth-header h1{font-size:24px;font-weight:800;color:var(--text2);letter-spacing:-0.3px;} .auth-header p{font-size:14px;color:var(--muted);margin-top:8px;line-height:1.5;} .auth-tabs{display:flex;margin:24px 32px 0;border-bottom:1px solid var(--border);} .auth-tab{flex:1;padding:10px;text-align:center;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;transition:all 0.15s;} .auth-tab.active{color:var(--blue);border-color:var(--blue);} .auth-body{padding:24px 32px 32px;} .auth-body .field{margin-bottom:16px;} .auth-body .field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;} /* FORMS */ .field label{display:block;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:6px;} .field input,.field select,.field textarea{width:100%;padding:10px 14px;background:var(--bg2);border:1px solid var(--border2);border-radius:8px;color:var(--text);font-size:13px;transition:border-color 0.15s;outline:none;} .field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue);} .field textarea{resize:vertical;min-height:80px;} .field select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;} .field .hint{font-size:11px;color:var(--dim);margin-top:4px;} .field-inline{display:flex;align-items:center;gap:8px;} .multi-select{display:flex;flex-wrap:wrap;gap:6px;padding:8px;background:var(--bg2);border:1px solid var(--border2);border-radius:8px;min-height:42px;} .multi-select .chip{display:flex;align-items:center;gap:4px;padding:4px 10px;background:var(--blue-bg);border:1px solid rgba(96,165,250,0.3);border-radius:6px;font-size:11px;color:var(--blue);font-weight:500;} .multi-select .chip .remove{cursor:pointer;font-size:14px;line-height:1;opacity:0.7;} .multi-select .chip .remove:hover{opacity:1;} .multi-select input{border:none;background:none;outline:none;color:var(--text);font-size:12px;flex:1;min-width:100px;padding:2px;} /* BUTTONS */ .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:all 0.15s;} .btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 2px 10px rgba(59,130,246,0.3);} .btn-primary:hover{box-shadow:0 4px 16px rgba(59,130,246,0.4);transform:translateY(-1px);} .btn-secondary{background:var(--card3);color:var(--text);border:1px solid var(--border2);} .btn-secondary:hover{background:rgba(255,255,255,0.08);} .btn-success{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;} .btn-danger{background:rgba(248,113,113,0.15);color:var(--red);border:1px solid rgba(248,113,113,0.3);} .btn-ghost{background:transparent;color:var(--muted);padding:8px 12px;} .btn-ghost:hover{color:var(--text);background:rgba(255,255,255,0.04);} .btn-sm{padding:6px 14px;font-size:12px;} .btn-ai{background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;box-shadow:0 2px 10px rgba(139,92,246,0.3);} .btn-ai:hover{box-shadow:0 4px 16px rgba(139,92,246,0.4);} .btn:disabled{opacity:0.5;cursor:not-allowed;transform:none !important;} .btn .spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,0.3);border-top-color:#fff;border-radius:50%;animation:spin 0.6s linear infinite;} @keyframes spin{to{transform:rotate(360deg);}} /* STATS CARDS */ .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;} .stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:22px;} .stat-card .stat-label{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:10px;} .stat-card .stat-value{font-size:30px;font-weight:800;color:var(--text2);line-height:1;letter-spacing:-0.5px;} .stat-card .stat-sub{font-size:11px;color:var(--muted);margin-top:6px;display:flex;align-items:center;gap:4px;} .stat-card .stat-icon{font-size:20px;float:right;margin-top:-4px;} .stat-card.blue{border-color:rgba(96,165,250,0.2);background:linear-gradient(135deg,var(--card),rgba(96,165,250,0.05));} .stat-card.green{border-color:rgba(74,222,128,0.2);background:linear-gradient(135deg,var(--card),rgba(74,222,128,0.05));} .stat-card.amber{border-color:rgba(251,191,36,0.2);background:linear-gradient(135deg,var(--card),rgba(251,191,36,0.05));} .stat-card.purple{border-color:rgba(167,139,250,0.2);background:linear-gradient(135deg,var(--card),rgba(167,139,250,0.05));} /* TABLES */ .table-card{background:var(--card);border:1px solid var(--border);border-radius:12px;overflow:hidden;} .table-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);} .table-header h3{font-size:14px;font-weight:700;color:var(--text2);} .table-filters{display:flex;gap:10px;align-items:center;} .table-filters select,.table-filters input{padding:6px 12px;background:var(--bg2);border:1px solid var(--border2);border-radius:6px;color:var(--text);font-size:12px;outline:none;} .table-filters input{width:200px;} table{width:100%;border-collapse:collapse;} thead th{padding:10px 16px;text-align:left;font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.8px;border-bottom:1px solid var(--border);background:rgba(0,0,0,0.2);cursor:pointer;user-select:none;white-space:nowrap;} thead th:hover{color:var(--text);} tbody tr{border-bottom:1px solid var(--border);transition:background 0.1s;cursor:pointer;} tbody tr:hover{background:rgba(255,255,255,0.02);} tbody td{padding:12px 16px;font-size:13px;white-space:nowrap;} .td-wrap{white-space:normal;max-width:250px;} /* BADGES */ .badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:6px;font-size:11px;font-weight:600;text-transform:capitalize;} .badge-active,.badge-open{background:var(--blue-bg);color:var(--blue);border:1px solid rgba(96,165,250,0.3);} .badge-draft{background:rgba(100,116,139,0.15);color:var(--muted);border:1px solid rgba(100,116,139,0.3);} .badge-evaluating,.badge-pending,.badge-submitted{background:var(--amber-bg);color:var(--amber);border:1px solid rgba(251,191,36,0.3);} .badge-awarded,.badge-accepted,.badge-won,.badge-delivered{background:var(--green-bg);color:var(--green);border:1px solid rgba(74,222,128,0.3);} .badge-closed,.badge-rejected,.badge-lost,.badge-expired{background:var(--red-bg);color:var(--red);border:1px solid rgba(248,113,113,0.3);} .badge-cancelled{background:rgba(100,116,139,0.1);color:#94a3b8;border:1px solid rgba(100,116,139,0.2);} .badge-verified{background:var(--green-bg);color:var(--green);border:1px solid rgba(74,222,128,0.3);} /* PDCA PHASE LABELS */ .pdca-badge-wrap{display:inline-flex;flex-direction:column;align-items:center;gap:2px;} .pdca-phase-tag{font-size:9px;font-weight:700;letter-spacing:0.5px;text-transform:uppercase;color:var(--muted);opacity:0.8;} /* CARDS / PANELS */ .panel{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:20px;} .panel h3{font-size:14px;font-weight:700;color:var(--text2);margin-bottom:14px;display:flex;align-items:center;gap:8px;} .panel-ai{border-color:rgba(139,92,246,0.2);background:linear-gradient(135deg,var(--card),rgba(139,92,246,0.04));} .section{margin-bottom:28px;} .section h3{font-size:14px;font-weight:700;color:var(--text2);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border);} .section-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:var(--blue-bg);color:var(--blue);font-size:11px;font-weight:700;margin-right:8px;} /* PAGINATION */ .pagination{display:flex;align-items:center;justify-content:center;gap:4px;padding:16px;} .pagination button{padding:6px 12px;border-radius:6px;border:1px solid var(--border);background:var(--card);color:var(--muted);font-size:12px;cursor:pointer;transition:all 0.1s;} .pagination button:hover{background:var(--card3);color:var(--text);} .pagination button.active{background:var(--blue);color:#fff;border-color:var(--blue);} .pagination button:disabled{opacity:0.3;cursor:not-allowed;} /* TOAST */ .toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px;} .toast{padding:12px 20px;border-radius:10px;font-size:13px;font-weight:500;display:flex;align-items:center;gap:10px;animation:slideIn 0.3s ease;min-width:280px;box-shadow:0 8px 30px rgba(0,0,0,0.4);} .toast-success{background:#065f46;color:#6ee7b7;border:1px solid rgba(110,231,183,0.3);} .toast-error{background:#7f1d1d;color:#fca5a5;border:1px solid rgba(252,165,165,0.3);} .toast-info{background:#1e3a5f;color:#93c5fd;border:1px solid rgba(147,197,253,0.3);} @keyframes slideIn{from{transform:translateX(100%);opacity:0;}to{transform:translateX(0);opacity:1;}} /* CONFIRM DIALOG */ .dialog-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.6);display:flex;align-items:center;justify-content:center;z-index:9000;animation:fadeIn 0.15s;} .dialog{background:var(--card);border:1px solid var(--border2);border-radius:14px;padding:28px;max-width:420px;width:90vw;} .dialog h3{font-size:16px;font-weight:700;color:var(--text2);margin-bottom:10px;} .dialog p{font-size:13px;color:var(--muted);margin-bottom:20px;line-height:1.5;} .dialog-actions{display:flex;justify-content:flex-end;gap:10px;} /* SPECS KEY-VALUE */ .kv-rows{display:flex;flex-direction:column;gap:8px;} .kv-row{display:flex;gap:8px;align-items:center;} .kv-row input{flex:1;} .kv-row .btn-remove{padding:8px;color:var(--red);background:none;border:none;cursor:pointer;font-size:16px;} /* SUPPLIER CARDS */ .supplier-match{display:flex;align-items:center;gap:14px;padding:14px;background:var(--bg2);border:1px solid var(--border);border-radius:10px;margin-bottom:8px;} .supplier-match .score{font-size:20px;font-weight:800;color:var(--green);min-width:50px;text-align:center;} .supplier-match .info{flex:1;} .supplier-match .info h4{font-size:13px;font-weight:600;color:var(--text2);} .supplier-match .info p{font-size:11px;color:var(--muted);} .supplier-match input[type=checkbox]{width:18px;height:18px;accent-color:var(--blue);} /* QUOTE COMPARISON */ .best-cell{background:rgba(74,222,128,0.08);color:var(--green);font-weight:700;} .ai-panel{background:linear-gradient(135deg,rgba(139,92,246,0.08),rgba(99,102,241,0.05));border:1px solid rgba(139,92,246,0.2);border-radius:12px;padding:20px;margin-top:16px;} .ai-panel h4{font-size:13px;font-weight:700;color:var(--purple);margin-bottom:10px;display:flex;align-items:center;gap:6px;} .ai-panel ul{list-style:none;padding:0;} .ai-panel li{font-size:12px;color:var(--text);padding:6px 0;border-bottom:1px solid rgba(139,92,246,0.1);display:flex;align-items:flex-start;gap:8px;} .ai-panel li:last-child{border:none;} /* EMPTY STATE */ .empty-state{text-align:center;padding:48px 20px;color:var(--muted);} .empty-state .icon{font-size:48px;margin-bottom:16px;opacity:0.4;} .empty-state h3{font-size:16px;color:var(--text);margin-bottom:8px;} .empty-state p{font-size:13px;max-width:360px;margin:0 auto 20px;line-height:1.5;} /* LOADING */ .loading-full{display:flex;align-items:center;justify-content:center;padding:60px;flex-direction:column;gap:16px;} .loading-full .spinner-lg{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--blue);border-radius:50%;animation:spin 0.8s linear infinite;} .loading-full p{font-size:13px;color:var(--muted);} /* HERO BANNER */ .hero-banner{background:linear-gradient(135deg,rgba(59,130,246,0.12),rgba(6,182,212,0.08),rgba(139,92,246,0.06));border:1px solid rgba(96,165,250,0.15);border-radius:16px;padding:32px 36px;margin-bottom:28px;position:relative;overflow:hidden;} .hero-banner::before{content:'';position:absolute;top:-60%;right:-10%;width:340px;height:340px;background:radial-gradient(circle,rgba(59,130,246,0.08) 0%,transparent 70%);pointer-events:none;} .hero-banner::after{content:'';position:absolute;bottom:-40%;left:-5%;width:240px;height:240px;background:radial-gradient(circle,rgba(6,182,212,0.06) 0%,transparent 70%);pointer-events:none;} .hero-banner .hero-logo{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,#3b82f6,#06b6d4);display:inline-flex;align-items:center;justify-content:center;font-size:20px;font-weight:900;color:#fff;box-shadow:0 0 30px rgba(59,130,246,0.25);margin-bottom:16px;} .hero-banner h2{font-size:24px;font-weight:800;color:var(--text2);margin-bottom:6px;letter-spacing:-0.3px;} .hero-banner .hero-sub{font-size:14px;color:var(--muted);margin-bottom:20px;line-height:1.6;} .hero-banner .hero-stats{display:flex;gap:24px;flex-wrap:wrap;} .hero-banner .hero-stat{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);font-weight:500;} .hero-banner .hero-stat .hs-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px;} .hero-banner .hero-stat .hs-icon.blue{background:var(--blue-bg);color:var(--blue);} .hero-banner .hero-stat .hs-icon.green{background:var(--green-bg);color:var(--green);} .hero-banner .hero-stat .hs-icon.purple{background:var(--purple-bg);color:var(--purple);} /* ONBOARDING TOUR */ .onboarding-tour{background:var(--card);border:1px solid var(--border2);border-radius:16px;padding:28px 32px;margin-bottom:28px;position:relative;} .onboarding-tour .tour-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;} .onboarding-tour .tour-header h3{font-size:16px;font-weight:700;color:var(--text2);display:flex;align-items:center;gap:10px;} .onboarding-tour .tour-header h3 .tour-icon{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,rgba(139,92,246,0.15),rgba(99,102,241,0.1));display:flex;align-items:center;justify-content:center;font-size:14px;} .onboarding-tour .tour-dismiss{background:none;border:none;color:var(--muted);cursor:pointer;font-size:11px;padding:4px 10px;border-radius:6px;transition:all 0.15s;} .onboarding-tour .tour-dismiss:hover{background:rgba(255,255,255,0.06);color:var(--text);} .onboarding-tour .tour-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;} .tour-step{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:20px;text-align:center;transition:all 0.2s;cursor:pointer;position:relative;} .tour-step:hover{border-color:rgba(96,165,250,0.3);background:rgba(96,165,250,0.04);transform:translateY(-2px);} .tour-step.completed{border-color:rgba(74,222,128,0.3);background:rgba(74,222,128,0.04);} .tour-step .step-num{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;margin-bottom:12px;box-shadow:0 2px 8px rgba(59,130,246,0.3);} .tour-step.completed .step-num{background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 2px 8px rgba(34,197,94,0.3);} .tour-step .step-title{font-size:13px;font-weight:700;color:var(--text2);margin-bottom:6px;} .tour-step .step-desc{font-size:11px;color:var(--muted);line-height:1.5;} .tour-step .step-arrow{position:absolute;right:-12px;top:50%;transform:translateY(-50%);color:var(--dim);font-size:14px;} .tour-progress{display:flex;gap:6px;margin-top:16px;justify-content:center;} .tour-progress .tp-dot{width:8px;height:8px;border-radius:50%;background:var(--dim);transition:all 0.2s;} .tour-progress .tp-dot.done{background:var(--green);} .tour-progress .tp-dot.current{background:var(--blue);box-shadow:0 0 8px rgba(96,165,250,0.4);} /* LANDING PAGE */ .landing-wrapper{min-height:100vh;background:var(--bg);overflow-x:hidden;} .landing-hero{text-align:center;padding:60px 24px 40px;position:relative;overflow:hidden;} .landing-hero::before{content:'';position:absolute;top:-30%;left:50%;transform:translateX(-50%);width:800px;height:800px;background:radial-gradient(circle,rgba(59,130,246,0.1) 0%,rgba(6,182,212,0.05) 40%,transparent 70%);pointer-events:none;} .landing-hero .lh-logo{width:72px;height:72px;border-radius:18px;background:linear-gradient(135deg,#3b82f6,#06b6d4);display:inline-flex;align-items:center;justify-content:center;font-size:28px;font-weight:900;color:#fff;margin-bottom:20px;box-shadow:0 0 50px rgba(59,130,246,0.4),0 0 100px rgba(6,182,212,0.15);position:relative;} .landing-hero h1{font-size:36px;font-weight:900;color:var(--text2);letter-spacing:-0.5px;margin-bottom:10px;} .landing-hero .lh-sub{font-size:16px;color:var(--muted);max-width:560px;margin:0 auto 36px;line-height:1.6;} .landing-counters{display:flex;justify-content:center;gap:32px;flex-wrap:wrap;margin-bottom:40px;} .landing-counter{text-align:center;min-width:110px;} .landing-counter .lc-num{font-size:36px;font-weight:900;letter-spacing:-1px;line-height:1;} .landing-counter .lc-num.blue{color:var(--blue);} .landing-counter .lc-num.green{color:var(--green);} .landing-counter .lc-num.amber{color:var(--amber);} .landing-counter .lc-num.purple{color:var(--purple);} .landing-counter .lc-num.cyan{color:var(--cyan);} .landing-counter .lc-label{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-top:6px;} .landing-sections{max-width:960px;margin:0 auto;padding:0 24px 40px;} .landing-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px;} .landing-panel{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:24px;position:relative;overflow:hidden;} .landing-panel h3{font-size:15px;font-weight:700;color:var(--text2);margin-bottom:14px;display:flex;align-items:center;gap:8px;} .landing-panel h3 .lp-icon{font-size:18px;} .landing-cat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;} .landing-cat{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;font-size:12px;color:var(--text);} .landing-cat .lcat-count{font-weight:700;color:var(--blue);font-size:13px;} .landing-rfq{padding:10px 0;border-bottom:1px solid var(--border);font-size:12px;display:flex;justify-content:space-between;align-items:center;} .landing-rfq:last-child{border:none;} .landing-rfq .lr-title{color:var(--text);font-weight:500;} .landing-rfq .lr-cat{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;padding:3px 8px;background:var(--bg2);border-radius:4px;} .landing-ai-demo{background:linear-gradient(135deg,rgba(139,92,246,0.08),rgba(99,102,241,0.04));border:1px solid rgba(139,92,246,0.15);border-radius:14px;padding:24px;max-width:960px;margin:0 auto 40px;text-align:center;} .landing-ai-demo h3{font-size:15px;font-weight:700;color:var(--purple);margin-bottom:6px;} .landing-ai-demo p{font-size:12px;color:var(--muted);margin-bottom:16px;} .landing-ai-scores{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;} .landing-ai-score{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px 20px;min-width:140px;text-align:center;} .landing-ai-score .las-val{font-size:24px;font-weight:800;color:var(--green);line-height:1;} .landing-ai-score .las-label{font-size:10px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:0.5px;} .landing-ai-score .las-sub{font-size:11px;color:var(--text);margin-top:6px;} .landing-cta{text-align:center;padding:0 24px 60px;max-width:960px;margin:0 auto;} .landing-cta h2{font-size:22px;font-weight:800;color:var(--text2);margin-bottom:8px;} .landing-cta p{font-size:13px;color:var(--muted);margin-bottom:20px;} .landing-cta .btn{padding:14px 40px;font-size:15px;} /* RESPONSIVE */ @media(max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr);}.onboarding-tour .tour-steps{grid-template-columns:1fr;}.landing-row{grid-template-columns:1fr;}.landing-cat-grid{grid-template-columns:1fr 1fr;}} @media(max-width:768px){ .sidebar{transform:translateX(-100%);} .sidebar.open{transform:translateX(0);} .sidebar-overlay.active{display:block;} .main{margin-left:0;} .hamburger{display:block;} .stats-grid{grid-template-columns:1fr 1fr;} .content{padding:16px;} .field-row{grid-template-columns:1fr !important;} .table-filters{flex-wrap:wrap;} .hero-banner{padding:24px 20px;} .hero-banner h2{font-size:20px;} .hero-banner .hero-stats{flex-direction:column;gap:12px;} .landing-hero h1{font-size:26px;} .landing-counters{gap:16px;} .landing-counter .lc-num{font-size:28px;} .landing-ai-scores{flex-direction:column;align-items:center;} } @media(max-width:480px){.stats-grid{grid-template-columns:1fr;}}

E&P Directory

AI-powered procurement for engineers and suppliers. Find verified suppliers, get AI-scored quotes, and close deals faster.

--
Active Suppliers
--
RFQs Posted
--
Quotes Analyzed
--
POs Completed
--
Engineers

🛠 Supplier Categories

Loading...

📄 What Engineers Are Buying

Loading recent RFQs...

AI Quote Scoring Engine

Every quote is scored by our AI across 4 dimensions. See how suppliers compare at a glance.

92
Price Score
vs. market average
88
Delivery
on-time probability
95
Quality
defect-free rate
4.8
Supplier Rating
peer reviews
🔧
Exclusive to E&P Directory

Meet Jim — Your AI Procurement Engineer

Ask Jim about material specs, ASTM/ISO standards, lead time estimates, RFQ best practices, and supplier shortlists. Available 24/7 once you're logged in. ThomasNet doesn't have this.

24/7
Availability
Free
Included
AI
Powered
For Suppliers & Vendors

Get in Front of Engineers Who Buy

Engineers on this platform post RFQs worth $10K–$500K. Featured suppliers are matched first, shown at the top of every search, and highlighted by our AI scoring engine. A single won contract can exceed a full year of advertising spend.

$47K
Avg RFQ value
107
Verified engineers
1 deal
Pays for 12 months
Listing Boost
$299/mo
  • ▸ Top 10 in your category
  • ▸ Featured badge on profile
  • ▸ Priority in search results
⭐ Featured
$699/mo
  • ▸ Homepage supplier spotlight
  • ▸ Priority AI matching
  • ▸ Dedicated profile page
Category Sponsor
$1,099/mo
  • ▸ Own a full category
  • ▸ Top of every matching RFQ
  • ▸ Competitor exclusion zone
Enterprise Partner
$1,499/mo
  • ▸ Cross-category reach
  • ▸ Direct RFQ invitations
  • ▸ Co-branded campaigns
Custom packages available  ·  Annual contracts at 2 months free  ·  ads@epdirectory.com

Ready to streamline your procurement?

Join engineers and suppliers already using AI-powered procurement. Free to start.

EP

Get Started

Sign in or create your free account

Sign In
Create Account
🔧

Jim

Engineering & Procurement AI

⚠️ For guidance only — verify all specs against your project requirements before use.