:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#17202a;background:#f4f7f9}*{box-sizing:border-box}body{margin:0}.hidden{display:none!important}.login-shell{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0c3b47,#156b73 55%,#44a89d)}.login-card{width:min(420px,90vw);background:#fff;padding:36px;border-radius:18px;box-shadow:0 24px 60px #001c2540}.brand-mark{width:58px;height:58px;display:grid;place-items:center;border-radius:15px;background:#0b6b73;color:#fff;font-weight:800;letter-spacing:.05em}.login-card h1{margin:20px 0 4px}.login-card p{margin:0 0 24px;color:#60717a}.login-card label{display:grid;gap:8px;font-weight:650}.login-card input,.field input,.field select,.field textarea{padding:12px 13px;border:1px solid #cbd7dc;border-radius:9px;font:inherit;background:#fff}.login-card button,.primary{margin-top:18px;width:100%;padding:12px;border:0;border-radius:9px;background:#0b6b73;color:#fff;font-weight:750;cursor:pointer}.error{min-height:22px;color:#b42318;margin-top:12px}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}aside{background:#102d35;color:#dcecef;padding:22px 16px;display:flex;flex-direction:column}.logo{display:flex;align-items:center;gap:10px;padding:0 8px 24px}.logo span{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;background:#2a918b;color:#fff;font-weight:850}.logo strong{font-size:14px}nav{display:grid;gap:6px}nav button,.logout{border:0;background:transparent;color:#bcd0d4;text-align:left;padding:11px 12px;border-radius:8px;font:inherit;cursor:pointer}nav button:hover,nav button.active{background:#21434b;color:#fff}.logout{margin-top:auto;border:1px solid #31535a}main{padding:26px 30px;min-width:0}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}header h1{margin:0;font-size:28px}header p{margin:5px 0 0;color:#687981}.status-pill{padding:7px 11px;border-radius:999px;background:#e6f6f2;color:#11756d;font-size:13px;font-weight:700}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.card,.panel{background:#fff;border:1px solid #e1e9ec;border-radius:13px;box-shadow:0 4px 14px #15323a0a}.card{padding:18px}.card span{font-size:13px;color:#657780}.card strong{display:block;font-size:28px;margin-top:8px}.panel{padding:20px;margin-top:18px}.panel h2{font-size:17px;margin:0 0 15px}.toolbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:16px}.field{display:grid;gap:6px;min-width:160px}.field label{font-size:12px;font-weight:700;color:#52646b}.toolbar button,.small{padding:10px 14px;border:0;border-radius:8px;background:#0b6b73;color:#fff;font-weight:700;cursor:pointer}.secondary{background:#e7eff1!important;color:#1b4851!important}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:11px 9px;border-bottom:1px solid #e7edef;vertical-align:top}th{font-size:12px;color:#62747b;text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-block;padding:3px 7px;border-radius:999px;background:#edf3f4;font-size:12px}.badge.good{background:#ddf5eb;color:#13715d}.badge.warn{background:#fff0cf;color:#8b5a00}.badge.bad{background:#fee4e2;color:#b42318}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.empty{padding:28px;text-align:center;color:#708087}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}.notice{padding:12px;border-radius:9px;background:#eaf6f5;color:#17635e;margin-bottom:14px}.danger{background:#b42318!important}.row-actions{display:flex;gap:6px}.row-actions button{padding:6px 9px;border:0;border-radius:6px;cursor:pointer}.json{white-space:pre-wrap;max-height:420px;overflow:auto;background:#102d35;color:#d8f4ef;padding:14px;border-radius:9px}@media(max-width:1050px){.cards{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{grid-template-columns:1fr}aside{position:static}nav{grid-template-columns:repeat(2,1fr)}main{padding:18px}.cards{grid-template-columns:1fr}}

.login-card label{margin-top:12px}.link-button{background:transparent!important;color:#0b6b73!important;margin-top:8px!important}.user-card{display:grid;gap:3px;margin-top:auto;padding:14px 10px;border-top:1px solid #31535a}.user-card span,.user-card small{color:#a9c4c9;font-size:12px}.logout{margin-top:8px}.grow{flex:1}.profile-hero{margin-top:18px;background:linear-gradient(135deg,#0f4955,#168078);color:white;border-radius:15px;padding:24px;display:flex;justify-content:space-between;align-items:center}.profile-hero h2{font-size:26px;margin:5px 0}.profile-hero p{margin:0;color:#c9e8e5}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:.12em;color:#a9d9d4}.score{margin-left:8px}.profile-cards{grid-template-columns:repeat(6,minmax(0,1fr));margin-top:14px}.tabs{display:flex;gap:5px;margin-top:18px;border-bottom:1px solid #dbe5e8}.tabs button{border:0;background:transparent;padding:12px 14px;cursor:pointer;color:#60747b}.tabs button.active{color:#0b6b73;border-bottom:3px solid #0b6b73;font-weight:700}.panel-head{display:flex;justify-content:space-between;align-items:center}.record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.record-card{border:1px solid #e1e9ec;border-radius:10px;padding:15px}.record-card p{margin:7px 0;color:#5f7178}.editor{margin-top:18px;padding:15px;background:#f3f8f8;border-radius:10px}.timeline article{display:grid;grid-template-columns:20px 1fr;gap:8px;padding:0 0 18px}.timeline-dot{width:10px;height:10px;border-radius:50%;background:#168078;margin-top:5px}.timeline p{margin:4px 0;color:#60747b}.timeline small{color:#829197}@media(max-width:1100px){.profile-cards{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.profile-hero{align-items:flex-start;gap:12px;flex-direction:column}.profile-cards,.record-grid{grid-template-columns:1fr}.tabs{overflow-x:auto}}
.activity-feed {
  display: flex;
  flex-direction: column;
}

.activity-item {
  position: relative;
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 12px;
  padding: 16px 4px;
  border-bottom: 1px solid #e2e8ec;
}

.activity-item:last-child {
  border-bottom: 0;
}

.activity-marker {
  width: 11px;
  height: 11px;
  margin-top: 5px;
  border-radius: 50%;
  background: #8a9ca5;
  box-shadow: 0 0 0 4px #edf2f4;
}

.activity-good .activity-marker {
  background: #15966f;
  box-shadow: 0 0 0 4px #daf4eb;
}

.activity-bad .activity-marker {
  background: #c84343;
  box-shadow: 0 0 0 4px #fde7e7;
}

.activity-warn .activity-marker {
  background: #d69624;
  box-shadow: 0 0 0 4px #fff0ce;
}

.activity-running .activity-marker {
  background: #087d86;
  box-shadow: 0 0 0 4px #d7f1f3;
  animation: activity-pulse 1.5s infinite;
}

.activity-body {
  min-width: 0;
}

.activity-heading {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
}

.activity-heading strong {
  color: #102631;
}

.activity-heading > span {
  flex: 0 0 auto;
  color: #71838d;
  font-size: 13px;
}

.activity-detail {
  margin-top: 7px;
  color: #b63434;
  font-size: 13px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.activity-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: center;
  margin-top: 9px;
  color: #71838d;
  font-size: 12px;
}

.activity-subtitle {
  margin-top: 3px;
  color: #71838d;
  font-size: 12px;
}

.activity-feed-status {
  display: flex;
  gap: 7px;
  align-items: center;
  color: #087d68;
  font-size: 13px;
  font-weight: 700;
}

.activity-live-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #14a77d;
  animation: activity-pulse 1.5s infinite;
}

