:root{--bg:#fff;--fg:#09090b;--card:#fff;--muted:#f4f4f5;--muted-fg:#71717a;--border:#e4e4e7;--input:#e4e4e7;--primary:#7c3aed;--primary-hover:#6d28d9;--primary-fg:#fff;--primary-soft:#f5f3ff;--ring:#7c3aed;--danger:#dc2626;--radius:.65rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 1px 3px 0 #00000014, 0 1px 2px -1px #0000000f;--sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}h1{letter-spacing:-.02em;margin:0;font-size:1.4rem;font-weight:650}h2{letter-spacing:-.01em;margin:0 0 .75rem;font-size:.95rem;font-weight:620}h3{margin:0;font-size:.9rem;font-weight:600}h4{color:var(--muted-fg);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .6rem;font-size:.8rem;font-weight:600}.wrap{max-width:1120px;margin:0 auto;padding:1.5rem clamp(1rem,4vw,2rem) 5rem}.sub{color:var(--muted-fg);margin:.15rem 0 0;font-size:.85rem}.muted{color:var(--muted-fg);font-size:.85rem}.meta{color:var(--muted-fg);font-size:.78rem}.error{color:var(--danger);border-radius:var(--radius);background:#fef2f2;border:1px solid #fecaca;margin:.75rem 0 0;padding:.6rem .8rem;font-size:.85rem}.mono{font-family:var(--mono);color:var(--muted-fg);font-size:.78rem}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.25rem;display:flex}.btn{border-radius:var(--radius);background:var(--primary);color:var(--primary-fg);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-sm);border:1px solid #0000;align-items:center;gap:.4rem;padding:.5rem .9rem;font-size:.83rem;font-weight:550;transition:background .12s,box-shadow .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--primary-hover)}.btn:disabled{opacity:.5;cursor:default}.linkbtn{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;font-weight:500}.linkbtn:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.drop{border:1.5px dashed var(--border);border-radius:var(--radius);text-align:center;background:var(--card);padding:1.5rem 1rem;transition:border-color .15s,background .15s}.drop.over{border-color:var(--primary);background:var(--primary-soft)}.drop label{cursor:pointer;color:var(--muted-fg);font-size:.85rem;font-weight:500}.drop:hover label{color:var(--fg)}.cols{grid-template-columns:300px 1fr;gap:1.25rem;margin-top:1.25rem;display:grid}@media (width<=760px){.cols{grid-template-columns:1fr}}.tenders,.summary,.materials,.emails{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1rem}.positions{flex-direction:column;gap:1rem;min-width:0;display:flex}.tenders ul{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.tenders button{text-align:left;width:100%;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:.5rem;flex-direction:column;gap:.15rem;padding:.55rem .7rem;transition:background .12s;display:flex}.tenders button:hover{background:var(--muted)}.tenders button.active{background:var(--primary-soft);border-color:color-mix(in srgb, var(--primary) 35%, transparent)}.tenders strong{font-size:.86rem;font-weight:560}.summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.materials .summary{box-shadow:none;background:0 0;border:none;margin-bottom:.75rem;padding:0}.actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.filter{border:1px solid var(--input);border-radius:var(--radius);background:var(--card);color:inherit;min-width:190px;padding:.45rem .7rem;font-size:.82rem}.filter:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}table{border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:.83rem;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.55rem .75rem}th{background:var(--muted);text-transform:uppercase;letter-spacing:.05em;color:var(--muted-fg);font-size:.68rem;font-weight:600}tbody tr:hover{background:color-mix(in srgb, var(--muted) 55%, transparent)}tr:last-child td{border-bottom:none}.num{text-align:right;font-variant-numeric:tabular-nums}td.low{color:var(--danger);font-weight:600}.badge{letter-spacing:.03em;background:var(--primary-soft);color:var(--primary);vertical-align:middle;border-radius:999px;margin-left:.5rem;padding:.05rem .45rem;font-size:.64rem;font-weight:600;display:inline-block}.rfq{border:1px solid var(--border);background:var(--card);border-radius:.5rem;margin-bottom:.5rem;padding:.6rem .8rem}.rfqhead{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.signin{border:1px solid var(--border);border-radius:var(--radius);max-width:360px;box-shadow:var(--shadow);text-align:center;margin:14vh auto 0;padding:2rem}.signin form{flex-direction:column;gap:.6rem;margin:1.25rem 0 .8rem;display:flex}.signin input{border:1px solid var(--input);border-radius:var(--radius);background:var(--card);color:inherit;padding:.6rem .75rem;font-size:.9rem}.signin input:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.signin .btn{justify-content:center;width:100%;padding:.6rem}.shell{grid-template-columns:232px 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);background:#fafafa;flex-direction:column;gap:1.5rem;height:100vh;padding:1.25rem 1rem;display:flex;position:sticky;top:0}.brand{flex-direction:column;line-height:1.1;display:flex}.brand-mark{letter-spacing:-.02em;color:var(--primary);font-size:1.15rem;font-weight:700}.brand-sub{color:var(--muted-fg);font-size:.72rem}.sidebar nav{flex-direction:column;gap:.15rem;display:flex}.navlink{color:var(--muted-fg);border-radius:.5rem;padding:.45rem .7rem;font-size:.85rem;font-weight:500;text-decoration:none;display:block}.navlink:hover{background:var(--muted);color:var(--fg)}.navlink.active{background:var(--primary-soft);color:var(--primary)}.signout{text-align:left;margin-top:auto}.content{min-width:0}@media (width<=760px){.shell{grid-template-columns:1fr}.sidebar{flex-direction:row;justify-content:space-between;align-items:center;gap:1rem;height:auto;position:static}.sidebar nav{flex-direction:row}.signout{margin-top:0}}.page{flex-direction:column;gap:1.1rem;max-width:960px;margin:0 auto;padding:1.75rem clamp(1rem,4vw,2.25rem) 5rem;display:flex}.page-head h1{font-size:1.5rem}.detail-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.1rem 1.15rem}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.85rem;display:flex}.card-head h2{margin:0}.tablewrap{overflow-x:auto}.grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.85rem;display:grid}.tendercard{color:inherit;flex-direction:column;gap:.3rem;text-decoration:none;transition:box-shadow .12s,border-color .12s,transform .12s;display:flex}a.tendercard:hover{border-color:color-mix(in srgb, var(--primary) 40%, var(--border));box-shadow:var(--shadow);transform:translateY(-1px)}.tendercard strong{font-weight:560}.pill{background:var(--muted);color:var(--muted-fg);border-radius:999px;align-self:flex-start;margin-top:.15rem;padding:.1rem .5rem;font-size:.66rem;font-weight:600}.pill-warn{color:#b45309;background:#fef3c7}.empty{border:1px dashed var(--border);border-radius:var(--radius);text-align:center;color:var(--muted-fg);padding:2.5rem}.dropzone{border:1.5px dashed var(--border);border-radius:var(--radius);background:var(--card);transition:border-color .15s,background .15s;position:relative;overflow:hidden}.dropzone.over{border-color:var(--primary);background:var(--primary-soft)}.dropzone.over .dz-icon{transform:scale(1.08)}.dropzone label{cursor:pointer;flex-direction:column;align-items:center;gap:.4rem;padding:2rem 1rem;display:flex}.dz-icon{background:var(--primary-soft);width:46px;height:46px;color:var(--primary);border-radius:999px;place-items:center;transition:transform .15s;display:grid}.dz-title{font-size:.9rem;font-weight:550}.dz-sub{color:var(--muted-fg);font-size:.78rem}.dz-progress{background:var(--primary-soft);height:3px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.dz-bar{background:var(--primary);width:40%;height:100%;animation:1.1s ease-in-out infinite indeterminate;position:absolute}@keyframes indeterminate{0%{left:-40%}to{left:100%}}.spinner-wrap{align-items:center;gap:.5rem;display:inline-flex}.spinner{border:2px solid color-mix(in srgb, currentColor 30%, transparent);border-top-color:currentColor;border-radius:999px;width:15px;height:15px;animation:.7s linear infinite spin;display:inline-block}.spinner-lg{width:26px;height:26px;color:var(--primary);border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg, var(--muted) 25%, #ececef 37%, var(--muted) 63%);background-size:400% 100%;border-radius:6px;height:.9rem;margin:.25rem 0;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.fullpage{flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:100vh;display:flex}.form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end;gap:.6rem;display:grid}.form-grid input{border:1px solid var(--input);border-radius:var(--radius);background:var(--card);color:inherit;padding:.5rem .7rem;font-size:.85rem}.form-grid input:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}@media (prefers-reduced-motion:reduce){.spinner,.skeleton,.dz-bar{animation:none}}.rfqhead-right{align-items:center;gap:.6rem;display:inline-flex}.pill-ok{color:#15803d;background:#dcfce7}.banner-ok{color:#15803d;border-radius:var(--radius);background:#f0fdf4;border:1px solid #bbf7d0;padding:.7rem .9rem;font-size:.85rem;font-weight:550}.replybox{margin-top:.6rem}.replybox textarea{border:1px solid var(--input);border-radius:var(--radius);width:100%;font-family:var(--sans);resize:vertical;color:inherit;background:var(--card);padding:.6rem .7rem;font-size:.82rem}.replybox textarea:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.replybox .actions{margin-top:.5rem}
