.vendors-dashboard{--vd-ink:var(--text-primary,#0f1335);--vd-muted:var(--text-secondary,#4a5680);--vd-surface:var(--bg-light,#f4f6fc);--vd-surface-2:var(--bg-alt,#e8ecf8);--vd-panel:var(--white,#fff);--vd-stroke:#10153d1f;--vd-accent:var(--logo-sky,#38bdf8);--vd-accent-strong:var(--logo-royal,#2563eb);--vd-accent-soft:#38bdf829;--vd-magenta:var(--logo-magenta,#e0196e);--vd-ink-deep:var(--logo-ink,#08083a);--vd-ok:var(--success-green,#2e8b57);--vd-warn:#8a6a1f;--vd-danger:#7a2e4a;--vd-radius:.375rem;color:var(--vd-ink)}.vendors-dashboard *,.vendors-dashboard :before,.vendors-dashboard :after{box-sizing:border-box}.vendors-dashboard button,.vendors-dashboard input,.vendors-dashboard select{font:inherit;color:inherit}.vendors-dashboard .dashboard{flex-direction:column;gap:1.25rem;max-width:72rem;margin:0 auto;padding:0 0 3rem;display:flex}.vendors-dashboard .dashboard.with-detail{padding-right:min(26rem,34vw)}.vendors-dashboard .meta-row{color:var(--vd-muted);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;font-size:.875rem;display:flex}.vendors-dashboard .match-note{background:color-mix(in srgb,var(--vd-accent-soft)55%,white);border:1px solid var(--vd-stroke);border-radius:var(--vd-radius);color:var(--vd-muted);margin:0;padding:.85rem 1.05rem;font-size:.875rem;line-height:1.5}.vendors-dashboard .match-note strong{color:var(--vd-ink);font-weight:600}.vendors-dashboard .filter-bar{background:var(--vd-panel);border:1px solid var(--vd-stroke);border-radius:var(--vd-radius);flex-direction:column;gap:.85rem;padding:1rem 1.1rem;display:flex}.vendors-dashboard .filter-bar.is-loading{opacity:.72;pointer-events:none}.vendors-dashboard .filter-row{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.vendors-dashboard .filter-field{flex-direction:column;gap:.3rem;min-width:7.5rem;display:flex}.vendors-dashboard .filter-field.grow{flex:16rem}.vendors-dashboard .filter-field span{text-transform:uppercase;letter-spacing:.06em;color:var(--vd-muted);font-size:.72rem;font-weight:600}.vendors-dashboard .filter-field input,.vendors-dashboard .filter-field select{border:1px solid var(--vd-stroke);background:var(--vd-surface);border-radius:var(--vd-radius);min-height:2.4rem;padding:.5rem .65rem}.vendors-dashboard .filter-field input:focus,.vendors-dashboard .filter-field select:focus{outline:2px solid color-mix(in srgb,var(--vd-accent)55%,white);outline-offset:1px}.vendors-dashboard .filter-actions{gap:.5rem;margin-left:auto;display:flex}.vendors-dashboard .btn{border:1px solid var(--vd-stroke);background:var(--vd-surface-2);border-radius:var(--vd-radius);cursor:pointer;min-height:2.4rem;padding:.5rem .85rem;font-weight:500}.vendors-dashboard .btn:disabled{opacity:.45;cursor:not-allowed}.vendors-dashboard .btn.ghost{background:0 0}.vendors-dashboard .btn.primary{background:var(--vd-ink-deep);border-color:var(--vd-ink-deep);color:#fff}.vendors-dashboard .btn.primary:hover{background:var(--primary-navy,#10153d)}.vendors-dashboard .status-chips{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.vendors-dashboard .chip-label,.vendors-dashboard .year-hint{color:var(--vd-muted);font-size:.75rem}.vendors-dashboard .year-hint{margin-left:auto}.vendors-dashboard .chip{border:1px solid var(--vd-stroke);background:var(--vd-surface);cursor:pointer;color:var(--vd-muted);border-radius:999px;padding:.28rem .65rem;font-size:.8rem}.vendors-dashboard .chip.all{opacity:.85}.vendors-dashboard .chip.active{background:var(--vd-accent-soft);border-color:var(--vd-accent-strong);color:var(--vd-ink-deep);font-weight:600}.vendors-dashboard .chip.clear{border-style:dashed}.vendors-dashboard .kpi-row{grid-template-columns:1.4fr repeat(3,1fr);gap:.75rem;display:grid}.vendors-dashboard .kpi{background:var(--vd-panel);border:1px solid var(--vd-stroke);border-radius:var(--vd-radius);flex-direction:column;gap:.35rem;padding:.95rem 1.05rem;display:flex}.vendors-dashboard .kpi.primary{color:#fff;background:linear-gradient(135deg,#08083a 0%,#152a5c 55%,#2563eb 140%);border-color:#0000}.vendors-dashboard .kpi.primary .kpi-label{color:#ffffffc7}.vendors-dashboard .kpi-label{text-transform:uppercase;letter-spacing:.07em;color:var(--vd-muted);font-size:.72rem;font-weight:600}.vendors-dashboard .kpi-value{font-family:var(--font-plus-jakarta),var(--font-inter),ui-sans-serif,system-ui,sans-serif;letter-spacing:-.02em;font-size:1.65rem;font-weight:700;line-height:1.1}.vendors-dashboard .charts-grid{grid-template-columns:1fr 1.15fr;gap:.85rem;display:grid}.vendors-dashboard .charts-grid.three{grid-template-columns:repeat(3,1fr)}.vendors-dashboard .panel{background:var(--vd-panel);border:1px solid var(--vd-stroke);border-radius:var(--vd-radius)}.vendors-dashboard .panel-header{padding:.95rem 1.1rem .35rem}.vendors-dashboard .panel-header h2{font-family:var(--font-plus-jakarta),var(--font-inter),ui-sans-serif,system-ui,sans-serif;color:var(--vd-ink);letter-spacing:-.02em;margin:0;font-size:1.15rem;font-weight:700}.vendors-dashboard .panel-header p{color:var(--vd-muted);margin:.25rem 0 0;font-size:.88rem}.vendors-dashboard .chart-wrap{padding:.25rem .5rem}.vendors-dashboard .caption{color:var(--vd-muted);padding:0 1.1rem .85rem;font-size:.72rem}.vendors-dashboard .tabs-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.vendors-dashboard .tabs{gap:.25rem;padding:0 1.1rem 0 0;display:flex}.vendors-dashboard .tab{cursor:pointer;color:var(--vd-muted);background:0 0;border:none;border-bottom:2px solid #0000;padding:.55rem .75rem;font-weight:500}.vendors-dashboard .tab.active{color:var(--vd-ink-deep);border-bottom-color:var(--vd-magenta)}.vendors-dashboard .table-block{padding:.25rem 0 0}.vendors-dashboard .table-scroll{max-height:32rem;overflow:auto}.vendors-dashboard table{border-collapse:collapse;width:100%;font-size:.88rem}.vendors-dashboard th,.vendors-dashboard td{text-align:left;border-bottom:1px solid var(--vd-stroke);white-space:nowrap;padding:.65rem 1rem}.vendors-dashboard th{background:var(--vd-surface-2);text-transform:uppercase;letter-spacing:.05em;color:var(--vd-muted);z-index:1;font-size:.72rem;font-weight:600;position:sticky;top:0}.vendors-dashboard th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.vendors-dashboard th.num,.vendors-dashboard td.num{text-align:right;font-variant-numeric:tabular-nums}.vendors-dashboard tbody tr{cursor:pointer}.vendors-dashboard tbody tr:hover{background:color-mix(in srgb,var(--vd-accent-soft)55%,white)}.vendors-dashboard tbody tr.selected{background:var(--vd-accent-soft)}.vendors-dashboard .table-footer{color:var(--vd-muted);border-top:1px solid var(--vd-stroke);justify-content:space-between;align-items:center;padding:.75rem 1rem;font-size:.82rem;display:flex}.vendors-dashboard .pager{gap:.4rem;display:flex}.vendors-dashboard .pivot-note{color:var(--vd-muted);padding:.5rem 1rem .25rem;font-size:.85rem}.vendors-dashboard .status-pill{letter-spacing:.02em;background:var(--vd-surface-2);color:var(--vd-muted);border-radius:999px;padding:.15rem .5rem;font-size:.72rem;font-weight:600;display:inline-block}.vendors-dashboard .status-matched{color:var(--vd-ok);background:#dcecde}.vendors-dashboard .status-name_only{color:var(--vd-warn);background:#f3ead0}.vendors-dashboard .status-protected{color:var(--vd-ink-deep);background:#08083a1a}.vendors-dashboard .status-list_only{color:#3d4f63;background:#e2e8f0}.vendors-dashboard .detail-panel{background:var(--vd-panel);border-left:1px solid var(--vd-stroke);z-index:60;width:min(24rem,92vw);height:100vh;padding:1.25rem 1.15rem 2rem;position:fixed;top:0;right:0;overflow:auto;box-shadow:-8px 0 32px #08083a1f}.vendors-dashboard .detail-header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.vendors-dashboard .detail-header .eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--vd-accent-strong);margin:0;font-size:.72rem;font-weight:600}.vendors-dashboard .detail-header h2{font-family:var(--font-plus-jakarta),var(--font-inter),ui-sans-serif,system-ui,sans-serif;color:var(--vd-ink);margin:.2rem 0 .55rem;font-size:1.35rem;font-weight:700;line-height:1.2}.vendors-dashboard .detail-stats{gap:.75rem;margin:0 0 1.25rem;display:grid}.vendors-dashboard .detail-stats div{border-top:1px solid var(--vd-stroke);padding-top:.55rem}.vendors-dashboard .detail-stats dt{text-transform:uppercase;letter-spacing:.06em;color:var(--vd-muted);font-size:.72rem}.vendors-dashboard .detail-stats dd{margin:.2rem 0 0;font-weight:500}.vendors-dashboard .detail-chart h3,.vendors-dashboard .detail-contracts h3{margin-bottom:.5rem;font-size:.95rem;font-weight:700}.vendors-dashboard .detail-contracts ul{margin:0;padding:0;list-style:none}.vendors-dashboard .detail-contracts li{border-bottom:1px solid var(--vd-stroke);justify-content:space-between;gap:.75rem;padding:.45rem 0;font-size:.84rem;display:flex}.vendors-dashboard .contract-meta{flex-direction:column;gap:.15rem;min-width:0;display:flex}.vendors-dashboard .contract-id{font-variant-numeric:tabular-nums;color:var(--vd-muted)}.vendors-dashboard .contract-sub{color:var(--vd-muted);white-space:normal;font-size:.75rem;line-height:1.3}.vendors-dashboard .loading-block{min-height:12rem;color:var(--vd-muted);background:var(--vd-panel);border:1px dashed var(--vd-stroke);border-radius:var(--vd-radius);text-align:center;place-items:center;gap:.75rem;padding:2rem 1rem;display:grid}.vendors-dashboard .loading-block .spinner{border:2px solid var(--vd-stroke);border-top-color:var(--vd-accent-strong);border-radius:50%;width:1.75rem;height:1.75rem;animation:.8s linear infinite vendors-spin}@keyframes vendors-spin{to{transform:rotate(360deg)}}.vendors-dashboard .error-block{border:1px solid color-mix(in srgb,var(--vd-magenta)35%,var(--vd-stroke));border-radius:var(--vd-radius);background:color-mix(in srgb,var(--vd-magenta)8%,white);color:var(--vd-ink);padding:1.25rem}.vendors-dashboard{--ink:var(--vd-ink);--muted:var(--vd-muted);--surface:var(--vd-surface);--stroke:var(--vd-stroke);--accent:var(--vd-accent-strong);--accent-strong:var(--vd-magenta)}@media (max-width:1100px){.vendors-dashboard .charts-grid.three{grid-template-columns:1fr}}@media (max-width:960px){.vendors-dashboard .dashboard.with-detail{padding-right:0}.vendors-dashboard .kpi-row,.vendors-dashboard .charts-grid{grid-template-columns:1fr}.vendors-dashboard .filter-actions{margin-left:0}.vendors-dashboard .detail-panel{width:100%}}
