* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  margin: 0;
  background: var(--app-bg);
  color: var(--app-text);
  font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: .94rem;
}
a { text-decoration: none; }
.app-icon { display: inline-block; flex: 0 0 auto; vertical-align: -.15em; fill: currentColor; }
.btn { border-radius: .65rem; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; gap: .45rem; }
.btn-primary { background: linear-gradient(135deg, var(--ntt-primary), #0088d1); border-color: var(--ntt-primary); box-shadow: 0 7px 16px rgba(0, 114, 188, .18); }
.btn-primary:hover { background: #005f9f; border-color: #005f9f; }
.form-control, .form-select, .input-group-text { border-color: #d7e1ea; border-radius: .65rem; min-height: 44px; }
.form-control:focus, .form-select:focus { border-color: var(--ntt-secondary); box-shadow: 0 0 0 .2rem rgba(0, 167, 225, .14); }
textarea.form-control { min-height: 120px; }

.app-shell { min-height: 100vh; display: flex; }
.app-sidebar {
  position: fixed; inset: 0 auto 0 0; z-index: 1040; width: 270px;
  display: flex; flex-direction: column; color: #e9f2f9;
  background:
    radial-gradient(circle at 10% 10%, rgba(0, 167, 225, .14), transparent 32%),
    linear-gradient(180deg, var(--ntt-dark) 0%, #0a1b2d 100%);
  box-shadow: 8px 0 24px rgba(5, 20, 34, .12); transition: transform .25s ease;
}
.brand { min-height: 82px; padding: 1.25rem 1.35rem; display: flex; gap: .85rem; align-items: center; color: #fff; border-bottom: 1px solid rgba(255,255,255,.08); }
.brand:hover { color: #fff; }
.brand-mark { width: 48px; height: 36px; border-radius: 9px; display: grid; place-items: center; font-weight: 900; letter-spacing: -.05em; background: linear-gradient(135deg, var(--ntt-secondary), var(--ntt-primary)); box-shadow: 0 8px 20px rgba(0,167,225,.28); }
.brand > span:last-child { display: flex; flex-direction: column; line-height: 1.1; }
.brand strong { font-size: 1rem; letter-spacing: .02em; }
.brand small { margin-top: .22rem; color: #a9bfd2; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.sidebar-nav { padding: 1.15rem .8rem; display: flex; flex-direction: column; gap: .2rem; overflow-y: auto; }
.nav-section { padding: 1rem .85rem .35rem; color: #6f8aa2; font-size: .65rem; font-weight: 800; text-transform: uppercase; letter-spacing: .13em; }
.sidebar-link { display: flex; align-items: center; gap: .72rem; min-height: 44px; padding: .72rem .85rem; border-radius: .65rem; color: #b9cadd; transition: all .2s ease; }
.sidebar-link span { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.sidebar-link small { color: #71869a; font-size: .64rem; }
.sidebar-link:hover { color: #fff; background: rgba(255,255,255,.06); transform: translateX(2px); }
.sidebar-link.active { color: #fff; background: linear-gradient(90deg, rgba(0,114,188,.38), rgba(0,167,225,.12)); box-shadow: inset 3px 0 var(--ntt-secondary); }
.sidebar-link.disabled { opacity: .55; cursor: not-allowed; }
.sidebar-footer { margin-top: auto; padding: 1rem 1.35rem 1.35rem; border-top: 1px solid rgba(255,255,255,.08); color: #9eb3c5; font-size: .75rem; }
.sidebar-footer small { display: block; margin: .35rem 0 0 1rem; color: #70889d; }
.status-dot { display: inline-block; width: 8px; height: 8px; margin-right: .4rem; background: #45d483; border-radius: 50%; box-shadow: 0 0 0 4px rgba(69,212,131,.12); }

.app-main { min-height: 100vh; margin-left: 270px; width: calc(100% - 270px); }
.app-navbar { position: sticky; top: 0; z-index: 1020; min-height: 72px; padding: 0 1.75rem; display: flex; align-items: center; gap: 1rem; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--app-border); backdrop-filter: blur(12px); }
.sidebar-toggle { display: none; }
.page-context { display: flex; flex-direction: column; line-height: 1.1; }
.context-eyebrow { color: var(--ntt-primary); font-size: .61rem; font-weight: 800; letter-spacing: .12em; }
.page-context strong { margin-top: .2rem; color: var(--ntt-dark); font-size: .9rem; }
.navbar-actions { display: flex; align-items: center; gap: 1rem; }
.user-summary { display: flex; align-items: center; gap: .65rem; }
.user-summary strong { font-size: .82rem; color: var(--ntt-dark); }
.user-summary small { color: var(--app-text-muted); font-size: .69rem; }
.user-avatar { width: 38px; height: 38px; display: grid; place-items: center; color: #fff; font-weight: 800; border-radius: 12px; background: linear-gradient(135deg, var(--ntt-primary), var(--ntt-secondary)); box-shadow: 0 7px 16px rgba(0,114,188,.2); }
.user-avatar.small { width: 34px; height: 34px; border-radius: 10px; font-size: .78rem; }
.app-content { padding: 2rem; max-width: 1700px; margin: 0 auto; }

.page-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.25rem; margin-bottom: 1.75rem; }
.page-header h1 { margin: .25rem 0 .35rem; font-size: clamp(1.55rem, 2.5vw, 2.2rem); font-weight: 750; letter-spacing: -.035em; color: var(--ntt-dark); }
.page-header p { margin: 0; color: var(--app-text-muted); max-width: 760px; }
.section-label { color: var(--ntt-primary); font-size: .67rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.environment-badge { padding: .55rem .8rem; color: #00639e; background: #e7f5fc; border: 1px solid #bee5f7; border-radius: 999px; font-size: .72rem; font-weight: 700; }

.metric-card, .content-card { background: var(--app-surface); border: 1px solid rgba(213,225,235,.9); border-radius: 1rem; box-shadow: var(--app-shadow); }
.metric-card { min-height: 122px; padding: 1.15rem; display: flex; align-items: center; gap: 1rem; }
.metric-icon { width: 48px; height: 48px; display: grid; place-items: center; color: var(--ntt-primary); background: linear-gradient(135deg, #e6f4fc, #f1f9fd); border-radius: 14px; }
.metric-card > div:last-child { display: flex; flex-direction: column; }
.metric-card span { color: var(--app-text-muted); font-size: .77rem; font-weight: 650; }
.metric-card strong { margin-top: .1rem; color: var(--ntt-dark); font-size: 1.75rem; line-height: 1.1; }
.metric-card small { margin-top: .15rem; color: #8aa0b3; font-size: .65rem; }
.muted-metric { background: linear-gradient(135deg, #fbfcfd, #f5f8fa); }
.content-card { padding: 1.35rem; }
.card-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; }
.card-heading h2 { margin: .15rem 0 0; color: var(--ntt-dark); font-size: 1.1rem; font-weight: 750; }

.activity-list { display: flex; flex-direction: column; }
.activity-item { display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: .8rem; padding: .85rem 0; border-bottom: 1px solid #edf1f5; }
.activity-item:last-child { border-bottom: 0; }
.activity-icon { width: 34px; height: 34px; display: grid; place-items: center; color: var(--ntt-primary); background: #eef7fc; border-radius: 10px; }
.activity-item div { display: flex; flex-direction: column; }
.activity-item strong { font-size: .78rem; }
.activity-item span, .activity-item time { color: var(--app-text-muted); font-size: .7rem; }
.quick-actions { display: flex; flex-direction: column; gap: .55rem; }
.quick-actions a { display: grid; grid-template-columns: 30px 1fr 18px; align-items: center; gap: .75rem; padding: .85rem; color: var(--app-text); background: #f8fafc; border: 1px solid #edf1f5; border-radius: .75rem; transition: all .2s ease; }
.quick-actions a:hover { transform: translateY(-1px); border-color: #bee3f5; background: #f2f9fd; }
.quick-actions a > .app-icon:first-child { color: var(--ntt-primary); }
.quick-actions span { display: flex; flex-direction: column; }
.quick-actions strong { font-size: .78rem; }
.quick-actions small { color: var(--app-text-muted); font-size: .68rem; }

.filter-bar { max-width: 560px; margin-bottom: 1rem; }
.modern-table { margin: 0; }
.modern-table thead th { padding: .8rem .75rem; color: #718397; background: #f8fafc; border-bottom-width: 1px; font-size: .67rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }
.modern-table tbody td { padding: .9rem .75rem; border-color: #edf1f5; color: #314a61; }
.modern-table tbody tr:hover { background: #fbfdff; }
.entity-cell { display: flex; align-items: center; gap: .7rem; min-width: 220px; }
.entity-cell > span:last-child { display: flex; flex-direction: column; }
.entity-cell strong { color: var(--ntt-dark); font-size: .82rem; }
.entity-cell small { color: var(--app-text-muted); font-size: .7rem; }
.entity-icon { width: 36px; height: 36px; display: grid; place-items: center; color: var(--ntt-primary); background: #eef7fc; border-radius: 10px; }
.status-badge { display: inline-flex; align-items: center; gap: .4rem; padding: .33rem .58rem; border-radius: 999px; font-size: .68rem; font-weight: 700; }
.status-badge i { width: 6px; height: 6px; border-radius: 50%; }
.status-badge.active { color: #126a42; background: #e8f7ef; }
.status-badge.active i { background: #20a464; }
.status-badge.inactive { color: #687989; background: #eef1f4; }
.status-badge.inactive i { background: #8c9aa6; }
.audit-table code { color: #006cae; font-size: .7rem; }

.form-options { display: flex; flex-wrap: wrap; gap: 1.5rem; padding: .8rem 1rem; margin: .5rem 0 1.25rem; background: #f8fafc; border: 1px solid #edf1f5; border-radius: .75rem; }
.form-options .form-check { margin-bottom: 0 !important; }
.form-actions { display: flex; justify-content: flex-end; gap: .65rem; padding-top: 1rem; border-top: 1px solid #edf1f5; }
.empty-state { min-height: 150px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; color: #8aa0b3; text-align: center; }
.empty-state p { margin: 0; }
.empty-state.large { min-height: 360px; }
.empty-state.large h2 { margin: .5rem 0 0; color: var(--ntt-dark); font-size: 1.25rem; }
.app-toast { border: 0; box-shadow: 0 14px 35px rgba(11,31,51,.14); }
.toast-indicator { width: 9px; height: 9px; margin-right: .5rem; border-radius: 50%; }
.sidebar-backdrop { display: none; }

.auth-body { overflow-x: hidden; background: #fff; }
.auth-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(460px, 1.15fr) minmax(420px, .85fr); }
.auth-visual { position: relative; overflow: hidden; display: flex; align-items: center; padding: clamp(3rem, 8vw, 8rem); color: #fff; background: radial-gradient(circle at 15% 15%, rgba(0,167,225,.28), transparent 25%), linear-gradient(145deg, #071a2c 0%, #0c2c48 55%, #064b75 100%); }
.auth-visual-content { position: relative; z-index: 2; max-width: 690px; }
.auth-kicker { display: inline-block; margin-bottom: 1.25rem; color: #8edcff; font-size: .7rem; font-weight: 800; letter-spacing: .18em; }
.auth-visual h1 { margin: 0 0 1.25rem; font-size: clamp(2.3rem, 5vw, 4.7rem); font-weight: 750; line-height: 1.02; letter-spacing: -.055em; }
.auth-visual p { max-width: 630px; color: #c0d5e6; font-size: clamp(1rem, 1.3vw, 1.2rem); line-height: 1.7; }
.auth-features { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 2rem; }
.auth-features span { padding: .55rem .75rem; color: #d9edf8; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); border-radius: 999px; font-size: .72rem; }
.technical-grid { position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px); background-size: 48px 48px; mask-image: linear-gradient(90deg, #000, transparent); }
.auth-panel { display: grid; place-items: center; padding: 2rem; background: #fff; }
.auth-card { width: min(100%, 440px); }
.auth-logo { display: flex; align-items: center; gap: .6rem; margin-bottom: 3rem; color: var(--ntt-dark); font-size: .82rem; font-weight: 750; }
.auth-logo span { display: inline-grid; place-items: center; width: 48px; height: 34px; color: #fff; font-weight: 900; background: linear-gradient(135deg, var(--ntt-primary), var(--ntt-secondary)); border-radius: 8px; }
.auth-card h2 { color: var(--ntt-dark); font-weight: 750; letter-spacing: -.025em; }
.auth-card footer { margin-top: 3rem; color: #93a4b2; font-size: .7rem; text-align: center; }
.security-note { display: flex; flex-direction: column; padding: .85rem 1rem; color: #536d81; background: #f5f9fc; border-left: 3px solid var(--ntt-secondary); border-radius: .45rem; }
.security-note strong { font-size: .75rem; }
.security-note span { font-size: .68rem; }
.error-code { color: var(--ntt-primary); font-size: 5rem; font-weight: 850; line-height: 1; letter-spacing: -.06em; }

@media (max-width: 991.98px) {
  .app-sidebar { transform: translateX(-100%); }
  body.sidebar-open .app-sidebar { transform: translateX(0); }
  .app-main { width: 100%; margin-left: 0; }
  .sidebar-toggle { display: inline-flex; }
  body.sidebar-open .sidebar-backdrop { display: block; position: fixed; inset: 0; z-index: 1030; background: rgba(4,16,28,.48); backdrop-filter: blur(2px); }
  .auth-shell { grid-template-columns: 1fr; }
  .auth-visual { display: none; }
  .auth-panel { min-height: 100vh; }
}
@media (max-width: 575.98px) {
  .app-navbar { padding: 0 1rem; }
  .app-content { padding: 1.25rem 1rem; }
  .page-header { flex-direction: column; }
  .page-header > .btn { width: 100%; }
  .content-card { padding: 1rem; }
  .activity-item { grid-template-columns: 34px 1fr; }
  .activity-item time { grid-column: 2; }
  .form-actions { flex-direction: column-reverse; }
  .form-actions .btn { width: 100%; }
  .auth-panel { padding: 1.25rem; }
  .auth-logo { margin-bottom: 2rem; }
}

/* Phase 3: SAMM catalog */
.metric-card.compact { min-height: 98px; padding: .9rem; }
.metric-card.compact strong { font-size: 1.45rem; }
.metric-card .metric-text { font-size: 1rem; overflow-wrap: anywhere; }
.catalog-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .75rem; }
.catalog-grid > a { display: grid; grid-template-columns: 38px 1fr 18px; gap: .8rem; align-items: center; padding: 1rem; color: var(--app-text); border: 1px solid #e6edf3; border-radius: .85rem; background: #fafcfe; transition: .2s ease; }
.catalog-grid > a:hover { border-color: #9fd6ef; background: #f1f9fd; transform: translateY(-1px); }
.catalog-grid > a > .app-icon:first-child { color: var(--ntt-primary); }
.catalog-grid span { display: flex; flex-direction: column; }
.catalog-grid strong { color: var(--ntt-dark); font-size: .83rem; }
.catalog-grid small { color: var(--app-text-muted); font-size: .69rem; line-height: 1.45; }
.version-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 0; color: var(--app-text); border-bottom: 1px solid #edf1f5; }
.version-row:last-child { border-bottom: 0; }
.version-row > span:first-child { display: flex; flex-direction: column; }
.version-row strong { color: var(--ntt-dark); font-size: .78rem; }
.version-row small { color: var(--app-text-muted); font-size: .68rem; }
.import-drop-card { padding: 2rem; }
.import-icon { width: 78px; height: 78px; display: grid; place-items: center; margin: 0 auto 1.25rem; color: var(--ntt-primary); background: #edf8fd; border: 1px dashed #94d2ed; border-radius: 1.2rem; }
.sticky-card { position: sticky; top: 92px; }
.form-section-title { margin: 1rem 0; padding-top: 1rem; color: var(--ntt-dark); border-top: 1px solid #edf1f5; font-size: 1rem; }
.level-pill { display: inline-grid; place-items: center; min-width: 30px; height: 30px; padding: 0 .45rem; color: #006aa6; background: #e8f6fc; border: 1px solid #bee5f7; border-radius: 9px; font-size: .75rem; font-weight: 800; }
.hierarchy-path { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; padding: .75rem; color: #536d81; background: #f7fafc; border-radius: .7rem; font-size: .75rem; }
.detail-heading { margin: 0 0 .75rem; color: var(--ntt-dark); font-size: .88rem; }
.criterion-list { display: flex; flex-direction: column; gap: .55rem; padding-left: 1.2rem; color: #405a70; font-size: .78rem; }
.answer-option { display: grid; grid-template-columns: 26px 1fr auto; align-items: start; gap: .65rem; padding: .55rem 0; border-bottom: 1px solid #edf1f5; font-size: .75rem; }
.answer-option strong { color: var(--ntt-primary); }
.answer-option b { color: #1b7750; }
.timeline { position: relative; padding-left: 1.2rem; }
.timeline::before { content: ''; position: absolute; left: 5px; top: 5px; bottom: 5px; width: 2px; background: #dbe9f2; }
.timeline-item { position: relative; display: flex; gap: .75rem; padding: 0 0 1.1rem; }
.timeline-dot { position: absolute; left: -1.2rem; top: 4px; width: 12px; height: 12px; border: 3px solid #d9f2fc; border-radius: 50%; background: var(--ntt-primary); }
.timeline-item div { display: flex; flex-direction: column; }
.timeline-item strong { color: var(--ntt-dark); font-size: .8rem; }
.timeline-item small { color: var(--app-text-muted); font-size: .67rem; }
.timeline-item p { margin: .25rem 0 0; color: #536d81; font-size: .75rem; }
@media (max-width: 767.98px) { .catalog-grid { grid-template-columns: 1fr; } .sticky-card { position: static; } }

/* Phase 4: assessment execution and review */
.multi-select { min-height: 180px; padding: .5rem; }
.assessment-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.assessment-card { display: flex; flex-direction: column; min-height: 360px; padding: 1.25rem; background: var(--app-surface); border: 1px solid #d9e5ee; border-radius: 1rem; box-shadow: var(--app-shadow); }
.assessment-card-top, .assessment-card footer, .assessment-progress > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.assessment-card-top > small { color: var(--app-text-muted); font-size: .68rem; font-weight: 700; }
.assessment-identity { display: flex; align-items: center; gap: .8rem; margin-top: 1.1rem; }
.assessment-identity h2 { margin: 0; color: var(--ntt-dark); font-size: 1rem; }
.assessment-identity p, .assessment-description { margin: .2rem 0 0; color: var(--app-text-muted); font-size: .74rem; }
.assessment-description { min-height: 44px; margin-top: 1rem; line-height: 1.55; }
.assessment-progress { margin-top: auto; }
.assessment-progress span { color: var(--app-text-muted); font-size: .72rem; }
.assessment-progress strong { color: var(--ntt-primary); font-size: 1rem; }
.progress { height: 8px; background: #e9f0f5; border-radius: 999px; overflow: hidden; }
.progress-bar { background: linear-gradient(90deg, var(--ntt-primary), var(--ntt-secondary)); }
.assessment-progress .progress { margin-top: .5rem; }
.assessment-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; margin: 1rem 0; }
.assessment-stats span { display: flex; flex-direction: column; padding: .55rem; color: var(--app-text-muted); background: #f7fafc; border-radius: .6rem; font-size: .61rem; text-align: center; }
.assessment-stats b { color: var(--ntt-dark); font-size: .95rem; }
.assessment-card footer { padding-top: .9rem; border-top: 1px solid #edf1f5; color: var(--app-text-muted); font-size: .69rem; }
.status-chip { display: inline-flex; align-items: center; gap: .38rem; width: fit-content; padding: .36rem .62rem; border-radius: 999px; color: #536d81; background: #edf2f6; font-size: .67rem; font-weight: 750; white-space: nowrap; }
.status-chip i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.status-draft, .status-unanswered { color: #657786; background: #eef2f5; }
.status-configured, .status-answered { color: #006ca8; background: #e5f5fc; }
.status-in_progress { color: #005f9f; background: #e1f1fa; }
.status-submitted, .status-in_review { color: #735b05; background: #fff5cf; }
.status-observed { color: #985e00; background: #fff0d6; }
.status-rejected, .status-cancelled { color: #a82935; background: #fde9eb; }
.status-approved, .status-completed, .status-published, .status-closed { color: #16714a; background: #e6f6ed; }
.evidence-pending { color: #735b05; background: #fff5cf; }
.evidence-valid { color: #16714a; background: #e6f6ed; }
.evidence-rejected, .evidence-quarantined { color: #a82935; background: #fde9eb; }
.assessment-hero { display: grid; grid-template-columns: 160px 1fr 1.25fr; gap: 2rem; align-items: center; padding: 1.5rem; color: #fff; background: radial-gradient(circle at 10% 20%, rgba(0,167,225,.3), transparent 30%), linear-gradient(130deg, var(--ntt-dark), #124364); border-radius: 1rem; box-shadow: 0 14px 35px rgba(11,31,51,.16); }
.assessment-hero h2 { margin: .7rem 0 0; font-size: 2rem; }
.assessment-hero p { margin: 0; color: #bcd1e0; font-size: .72rem; }
.hero-progress .progress { height: 11px; background: rgba(255,255,255,.15); }
.hero-progress span { display: block; margin-top: .55rem; color: #bcd1e0; font-size: .7rem; }
.hero-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.hero-meta span { display: flex; flex-direction: column; padding: .75rem; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.08); border-radius: .7rem; }
.hero-meta small { color: #9fb9cc; font-size: .62rem; text-transform: uppercase; letter-spacing: .06em; }
.hero-meta strong { margin-top: .2rem; font-size: .8rem; }
.assignment-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .7rem; }
.assignment-person { display: flex; align-items: center; gap: .65rem; padding: .75rem; background: #f7fafc; border: 1px solid #edf1f5; border-radius: .75rem; }
.assignment-person > span:last-child { display: flex; flex-direction: column; }
.assignment-person strong { color: var(--ntt-dark); font-size: .77rem; }
.assignment-person small { color: var(--app-text-muted); font-size: .66rem; }
.review-note-list { display: flex; flex-direction: column; gap: .7rem; }
.review-note { padding: .9rem; background: #fffaf0; border-left: 3px solid var(--ntt-warning); border-radius: .6rem; }
.review-note.resolved { opacity: .72; background: #f3faf6; border-left-color: var(--ntt-success); }
.review-note > div:first-child { display: flex; justify-content: space-between; }
.review-note strong { color: var(--ntt-dark); font-size: .76rem; }
.review-note small { color: var(--app-text-muted); font-size: .65rem; }
.review-note p { margin: .5rem 0; color: #496276; font-size: .75rem; white-space: pre-wrap; }
.status-actions { display: flex; flex-wrap: wrap; gap: .5rem; padding-top: 1rem; border-top: 1px solid #edf1f5; }
.detail-list { margin: 0; }
.detail-list > div { display: flex; justify-content: space-between; gap: 1rem; padding: .65rem 0; border-bottom: 1px solid #edf1f5; }
.detail-list > div:last-child { border-bottom: 0; }
.detail-list dt { color: var(--app-text-muted); font-size: .7rem; font-weight: 600; }
.detail-list dd { margin: 0; color: var(--ntt-dark); font-size: .72rem; font-weight: 700; text-align: right; }
.question-layout { display: grid; grid-template-columns: 300px minmax(0,1fr); gap: 1.25rem; align-items: start; }
.question-sidebar { position: sticky; top: 92px; max-height: calc(100vh - 115px); overflow: hidden; background: var(--app-surface); border: 1px solid #d9e5ee; border-radius: 1rem; box-shadow: var(--app-shadow); }
.question-sidebar-head { padding: 1rem; border-bottom: 1px solid #edf1f5; }
.question-sidebar-head strong { display: block; margin: .3rem 0 .6rem; color: var(--ntt-dark); font-size: .83rem; }
.question-tree { max-height: calc(100vh - 225px); padding: .7rem; overflow-y: auto; }
.question-tree details > summary { display: flex; align-items: center; gap: .45rem; padding: .55rem; color: var(--ntt-dark); border-radius: .5rem; cursor: pointer; font-size: .72rem; font-weight: 750; }
.question-tree details > summary::marker { color: var(--ntt-primary); }
.question-tree summary > span { color: var(--ntt-primary); }
.question-tree summary > small { margin-left: auto; color: #8297a8; font-size: .6rem; }
.tree-level-2 { margin-left: .55rem; }
.tree-level-2 > summary { color: #405a70 !important; font-weight: 650 !important; }
.tree-stream { margin: .25rem 0 .55rem 1.05rem; padding-left: .55rem; border-left: 1px solid #dce8f0; }
.tree-stream > span { display: block; padding: .35rem .4rem; color: #7890a4; font-size: .62rem; font-weight: 700; }
.tree-question { display: grid; grid-template-columns: 8px 1fr auto; align-items: center; gap: .45rem; padding: .4rem; color: #526a7e; border-radius: .45rem; font-size: .65rem; }
.tree-question:hover, .tree-question.active { color: var(--ntt-primary); background: #edf8fd; }
.tree-question small { color: #8da0af; font-size: .58rem; }
.state-dot { width: 7px; height: 7px; border-radius: 50%; background: #a5b2bc; }
.state-dot.state-answered, .state-dot.state-configured { background: var(--ntt-secondary); }
.state-dot.state-submitted { background: var(--ntt-warning); }
.state-dot.state-observed { background: #f09226; }
.state-dot.state-rejected { background: var(--ntt-danger); }
.state-dot.state-approved { background: var(--ntt-success); }
.question-workspace { min-width: 0; }
.question-list > a { display: grid; grid-template-columns: 105px minmax(0,1fr) 48px auto 20px; align-items: center; gap: .8rem; padding: .9rem 1rem; color: var(--app-text); border-bottom: 1px solid #edf1f5; }
.question-list > a:last-child { border-bottom: 0; }
.question-list > a:hover { background: #f8fcfe; }
.question-code { color: var(--ntt-primary); font-size: .68rem; font-weight: 800; }
.question-list-body { display: flex; min-width: 0; flex-direction: column; }
.question-list-body strong { color: var(--ntt-dark); font-size: .76rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.question-list-body small { color: var(--app-text-muted); font-size: .64rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.question-page-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.question-page-header > div { display: flex; flex-direction: column; }
.question-page-header a { color: var(--ntt-primary); font-size: .72rem; font-weight: 700; }
.question-page-header span { color: var(--app-text-muted); font-size: .68rem; }
.question-card { padding: 1.4rem; background: linear-gradient(145deg, #fff, #f8fbfd); border: 1px solid #d9e5ee; border-radius: 1rem; box-shadow: var(--app-shadow); }
.question-card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; color: var(--app-text-muted); font-size: .67rem; }
.question-card h1, .question-card h2 { margin: 1rem 0; color: var(--ntt-dark); font-size: clamp(1.15rem, 2vw, 1.55rem); line-height: 1.45; }
.guidance-box, .criteria-box { padding: .9rem 1rem; margin-top: .8rem; border-radius: .7rem; }
.guidance-box { color: #315c74; background: #edf8fd; border-left: 3px solid var(--ntt-secondary); }
.guidance-box strong, .criteria-box strong { display: block; margin-bottom: .35rem; font-size: .74rem; }
.guidance-box p { margin: 0; font-size: .74rem; white-space: pre-wrap; }
.criteria-box { color: #4d6274; background: #f7f9fb; border: 1px solid #e7edf2; }
.criteria-box ul { margin: .4rem 0 0; padding-left: 1.15rem; font-size: .72rem; }
.answer-choice-list { display: flex; flex-direction: column; gap: .65rem; }
.answer-choice { display: grid; grid-template-columns: 22px 1fr; gap: .75rem; align-items: start; padding: .85rem; border: 1px solid #dce6ee; border-radius: .75rem; cursor: pointer; transition: .18s ease; }
.answer-choice:hover, .answer-choice.selected { border-color: #8ecce8; background: #f0f9fd; }
.answer-choice > span { display: flex; flex-direction: column; }
.answer-choice strong { color: var(--ntt-dark); font-size: .75rem; }
.answer-choice small { margin-top: .2rem; color: var(--ntt-primary); font-size: .64rem; font-weight: 700; }
.no-apply-switch { margin: 1rem 0; padding: .85rem .85rem .85rem 3.2rem; background: #fff9e8; border: 1px solid #f4df9f; border-radius: .7rem; }
.response-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1rem; border-top: 1px solid #edf1f5; }
.response-actions > div { display: flex; gap: .55rem; }
.autosave-state { display: inline-flex; align-items: center; gap: .4rem; color: var(--app-text-muted); font-size: .67rem; }
.autosave-state.saving { color: var(--ntt-primary); }
.autosave-state.error { color: var(--ntt-danger); }
.review-feedback { padding: .8rem; margin-bottom: 1rem; border-left: 3px solid var(--ntt-warning); background: #fff8e5; border-radius: .6rem; }
.review-feedback strong { font-size: .73rem; }
.review-feedback p { margin: .35rem 0 0; font-size: .74rem; white-space: pre-wrap; }
.evidence-list, .evidence-review-list { display: flex; flex-direction: column; gap: .6rem; }
.evidence-item { display: grid; grid-template-columns: 42px minmax(0,1fr) auto 38px 38px; align-items: center; gap: .65rem; padding: .7rem; background: #f8fafc; border: 1px solid #edf1f5; border-radius: .7rem; }
.evidence-icon { width: 38px; height: 38px; display: grid; place-items: center; color: var(--ntt-primary); background: #e8f5fb; border-radius: .6rem; }
.evidence-item > div, .evidence-review-head > div { display: flex; min-width: 0; flex-direction: column; }
.evidence-item strong, .evidence-review-head strong { color: var(--ntt-dark); font-size: .73rem; overflow-wrap: anywhere; }
.evidence-item small, .evidence-review-head small { color: var(--app-text-muted); font-size: .62rem; }
.evidence-item p { margin: .2rem 0 0; color: #60788b; font-size: .67rem; }
.question-navigation { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; }
.question-navigation > a:last-child { justify-self: end; }
.question-navigation > span { color: var(--app-text-muted); font-size: .68rem; }
.score-pill { min-width: 48px; padding: .55rem; color: #14704a; background: #e4f6ec; border-radius: .65rem; font-size: .9rem; font-weight: 800; text-align: center; }
.response-comment { padding: 1rem; color: #405a70; background: #f8fafc; border-radius: .7rem; font-size: .78rem; white-space: pre-wrap; }
.evidence-review-item { padding: .8rem; background: #f8fafc; border: 1px solid #e5edf3; border-radius: .75rem; }
.evidence-review-head { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: .7rem; margin-bottom: .7rem; }
.review-decision-list { display: grid; grid-template-columns: repeat(3,1fr); gap: .5rem; margin-bottom: 1rem; }
.review-decision { display: flex; flex-direction: column; align-items: center; gap: .45rem; padding: .7rem; background: #f8fafc; border: 1px solid #e0e8ef; border-radius: .65rem; cursor: pointer; font-size: .68rem; font-weight: 700; }
@media (max-width: 1199.98px) { .assessment-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .assessment-hero { grid-template-columns: 140px 1fr; } .hero-meta { grid-column: 1 / -1; } }
@media (max-width: 991.98px) { .question-layout { grid-template-columns: 1fr; } .question-sidebar { position: static; max-height: none; } .question-tree { max-height: 320px; } }
@media (max-width: 767.98px) { .assessment-card-grid { grid-template-columns: 1fr; } .assessment-hero { grid-template-columns: 1fr; gap: 1rem; } .hero-meta { grid-template-columns: 1fr; } .assignment-grid { grid-template-columns: 1fr; } .question-list > a { grid-template-columns: 85px minmax(0,1fr) 40px; } .question-list .status-chip, .question-list > a > .app-icon { display: none; } .evidence-item { grid-template-columns: 40px minmax(0,1fr) auto; } .evidence-item > .status-chip { grid-column: 2; } .evidence-item > a, .evidence-item > form { grid-row: 1; } .response-actions { align-items: stretch; flex-direction: column; } .response-actions > div { flex-direction: column; } .question-navigation { grid-template-columns: 1fr 1fr; } .question-navigation > span { display: none; } }
.dashboard-assessment-list { display: flex; flex-direction: column; }
.dashboard-assessment-list > a { display: grid; grid-template-columns: 42px 1fr 52px 18px; align-items: center; gap: .75rem; padding: .8rem 0; color: var(--app-text); border-bottom: 1px solid #edf1f5; }
.dashboard-assessment-list > a:last-child { border-bottom: 0; }
.dashboard-assessment-list > a > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.dashboard-assessment-list strong { color: var(--ntt-dark); font-size: .76rem; }
.dashboard-assessment-list small { color: var(--app-text-muted); font-size: .64rem; }
.dashboard-assessment-list b { color: var(--ntt-primary); font-size: .78rem; text-align: right; }

/* Phase 5: scoring, analytics, recommendations and roadmap */
.results-hero {
  display: grid; grid-template-columns: 190px 1fr 220px; align-items: center; gap: 1.5rem;
  padding: 1.5rem; color: var(--app-text); background:
    radial-gradient(circle at 0 0, rgba(0,167,225,.12), transparent 35%),
    var(--app-surface); border: 1px solid var(--app-border); border-radius: 1.1rem; box-shadow: var(--app-shadow);
}
.maturity-gauge { --score: 0; width: 158px; height: 158px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(var(--ntt-primary) calc(var(--score) * 1%), #e5edf3 0); position: relative; }
.maturity-gauge::after { content:""; position:absolute; inset:14px; border-radius:50%; background:var(--app-surface); box-shadow: inset 0 0 0 1px var(--app-border); }
.maturity-gauge > div { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; }
.maturity-gauge strong { color:var(--ntt-dark); font-size:2.3rem; letter-spacing:-.05em; line-height:1; }
.maturity-gauge span { margin-top:.35rem; color:var(--app-text-muted); font-size:.72rem; }
.results-hero-copy h2 { margin:.2rem 0 .45rem; color:var(--ntt-dark); font-size:1.35rem; }
.results-hero-copy p { max-width:760px; margin:0; color:var(--app-text-muted); }
.result-chip { display:inline-flex; align-items:center; gap:.4rem; padding:.42rem .65rem; color:#38536a; background:#f3f8fb; border:1px solid #dceaf2; border-radius:999px; font-size:.7rem; font-weight:700; }
.results-actions { display:flex; flex-direction:column; gap:.65rem; padding-left:1.25rem; border-left:1px solid var(--app-border); }
.results-actions small { color:var(--app-text-muted); text-align:center; font-size:.65rem; }
.chart-card { min-height:430px; }
.chart-wrap { position:relative; min-height:350px; }
.chart-wrap.radar { min-height:360px; }
.chart-wrap.compact-chart { min-height:290px; }
.chart-unavailable { height:100%; min-height:260px; display:grid; place-items:center; color:var(--app-text-muted); background:#f7fafc; border-radius:.75rem; }
.score-progress { width:150px; height:7px; overflow:hidden; background:#e7edf2; border-radius:999px; }
.score-progress > div { height:100%; background:linear-gradient(90deg,var(--ntt-primary),var(--ntt-secondary)); border-radius:inherit; }
.gap-badge { display:inline-flex; min-width:54px; justify-content:center; padding:.3rem .5rem; border-radius:999px; font-weight:800; font-size:.72rem; }
.gap-badge.gap-high { color:#9f2330; background:#fdecef; }
.gap-badge.gap-medium { color:#876400; background:#fff6d8; }
.gap-badge.gap-low { color:#19704a; background:#eaf8f0; }
.heatmap-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.heatmap-cell { display:flex; flex-direction:column; min-height:168px; padding:1rem; border:1px solid; border-radius:.85rem; }
.heatmap-cell > span { color:var(--app-text-muted); font-size:.63rem; text-transform:uppercase; letter-spacing:.06em; }
.heatmap-cell > strong { margin:.35rem 0 .9rem; color:var(--ntt-dark); font-size:.85rem; }
.heatmap-cell > div { margin-top:auto; display:flex; align-items:end; justify-content:space-between; }
.heatmap-cell b { font-size:1.45rem; }
.heatmap-cell small { color:var(--app-text-muted); }
.heatmap-cell a { margin-top:.65rem; display:flex; justify-content:space-between; align-items:center; font-size:.68rem; font-weight:750; }
.heat-critical { background:#fff2f3; border-color:#f3bdc3; }
.heat-high { background:#fff8ed; border-color:#f0d2a6; }
.heat-medium { background:#fffceb; border-color:#ebe0a4; }
.heat-low { background:#eff9f4; border-color:#bfe3d0; }
.recommendation-list { display:flex; flex-direction:column; gap:.85rem; }
.compact-list article { display:grid; grid-template-columns:6px 1fr auto; align-items:center; gap:.85rem; padding:.85rem 0; border-bottom:1px solid var(--app-border); }
.compact-list article:last-child { border-bottom:0; }
.compact-list article > div { display:flex; flex-direction:column; }
.compact-list article strong { color:var(--ntt-dark); font-size:.82rem; }
.compact-list article small { color:var(--app-text-muted); font-size:.68rem; }
.priority-marker { width:5px; height:38px; border-radius:999px; }
.priority-critical { background:#dc3545; }
.priority-high { background:#f16e32; }
.priority-medium { background:#e1ad00; }
.priority-low { background:#4c9dc8; }
.action-banner { display:flex; align-items:center; justify-content:space-between; gap:1.25rem; background:linear-gradient(120deg,#f3f9fd,#fff); }
.action-banner > div { display:flex; align-items:center; gap:1rem; }
.action-banner-icon { width:48px; height:48px; display:grid; place-items:center; color:var(--ntt-primary); background:#e4f4fc; border-radius:14px; }
.action-banner strong { color:var(--ntt-dark); }
.action-banner p { margin:.2rem 0 0; color:var(--app-text-muted); font-size:.76rem; }
.filter-panel { padding:1rem 1.25rem; }
.recommendation-card { display:grid; grid-template-columns:95px 1fr 190px; gap:1.2rem; padding:1.2rem; border:1px solid var(--app-border); border-radius:.9rem; background:var(--app-surface); }
.recommendation-priority { display:flex; flex-direction:column; gap:.5rem; align-items:flex-start; border-right:1px solid var(--app-border); }
.recommendation-priority > span { padding:.32rem .5rem; color:#fff; border-radius:.45rem; font-size:.66rem; font-weight:800; text-transform:uppercase; }
.recommendation-priority.priority-critical > span { background:#dc3545; }
.recommendation-priority.priority-high > span { background:#f16e32; }
.recommendation-priority.priority-medium > span { background:#c99b00; }
.recommendation-priority.priority-low > span { background:#438bad; }
.recommendation-priority b { display:flex; align-items:center; gap:.2rem; color:#a26b00; font-size:.63rem; }
.recommendation-body h3 { margin:.15rem 0 .45rem; color:var(--ntt-dark); font-size:1.05rem; }
.recommendation-body > p { color:#52677a; font-size:.8rem; }
.risk-note { display:flex; flex-direction:column; margin:.75rem 0; padding:.75rem; background:#fff8ed; border-left:3px solid #f0ad4e; border-radius:.45rem; }
.risk-note strong { color:#8b5b17; font-size:.67rem; text-transform:uppercase; }
.risk-note span { margin-top:.2rem; color:#6c5a40; font-size:.74rem; }
.recommendation-meta { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.75rem; margin-top:1rem; }
.recommendation-meta span { display:flex; flex-direction:column; }
.recommendation-meta small { color:var(--app-text-muted); font-size:.62rem; }
.recommendation-meta strong { margin-top:.12rem; color:#38536a; font-size:.72rem; }
.recommendation-actions { display:flex; flex-direction:column; align-items:stretch; gap:.55rem; border-left:1px solid var(--app-border); padding-left:1rem; }
.recommendation-actions form { display:flex; gap:.35rem; }
.recommendation-actions .form-select { min-height:34px; font-size:.7rem; }
.form-section h2 { margin:.2rem 0 1.2rem; color:var(--ntt-dark); font-size:1.05rem; }
.roadmap-board { display:grid; grid-template-columns:repeat(5,minmax(260px,1fr)); gap:1rem; overflow-x:auto; padding-bottom:.75rem; }
.roadmap-column { min-width:260px; background:#eef3f7; border:1px solid #dce5ec; border-radius:1rem; overflow:hidden; }
.roadmap-column > header { display:flex; align-items:center; gap:.75rem; padding:1rem; background:#fff; border-bottom:1px solid #dce5ec; }
.roadmap-column > header > span { width:30px; height:30px; display:grid; place-items:center; color:#fff; background:var(--ntt-primary); border-radius:9px; font-weight:800; }
.roadmap-column > header div { display:flex; flex-direction:column; }
.roadmap-column > header strong { color:var(--ntt-dark); font-size:.82rem; }
.roadmap-column > header small { color:var(--app-text-muted); font-size:.64rem; }
.roadmap-items { display:flex; flex-direction:column; gap:.75rem; padding:.75rem; }
.roadmap-item { padding:.9rem; background:#fff; border:1px solid #dce5ec; border-left-width:4px; border-radius:.75rem; box-shadow:0 5px 14px rgba(10,35,55,.05); }
.priority-border-critical { border-left-color:#dc3545; }
.priority-border-high { border-left-color:#f16e32; }
.priority-border-medium { border-left-color:#d6a400; }
.priority-border-low { border-left-color:#438bad; }
.roadmap-item > div:first-child { display:flex; justify-content:space-between; gap:.4rem; }
.priority-label, .quick-win { font-size:.58rem; font-weight:800; text-transform:uppercase; }
.priority-label { color:#52677a; }
.quick-win { color:#a26b00; display:flex; align-items:center; gap:.2rem; }
.roadmap-item h3 { margin:.65rem 0 .4rem; color:var(--ntt-dark); font-size:.83rem; }
.roadmap-item p { color:var(--app-text-muted); font-size:.69rem; line-height:1.45; }
.roadmap-item dl { margin:.75rem 0; display:flex; flex-direction:column; gap:.35rem; }
.roadmap-item dl div { display:flex; justify-content:space-between; gap:.75rem; font-size:.63rem; }
.roadmap-item dt { color:var(--app-text-muted); font-weight:500; }
.roadmap-item dd { margin:0; color:#38536a; font-weight:700; text-align:right; }
.roadmap-item > a { display:flex; justify-content:space-between; align-items:center; font-size:.65rem; font-weight:750; }
.roadmap-empty { min-height:160px; display:grid; place-items:center; align-content:center; gap:.45rem; color:#91a4b4; }
.roadmap-empty p { margin:0; font-size:.7rem; }
.due-list, .gap-ranking { display:flex; flex-direction:column; }
.due-list a, .gap-ranking > div { display:grid; grid-template-columns:34px 1fr auto; align-items:center; gap:.75rem; padding:.75rem 0; border-bottom:1px solid var(--app-border); }
.due-list a:last-child, .gap-ranking > div:last-child { border-bottom:0; }
.due-list a > span, .gap-ranking > div > span { width:32px; height:32px; display:grid; place-items:center; color:var(--ntt-primary); background:#edf7fc; border-radius:9px; font-size:.7rem; font-weight:800; }
.due-list div, .gap-ranking div { display:flex; flex-direction:column; }
.due-list strong, .gap-ranking strong { color:var(--ntt-dark); font-size:.76rem; }
.due-list small, .gap-ranking small, .due-list time { color:var(--app-text-muted); font-size:.65rem; }
.gap-ranking b { color:#b0473c; font-size:.88rem; }
.dashboard-assessment-list em { margin-top:.35rem; color:var(--app-text-muted); font-size:.6rem; font-style:normal; }

@media (max-width: 1199.98px) {
  .results-hero { grid-template-columns:160px 1fr; }
  .results-actions { grid-column:1 / -1; flex-direction:row; padding:1rem 0 0; border-left:0; border-top:1px solid var(--app-border); }
  .results-actions form { flex:1; }
  .heatmap-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .recommendation-card { grid-template-columns:80px 1fr; }
  .recommendation-actions { grid-column:1 / -1; flex-direction:row; border-left:0; border-top:1px solid var(--app-border); padding:1rem 0 0; }
}
@media (max-width: 767.98px) {
  .results-hero { grid-template-columns:1fr; text-align:center; }
  .maturity-gauge { margin:auto; }
  .results-actions { flex-direction:column; }
  .heatmap-grid { grid-template-columns:1fr; }
  .recommendation-card { grid-template-columns:1fr; }
  .recommendation-priority { flex-direction:row; border-right:0; border-bottom:1px solid var(--app-border); padding-bottom:.75rem; }
  .recommendation-meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .recommendation-actions { flex-direction:column; }
  .action-banner { align-items:flex-start; flex-direction:column; }
  .chart-card { min-height:390px; }
  .chart-wrap { min-height:310px; }
}
.status-chip.status-open { color:#315c7a; background:#edf5fa; }
.status-chip.status-planned { color:#6d5700; background:#fff7d9; }
.status-chip.status-in_progress { color:#00639e; background:#e7f5fc; }
.status-chip.status-completed { color:#126a42; background:#e8f7ef; }
.status-chip.status-dismissed { color:#687989; background:#eef1f4; }

/* Phase 6 - report center */
.report-summary-band{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;background:linear-gradient(115deg,var(--ntt-dark),var(--ntt-dark-alt));border-radius:1rem;box-shadow:0 12px 30px rgba(11,31,51,.14)}
.report-summary-band>div{display:flex;flex-direction:column;padding:1.25rem 1.4rem;border-right:1px solid rgba(255,255,255,.12)}
.report-summary-band>div:last-child{border-right:0}.report-summary-band span{color:#9fc7df;font-size:.67rem;font-weight:750;text-transform:uppercase;letter-spacing:.06em}.report-summary-band strong{margin:.25rem 0;color:#fff;font-size:1.75rem}.report-summary-band small{color:#c4d7e4;font-size:.67rem}
.report-format-card{display:flex;flex-direction:column;gap:.8rem;min-height:310px}.report-format-card h2{margin:.15rem 0 0;color:var(--ntt-dark);font-size:1.15rem}.report-format-card p{color:var(--app-text-muted);font-size:.78rem;line-height:1.65}.report-format-icon{width:56px;height:56px;display:grid;place-items:center;color:var(--ntt-primary);background:#e4f4fc;border-radius:15px}.report-format-icon.excel{color:#147a46;background:#e9f7ef}.report-format-icon.pdf{color:#b02d3b;background:#fdecef}
.report-coverage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.report-coverage-grid>div{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:.7rem;padding:.9rem;background:#f7fafc;border:1px solid var(--app-border);border-radius:.75rem}.report-coverage-grid svg{color:var(--ntt-primary)}.report-coverage-grid span{color:#52677a;font-size:.72rem}.report-coverage-grid strong{color:var(--ntt-dark);font-size:1.1rem}
.report-metadata{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:0}.report-metadata>div{padding:.8rem;background:#f7fafc;border:1px solid var(--app-border);border-radius:.65rem}.report-metadata dt{color:var(--app-text-muted);font-size:.65rem}.report-metadata dd{margin:.25rem 0 0;color:var(--ntt-dark);font-size:.76rem;overflow-wrap:anywhere}.report-metadata code{font-size:.65rem}
@media(max-width:991.98px){.report-summary-band{grid-template-columns:repeat(2,minmax(0,1fr))}.report-summary-band>div:nth-child(2){border-right:0}.report-summary-band>div:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.12)}.report-coverage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:575.98px){.report-summary-band,.report-coverage-grid,.report-metadata{grid-template-columns:1fr}.report-summary-band>div{border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}.report-summary-band>div:last-child{border-bottom:0}}
