/* VeriSpec — Dashboard styles */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'IBM Plex Sans',system-ui,sans-serif;background:#fafbfc;color:#1a1a2e;min-height:100vh}

.nav{display:flex;align-items:center;padding:0.75rem 2rem;border-bottom:1px solid #e2e6ea;background:#fff}
.brand{font-family:'Archivo',sans-serif;font-weight:800;font-size:1.1rem;color:#1a1a2e;text-decoration:none}
.brand em{color:#22c55e;font-style:normal}
.nav-links{display:flex;gap:1.5rem;margin-left:3rem}
.nav-links a{font-size:0.85rem;color:#64748b;text-decoration:none;font-weight:500}
.nav-links a.active{color:#1a1a2e;border-bottom:2px solid #1a1a2e;padding-bottom:2px}
.nav-cta{margin-left:auto;display:flex;align-items:center;gap:1rem}
.user-name{font-size:0.85rem;color:#64748b}
.btn{font-size:0.8rem;padding:0.4rem 0.9rem;border-radius:6px;border:none;cursor:pointer;text-decoration:none;font-weight:500}
.btn-ghost{background:none;color:#64748b;border:1px solid #d1d5db}
.btn-ghost:hover{background:#f1f5f9}
.btn-solid{background:#1a1a2e;color:#fff}
.btn-solid:hover{background:#2d2d4a}
.btn-sm{font-size:0.75rem;padding:0.3rem 0.7rem}

.dash-main{max-width:1000px;margin:2rem auto;padding:0 2rem}
.dash-header{display:flex;align-items:baseline;gap:1rem;margin-bottom:1.5rem}
.dash-header h1{font-family:'Archivo',sans-serif;font-size:1.5rem;font-weight:700}
.dash-org{font-size:0.85rem;color:#64748b}

.impact-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem}
.impact-tile{background:#fff;border:1px solid #e2e6ea;border-radius:10px;padding:1rem 1.2rem;
  border-top:3px solid #cbd5e1}
.impact-num{font-family:'Archivo',sans-serif;font-weight:800;font-size:2rem;color:#1a1a2e;font-variant-numeric:tabular-nums}
.impact-label{font-size:0.8rem;font-weight:600;color:#1a1a2e;margin-top:0.15rem}
.impact-sub{font-size:0.72rem;color:#64748b;margin-top:0.25rem}
/* Each metric keeps one hue on its accent bar + hero number; labels and
   sublines stay in ink/muted so the color carries identity, not text. */
.tile-co{border-top-color:#dc7d76}   .tile-co .impact-num{color:#991b1b}
.tile-rfi{border-top-color:#e2aa5f}  .tile-rfi .impact-num{color:#b45309}
.tile-pkg{border-top-color:#7fb6dc}  .tile-pkg .impact-num{color:#22689c}
.tile-usd{border-top-color:#7ec9a2}  .tile-usd .impact-num{color:#166534}

.dash-filters{display:flex;gap:0.5rem;margin-bottom:1rem;align-items:center;flex-wrap:wrap}
.scope-tabs{display:inline-flex;gap:0.5rem}
.filter-sep{width:1px;height:18px;background:#e2e6ea;margin:0 0.4rem}
.tab{font-size:0.8rem;padding:0.35rem 0.8rem;border-radius:16px;border:1px solid #d1d5db;background:none;color:#64748b;cursor:pointer;font-weight:500}
.tab.active{background:#1a1a2e;color:#fff;border-color:#1a1a2e}
.tab:hover:not(.active){background:#f1f5f9}

.dash-table{width:100%;border-collapse:collapse;font-size:0.85rem}
.dash-table th{text-align:left;padding:0.6rem 0.8rem;font-weight:600;color:#64748b;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.04em;border-bottom:2px solid #e2e6ea}
.dash-table td{padding:0.7rem 0.8rem;border-bottom:1px solid #f1f5f9}
.job-row:hover{background:#f8fafc}
.job-spec{font-weight:500;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.status-badge{font-size:0.7rem;font-weight:600;padding:0.2rem 0.5rem;border-radius:10px;text-transform:uppercase;letter-spacing:0.03em}
.status-badge.done{background:#dcfce7;color:#166534}
.status-badge.running{background:#dbeafe;color:#1e40af}
.status-badge.pending{background:#fef9c3;color:#854d0e}
.status-badge.error,.status-badge.dead_letter{background:#fee2e2;color:#991b1b}
.status-badge.draft{background:#f1f5f9;color:#64748b}

.rc{font-size:0.75rem;font-weight:600;margin-right:0.5rem}
.rc.pass{color:#166534}.rc.fail{color:#991b1b}.rc.indet{color:#854d0e}

.dash-empty{text-align:center;padding:4rem 2rem;color:#64748b}
.dash-empty p{margin-bottom:1rem;font-size:1rem}
