:root{--color-bg:#f7f8fa;--color-surface:#fff;--color-border:#e4e7ec;--color-border-strong:#d0d5dd;--color-text:#101828;--color-text-secondary:#667085;--color-text-muted:#98a2b3;--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-primary-bg:#eef2ff;--color-primary-border:#c7d2fe;--color-danger:#dc2626;--color-danger-hover:#b91c1c;--color-danger-bg:#fef2f2;--color-danger-border:#fecaca;--color-success:#16a34a;--color-success-bg:#f0fdf4;--color-warning:#d97706;--color-warning-bg:#fffbeb;--radius-sm:6px;--radius:10px;--radius-lg:14px;--shadow-sm:0 1px 2px #1018280f;--shadow-md:0 4px 12px #10182814;--shadow-lg:0 12px 32px #1018281f;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, Helvetica, Arial, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font);color:var(--color-text);background:var(--color-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-height:100vh;margin:0}#root{min-height:100vh}h1,h2,h3{letter-spacing:-.02em;color:var(--color-text);margin:0;font-weight:600}p{margin:0}button,input{font-family:inherit}::selection{background:var(--color-primary-bg)}.app-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:10;align-items:center;gap:8px;height:60px;padding:0 24px;display:flex;position:sticky;top:0}.topbar-brand{color:var(--color-text);white-space:nowrap;align-items:center;gap:8px;margin-right:24px;font-size:15px;font-weight:700;display:flex}.topbar-brand-mark{background:var(--color-primary);color:#fff;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:flex}.topbar-nav{flex:1;gap:4px;display:flex}.topbar-link{border-radius:var(--radius-sm);color:var(--color-text-secondary);padding:8px 14px;font-size:14px;font-weight:500;text-decoration:none;transition:background .12s,color .12s}.topbar-link:hover{background:var(--color-bg);color:var(--color-text)}.topbar-link.active{background:var(--color-primary-bg);color:var(--color-primary)}.page{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:32px}.page-header{margin-bottom:24px}.page-header h1{font-size:22px}.page-header p{color:var(--color-text-secondary);margin-top:4px;font-size:14px}.btn{appearance:none;border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:6px;padding:7px 13px;font-size:13px;font-weight:500;line-height:1.2;transition:background .12s,border-color .12s,opacity .12s;display:inline-flex}.btn:hover{background:var(--color-bg)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff;justify-content:center;width:100%;padding:9px 13px;font-size:14px}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-danger{color:var(--color-danger);border-color:var(--color-danger-border);background:var(--color-danger-bg)}.btn-danger:hover{background:#fee2e2}.btn-ghost{color:var(--color-text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--color-bg);color:var(--color-text)}.btn-sm{padding:5px 10px;font-size:12px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.auth-screen{background:linear-gradient(#f7f8fa 0%,#eef0f4 100%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow-lg);padding:36px 32px}.auth-brand{align-items:center;gap:10px;margin-bottom:28px;display:flex}.auth-brand-mark{background:var(--color-primary);color:#fff;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;font-weight:700;display:flex}.auth-brand-text h1{font-size:16px}.auth-brand-text p{color:var(--color-text-secondary);font-size:12px}.field{margin-bottom:16px}.field label{color:var(--color-text);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.field input{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;color:var(--color-text);padding:9px 12px;font-size:14px;transition:border-color .12s,box-shadow .12s}.field input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg);outline:none}.auth-error{background:var(--color-danger-bg);border:1px solid var(--color-danger-border);color:var(--color-danger);border-radius:var(--radius-sm);margin-bottom:16px;padding:8px 12px;font-size:13px}.auth-switch{text-align:center;color:var(--color-text-secondary);margin-top:18px;font-size:13px}.auth-switch button{color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:600}.auth-switch button:hover{text-decoration:underline}.empty-state{text-align:center;color:var(--color-text-secondary);padding:48px 24px;font-size:14px}.badge{letter-spacing:.02em;text-transform:uppercase;background:var(--color-bg);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:999px;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-source{background:var(--color-primary-bg);color:var(--color-primary);border-color:var(--color-primary-border)}.badge-deadline{background:var(--color-warning-bg);color:var(--color-warning);border-color:#fde68a}.tender-list{flex-direction:column;gap:12px;display:flex}.tender-row{padding:16px 18px}.tender-row-top{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.tender-title{color:var(--color-text);font-size:14px;font-weight:600;line-height:1.4}.tender-title a,.pipeline-card-title a{color:inherit;text-decoration:none}.tender-title a:hover,.pipeline-card-title a:hover{color:var(--color-primary);text-decoration:underline}.tender-meta{color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;font-size:13px;display:flex}.tender-meta-sep{color:var(--color-text-muted)}.tender-actions{flex-shrink:0;gap:8px;display:flex}.pipeline-board{gap:16px;padding-bottom:8px;display:flex;overflow-x:auto}.pipeline-column{background:var(--color-bg);border-radius:var(--radius);border:1px solid var(--color-border);flex-direction:column;flex:1;gap:10px;min-width:280px;padding:12px;display:flex}.pipeline-column-header{justify-content:space-between;align-items:center;padding:4px 4px 8px;display:flex}.pipeline-column-title{color:var(--color-text);font-size:13px;font-weight:600}.pipeline-column-count{color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}.pipeline-card{flex-direction:column;gap:8px;padding:12px 14px;display:flex}.pipeline-card-title{color:var(--color-text);font-size:13px;font-weight:600;line-height:1.4}.pipeline-card-meta{color:var(--color-text-secondary);font-size:12px}.pipeline-card-actions{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}