@keyframes activity-pulse {
  0% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: .45;
    transform: scale(.82);
  }

  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@media (max-width: 800px) {
  .activity-heading {
    display: block;
  }

  .activity-heading > span {
    display: block;
    margin-top: 5px;
  }
}
.source-error {
  max-width: 360px;
  color: #b63434;
  overflow-wrap: anywhere;
}
.sync-worker-panel {
    margin-bottom: 20px;
}

.worker-summary {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.worker-key {
    max-width: 310px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.worker-resource {
    margin-top: 6px;
    font-size: 0.75rem;
}

.worker-offline-row {
    opacity: 0.72;
}

.worker-offline-row td {
    background: rgba(100, 116, 139, 0.04);
}

.worker-error-row td {
    padding-top: 0;
    border-top: 0;
}

.worker-error {
    padding: 10px 12px;
    border-left: 3px solid var(--danger, #dc2626);
    border-radius: 4px;
    background: rgba(220, 38, 38, 0.07);
    color: var(--text-secondary, #475569);
    font-size: 0.82rem;
    line-height: 1.45;
    overflow-wrap: anywhere;
    white-space: pre-wrap;
}

.worker-error strong {
    color: var(--danger, #dc2626);
}

.text-danger {
    color: var(--danger, #dc2626);
}

.empty-state code {
    display: inline-block;
    margin-top: 10px;
    padding: 8px 10px;
    border-radius: 6px;
    background: rgba(15, 23, 42, 0.06);
    overflow-wrap: anywhere;
}

@media (max-width: 900px) {
    .worker-summary {
        margin-top: 10px;
    }

    .sync-worker-panel .table-wrap {
        overflow-x: auto;
    }

    .sync-worker-panel table {
        min-width: 1050px;
    }
}


/* Sprint 13.3 Phase G — permission-aware navigation */
nav button.hidden {
  display: none !important;
}

.permission-denied {
  padding: 30px;
  text-align: center;
  color: #6c7d84;
}
/* ---------------------------------------------------------
   Phase N3 — NPPES identity match review
   --------------------------------------------------------- */

.nppes-search-toolbar {
  align-items: end;
}

.nppes-review-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-top: 20px;
}

.nppes-review-header h2 {
  margin: 5px 0 4px;
}

.nppes-review-summary {
  display: grid;
  justify-items: end;
  gap: 8px;
  max-width: 440px;
  text-align: right;
}

.nppes-review-summary small {
  line-height: 1.45;
}

.nppes-review-grid {
  align-items: start;
}

.nppes-source-panel,
.nppes-database-panel {
  min-width: 0;
}

.nppes-source-panel h3,
.nppes-database-panel h3 {
  margin-top: 24px;
}

.detail-table th {
  width: 155px;
  vertical-align: top;
  white-space: nowrap;
}

.compact-table {
  font-size: 0.9rem;
}

.compact-table th,
.compact-table td {
  padding: 9px 10px;
}

.nppes-comparison-table td,
.nppes-comparison-table th {
  vertical-align: top;
}

.nppes-comparison-table tr.comparison-match {
  background: rgba(16, 185, 129, 0.05);
}

.nppes-comparison-table tr.comparison-different {
  background: rgba(220, 38, 38, 0.06);
}

.nppes-comparison-table tr.comparison-missing_in_database,
.nppes-comparison-table tr.comparison-missing_in_nppes {
  background: rgba(245, 158, 11, 0.06);
}

.nppes-review-actions {
  display: grid;
  gap: 16px;
}

.nppes-review-actions > .toolbar {
  justify-content: flex-end;
}

.nppes-no-candidate {
  min-height: 180px;
  display: grid;
  place-items: center;
  text-align: center;
}

#np-import-result {
  margin-top: 4px;
}

@media (max-width: 1050px) {
  .nppes-review-header {
    display: grid;
  }

  .nppes-review-summary {
    justify-items: start;
    text-align: left;
  }

  .nppes-review-actions > .toolbar {
    justify-content: flex-start;
  }
}
