:root {
  /* PwC corporate palette */
  --tg-primary:      #E45C2B;  /* PwC orange */
  --tg-primary-dark: #B73E16;  /* PwC orange dark (hover) */
  --tg-accent:       #FF7900;  /* PwC bright orange */
  --tg-bg:           #F8F6F4;  /* PwC light neutral */
  --tg-card-border:  #E5E1DC;
  --tg-success:      #198754;
  --tg-warning:      #FFB600;  /* PwC yellow */
  --tg-danger:       #A32020;  /* burgundy as danger */
  --tg-na:           #6C757D;
}

body { background: var(--tg-bg); font-family: -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif; }

/* Sobrescribir colores "primary" de Bootstrap por la paleta PwC. */
.text-primary       { color: var(--tg-primary) !important; }
.bg-primary         { background-color: var(--tg-primary) !important; }
.border-primary     { border-color: var(--tg-primary) !important; }
.btn-primary        { background-color: var(--tg-primary); border-color: var(--tg-primary); }
.btn-primary:hover  { background-color: var(--tg-primary-dark); border-color: var(--tg-primary-dark); }
.btn-outline-primary       { color: var(--tg-primary); border-color: var(--tg-primary); }
.btn-outline-primary:hover { color: white; background-color: var(--tg-primary); border-color: var(--tg-primary); }
.link-primary, a.text-primary:hover, a.text-primary:focus { color: var(--tg-primary-dark) !important; }
.progress-bar.bg-primary    { background-color: var(--tg-primary) !important; }

