/* ────────────────────────────────────────────────────────────────────
 * Spartan CRM — Installation Schedule V2.1 augmentation
 * (WIP-SCHED-V2.1-INTEGRATION-01)
 * Companion to modules/17c-install-schedule-v2.js.
 * Scoped under .is-v21-wrap; legacy 17-install-schedule.js styles untouched.
 * ──────────────────────────────────────────────────────────────────── */

.is-v21-wrap {
  --is-red:#C41230; --is-red-dark:#A50E27; --is-ink:#0A0A0A;
  --is-s50:#FAFAF9; --is-s100:#F5F5F4; --is-s200:#E7E5E4; --is-s300:#D6D3D1;
  --is-s500:#78716C; --is-s600:#57534E; --is-s700:#44403C;
  --is-ok-bg:#DCFCE7; --is-ok-fg:#15803D;
  --is-due-bg:#FEE2E2; --is-due-fg:#DC2626; --is-due-deep:#991B1B;
  --is-pending-bg:#FEF3C7; --is-pending-fg:#D97706; --is-pending-deep:#92400E;
  --is-info-bg:#DBEAFE; --is-info-fg:#1D4ED8;
  --is-purple:#7C3AED;
  --is-tip-deep:#0369A1;
  font-family:'Archivo',system-ui,sans-serif;
  margin-bottom:14px;
  display:flex; flex-direction:column; gap:14px;
}

@keyframes is-pulse-banner-critical {
  0%,100% { box-shadow:0 0 0 0 rgba(220,38,38,.35), inset 0 0 0 1.5px rgba(220,38,38,.6); }
  50%     { box-shadow:0 0 0 6px rgba(220,38,38,0), inset 0 0 0 2px rgba(220,38,38,.9); }
}
@media (prefers-reduced-motion: reduce) {
  .is-v21-wrap .is-hiring-banner.critical { animation:none !important; }
}

.is-v21-wrap svg { width:14px; height:14px; flex-shrink:0; }
.is-eyebrow {
  font-family:'Archivo Narrow',system-ui,sans-serif;
  font-size:10px; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--is-s500);
}

/* Hiring banner */
.is-hiring-banner {
  background:linear-gradient(135deg,#FEF3C7 0%,#FDE68A 100%);
  border:1.5px solid var(--is-pending-fg);
  border-radius:14px; padding:14px 18px;
  display:flex; align-items:center; gap:14px;
  position:relative; overflow:hidden;
}
.is-hiring-banner.critical {
  background:linear-gradient(135deg,#FEE2E2 0%,#FECACA 100%);
  border-color:var(--is-due-fg);
  animation:is-pulse-banner-critical 2.4s ease-in-out infinite;
}
.is-hiring-banner::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--is-pending-fg); }
.is-hiring-banner.critical::before { background:var(--is-due-fg); }
.is-hiring-icon {
  width:36px; height:36px; border-radius:10px;
  background:var(--is-pending-fg); color:#fff;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.is-hiring-banner.critical .is-hiring-icon { background:var(--is-due-fg); }
.is-hiring-icon svg { width:18px; height:18px; stroke-width:2.2; }
.is-hiring-body { flex:1; display:flex; flex-direction:column; gap:2px; }
.is-hiring-title { font-size:13.5px; font-weight:800; color:var(--is-pending-deep); letter-spacing:-.005em; }
.is-hiring-banner.critical .is-hiring-title { color:var(--is-due-deep); }
.is-hiring-text { font-size:12px; line-height:1.45; color:#292524; }
.is-hiring-text b { color:var(--is-ink); font-weight:700; }
.is-hiring-actions { display:flex; gap:6px; flex-shrink:0; }
.is-hiring-action {
  padding:6px 11px; font-family:'Archivo Narrow'; font-size:11px; font-weight:700;
  background:#fff; border:1px solid var(--is-pending-fg); border-radius:7px;
  color:var(--is-pending-deep); cursor:pointer;
  letter-spacing:.04em; text-transform:uppercase;
}
.is-hiring-banner.critical .is-hiring-action { border-color:var(--is-due-fg); color:var(--is-due-deep); }
.is-hiring-action:hover { background:var(--is-ink); color:#fff; border-color:var(--is-ink); }
.is-hiring-action.primary { background:var(--is-pending-fg); color:#fff; }
.is-hiring-banner.critical .is-hiring-action.primary { background:var(--is-due-fg); }

/* State legend */
.is-state-legend {
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  padding:10px 14px;
  background:#fff; border:1px solid var(--is-s200); border-radius:10px;
}
.is-state-legend-title { font-family:'Archivo Narrow'; font-size:10px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--is-s700); }
.is-state-item { display:flex; align-items:center; gap:7px; font-family:'Archivo Narrow'; font-size:11.5px; font-weight:700; color:var(--is-s700); letter-spacing:.02em; }
.is-state-swatch { width:14px; height:10px; border-radius:2px; }
.is-state-swatch.locked { background:var(--is-red); }
.is-state-swatch.proposed { background:repeating-linear-gradient(45deg,var(--is-pending-fg) 0,var(--is-pending-fg) 3px,#F59E0B 3px,#F59E0B 6px); }
.is-state-swatch.unsched { background:transparent; border:1.5px dashed var(--is-s500); }
.is-state-count {
  font-family:'Archivo Narrow'; font-size:10px; font-weight:800;
  background:var(--is-s100); padding:1px 6px; border-radius:4px; color:var(--is-s700);
  letter-spacing:.04em;
}
.is-cluster-legend-pill {
  display:inline-flex; align-items:center; gap:5px;
  font-family:'Archivo Narrow'; font-size:10px; font-weight:800;
  letter-spacing:.06em; text-transform:uppercase;
  background:rgba(14,165,233,.12); color:var(--is-tip-deep);
  border:1px solid rgba(14,165,233,.3);
  padding:3px 7px; border-radius:5px;
}
.is-cluster-legend-dot {
  width:14px; height:14px; border-radius:50%;
  background:var(--is-tip-deep); color:#fff;
  font-size:9px; font-weight:800;
  display:inline-flex; align-items:center; justify-content:center;
}