.navbar-trustgrc {
  background: linear-gradient(135deg, var(--tg-primary) 0%, var(--tg-primary-dark) 100%);
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.navbar-trustgrc .navbar-brand,
.navbar-trustgrc .nav-link { color: rgba(255,255,255,0.92); }
.navbar-trustgrc .nav-link:hover { color: white; }
.navbar-trustgrc .nav-link.active { color: white; font-weight: 600; border-bottom: 2px solid white; }
.brand-logo {
  display: inline-block; width: 44px; height: 36px; line-height: 36px; text-align: center;
  background: white; color: var(--tg-primary); border-radius: 4px; font-weight: 700;
  font-size: 16px; letter-spacing: -0.5px; font-family: "Helvetica Neue", Arial, sans-serif;
}
.brand-logo::before {
  content: "";
  display: inline-block; width: 6px; height: 6px; border-radius: 50%;
  background: var(--tg-accent); margin-right: 4px; vertical-align: middle;
  margin-top: -3px;
}

.kpi-card {
  background: white; border: 1px solid var(--tg-card-border); border-radius: 12px;
  padding: 1.25rem; box-shadow: 0 1px 3px rgba(0,0,0,0.04); transition: transform .15s ease;
}
.kpi-card:hover { transform: translateY(-2px); }
.kpi-card .kpi-label { color: #6c757d; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.04em; }
.kpi-card .kpi-value { font-size: 2rem; font-weight: 700; color: var(--tg-primary); margin-top: 0.25rem; }
.kpi-card .kpi-meta { color: #6c757d; font-size: 0.8rem; margin-top: 0.25rem; }
.kpi-card.success .kpi-value { color: var(--tg-success); }
.kpi-card.warning .kpi-value { color: var(--tg-warning); }
.kpi-card.danger .kpi-value  { color: var(--tg-danger); }

.card-tg {
  background: white; border: 1px solid var(--tg-card-border); border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.card-tg .card-header {
  background: white; border-bottom: 1px solid var(--tg-card-border); font-weight: 600; color: var(--tg-primary);
  border-radius: 12px 12px 0 0;
}

.badge-level-C  { background: var(--tg-success); }
.badge-level-CP { background: var(--tg-warning); color: #333; }
.badge-level-NC { background: var(--tg-danger); }
.badge-level-NA { background: var(--tg-na); }

.badge-crit-Alta  { background: var(--tg-danger); }
.badge-crit-Media { background: var(--tg-warning); color: #333; }
.badge-crit-Baja  { background: var(--tg-success); }

.workflow-col {
  background: #fff; border: 1px solid var(--tg-card-border); border-radius: 10px; padding: 0.75rem;
}
.workflow-col .col-title { font-weight: 600; color: var(--tg-primary); margin-bottom: 0.5rem; }
.workflow-card {
  background: #f9fbfd; border: 1px solid var(--tg-card-border); border-radius: 8px;
  padding: 0.75rem; margin-bottom: 0.5rem; font-size: 0.9rem;
}

.requirement-row { cursor: pointer; }
.requirement-row:hover { background: #f5f8fb; }

.alert-item { border-left: 4px solid var(--tg-danger); padding: 0.75rem 1rem; background: #fff8f8; border-radius: 6px; margin-bottom: 0.5rem; }
.alert-item.warning { border-left-color: var(--tg-warning); background: #fffaf0; }
.alert-item.info    { border-left-color: var(--tg-accent); background: #f0f6fb; }

.progress { height: 8px; }
.phase-pill {
  display: inline-block; padding: 0.25rem 0.6rem; border-radius: 99px; font-size: 0.75rem; font-weight: 600;
  background: #e8eef7; color: var(--tg-primary);
}

.deliverable-card { transition: box-shadow .15s; }
.deliverable-card:hover { box-shadow: 0 4px 14px rgba(0,0,0,0.08); }

.btn-tg-primary {
  background: var(--tg-primary); color: white; border: none;
}
.btn-tg-primary:hover { background: var(--tg-primary-dark); color: white; }

table.tg-table { background: white; }
table.tg-table thead th {
  background: var(--tg-primary); color: white; font-weight: 600; font-size: 0.85rem;
  text-transform: uppercase; letter-spacing: 0.04em;
}

.brand-watermark {
  position: absolute; right: 1rem; bottom: 1rem; opacity: 0.06;
  font-size: 8rem; font-weight: 900; pointer-events: none;
}

.hash-mono { font-family: "SF Mono", "Consolas", monospace; font-size: 0.78rem; word-break: break-all; }

.rationale-box {
  background: linear-gradient(135deg, #e8f1fb 0%, #f5f9fd 100%);
  border-left: 4px solid var(--tg-accent);
  border-radius: 8px;
  padding: 1.1rem 1.4rem;
}
.rationale-header {
  font-weight: 700;
  color: var(--tg-primary);
  margin-bottom: 0.75rem;
  font-size: 1rem;
  letter-spacing: 0.02em;
  border-bottom: 1px solid rgba(31, 73, 125, 0.15);
  padding-bottom: 0.5rem;
}
.rationale-body p {
  margin: 0 0 0.7rem 0;
  font-size: 0.93rem;
  line-height: 1.55;
  color: #2c3e50;
}
.rationale-body p:last-child { margin-bottom: 0; }
.rationale-body strong { color: var(--tg-primary); font-weight: 700; }
.rationale-body ul {
  margin: 0.2rem 0 0.9rem 1.2rem;
  padding-left: 0.5rem;
}
.rationale-body ul li {
  font-size: 0.92rem;
  line-height: 1.5;
  color: #2c3e50;
  margin-bottom: 0.3rem;
}

/* Agrupación por marco normativo */
.framework-group {
  background: white;
  border: 1px solid var(--tg-card-border);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}
.framework-header {
  padding: 1rem 1.25rem;
  background: linear-gradient(180deg, #fafbfd 0%, #f4f6f9 100%);
  border-bottom: 1px solid var(--tg-card-border);
}
.framework-code {
  font-family: "SF Mono", "Consolas", monospace;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 0.15rem;
}
.framework-name {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--tg-primary);
  line-height: 1.3;
}
.framework-meta {
  margin-top: 0.25rem;
}
.fw-count {
  font-weight: 600;
  color: var(--tg-accent);
}
.biblio-details summary {
  cursor: pointer;
  user-select: none;
}
.biblio-details summary::-webkit-details-marker { color: var(--tg-accent); }
.framework-table-wrap {
  overflow-x: auto;
}
.framework-table-wrap table { font-size: 0.88rem; }
.framework-table-wrap thead th {
  font-size: 0.75rem;
  letter-spacing: 0.05em;
}
