:root{
  /* Design tokens -------------------------------------------------- */
  /* Colors (derived from DMS logo) */
  --color-navy-900:#0b223a;
  --color-navy-700:#15466d;
  --color-navy-500:#226ea5;
  --color-navy-400:#2b7bbd;
  --color-sky-200:#cfe4f7;
  --color-sky-100:#e7f3fc;
  --color-text-strong:#102133;
  --color-text-muted:#54677a;
  --color-surface:#ffffff;
  --color-surface-alt:#f4f8fb;
  --color-border-subtle:#d5e2ed;
  --color-border-strong:#b9c9d6;
  --color-success:#0f9d7a;
  --color-warning:#c37a1e;
  --color-danger:#d64545;
  --color-focus-ring:rgba(34,110,165,.22);

  /* Typography */
  --font-family-base:"Inter","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-size-base:17px;
  --line-height-base:1.65;
  --line-height-tight:1.3;

  /* Spacing (8px scale) */
  --space-0:0;
  --space-1:.5rem;   /* 8px */
  --space-2:1rem;    /* 16px */
  --space-3:1.5rem;  /* 24px */
  --space-4:2rem;    /* 32px */
  --space-5:2.5rem;  /* 40px */
  --space-6:3.5rem;  /* 56px */

  /* Radii */
  --radius-sm:8px;
  --radius-md:12px;
  --radius-lg:18px;
  --radius-pill:999px;

  /* Shadow */
  --shadow-soft:0 20px 48px -28px rgba(11,34,58,.55);
  --shadow-focus:0 0 0 4px var(--color-focus-ring);
}

*,
*::before,
*::after{box-sizing:border-box}

html,body{min-height:100%}

body{
  margin:0;
  font-family:var(--font-family-base);
  font-size:var(--font-size-base);
  line-height:var(--line-height-base);
  color:var(--color-text-strong);
  background:linear-gradient(180deg,var(--color-surface-alt),#eef4f9);
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;height:auto;display:block}

main,header,footer{width:100%}

h1,h2,h3,h4{
  color:var(--color-text-strong);
  font-weight:700;
  letter-spacing:-.01em;
  line-height:1.3;
  margin:0;
}

h1{font-size:clamp(1.9rem,3vw,2.2rem)}
h2{font-size:clamp(1.5rem,2.5vw,1.8rem)}
h3{font-size:clamp(1.1rem,1.8vw,1.25rem)}

p{margin:0 0 var(--space-2);color:var(--color-text-muted)}

:focus-visible{
  outline:0;
  box-shadow:var(--shadow-focus);
  border-color:var(--color-navy-500);
}

.site-header{
  background:var(--color-surface);
  color:var(--color-navy-900);
  padding:var(--space-2) 0 var(--space-3);
  box-shadow:0 10px 26px -18px rgba(11,34,58,.8);
}

.header-inner{
  max-width:1080px;
  margin:0 auto;
  padding:0 var(--space-2);
}

.brand{
  display:flex;
  align-items:center;
  gap:var(--space-2);
}

.logo{
  height:52px;
  width:auto;
  margin-top:-27px;
  filter:drop-shadow(0 6px 18px rgba(0,0,0,.2));
}

.brand-text h1{
  color:var(--color-navy-900);
  margin-bottom:4px;
}

.tagline{
  color:var(--color-navy-500);
  font-weight:500;
  margin:0;
}

.progress-bar{
  position:relative;
  width:100%;
  height:.65rem;
  background:rgba(34,110,165,.15);
  border-radius:var(--radius-pill);
  overflow:hidden;
  margin-top:var(--space-2);
}

.progress-fill{
  height:100%;
  background:linear-gradient(90deg,var(--color-navy-500),var(--color-navy-700));
  border-radius:inherit;
  transition:width .35s ease-in-out;
}

.container{
  max-width:1060px;
  margin:0 auto;
  padding:var(--space-4) var(--space-2) var(--space-5);
}

.card{
  background:var(--color-surface);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
  border:1px solid rgba(11,34,58,.04);
}

.content{
  padding:var(--space-4);
}

.section{
  display:none;
}

.section.active{
  display:block;
  animation:fadeIn .35s ease;
}

.section-title{
  color:var(--color-navy-700);
  margin-bottom:var(--space-1);
}

.section-description{
  margin-bottom:var(--space-3);
  color:var(--color-text-muted);
}

.section-progress{
  border:1px solid var(--color-border-subtle);
  border-radius:var(--radius-md);
  background:var(--color-surface-alt);
  padding:var(--space-3);
  margin-bottom:var(--space-4);
}

.section-progress-header{
  margin-bottom:var(--space-2);
  display:flex;
  flex-direction:column;
  gap:.3rem;
}

.section-progress-header strong{
  font-size:1rem;
  color:var(--color-text-strong);
}

.section-progress-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-2);
  flex-wrap:wrap;
}

.section-progress-row .help-text{
  margin:0;
}

.section-progress-links{
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
}

.csf-info-link{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-size:.9rem;
  font-weight:600;
  color:#fff;
  text-decoration:none;
  padding:.55rem 1rem;
  border-radius:var(--radius-pill);
  background:var(--color-navy-700);
  transition:background .15s ease, transform .15s ease;
  white-space:nowrap;
  box-shadow:0 4px 12px -4px rgba(11,34,58,.4);
}

.csf-info-link:hover{
  background:var(--color-navy-900);
  transform:translateY(-1px);
}

.csf-info-link:focus-visible{
  outline:0;
  box-shadow:var(--shadow-focus), 0 4px 12px -4px rgba(11,34,58,.4);
}

.csf-info-link svg{
  flex-shrink:0;
  opacity:.9;
}

@media (max-width:640px){
  .section-progress-row{
    flex-direction:column;
    align-items:flex-start;
  }
  .section-progress-links{
    width:100%;
  }
  .csf-info-link{
    flex:1;
    justify-content:center;
  }
}

.section-nav{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
}

.section-nav-item{
  flex:1 1 220px;
  border:1px solid var(--color-border-subtle);
  border-radius:var(--radius-md);
  padding:.75rem 1rem;
  background:var(--color-surface);
  cursor:pointer;
  display:flex;
  flex-direction:column;
  gap:.15rem;
  text-align:left;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
  min-width:200px;
}

.section-nav-item .section-nav-name{
  font-weight:600;
  color:var(--color-text-strong);
}

.section-nav-item .section-nav-status{
  font-size:.85rem;
  color:var(--color-text-muted);
}

.section-nav-item.is-active{
  border-color:var(--color-navy-500);
  box-shadow:var(--shadow-focus);
}

.section-nav-item.is-complete{
  border-color:var(--color-success);
  background:rgba(15,157,122,.08);
}

.section-nav-item.is-complete .section-nav-status{
  color:var(--color-success);
}

.form-group{
  margin-bottom:var(--space-3);
}

.hidden{display:none!important}

.intake-group-list{
  display:grid;
  gap:var(--space-2);
  margin-top:var(--space-3);
}

.intake-group{
  border:1px solid var(--color-border-subtle);
  border-radius:var(--radius-md);
  background:var(--color-surface-alt);
  transition:border-color .2s ease, box-shadow .2s ease;
}

.intake-group[open]{
  border-color:var(--color-navy-400);
  box-shadow:0 14px 28px -20px rgba(34,110,165,.25);
  background:var(--color-surface);
}

.intake-group summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-1);
  padding:var(--space-2) var(--space-3);
  cursor:pointer;
  font-weight:600;
  color:var(--color-navy-700);
}

.intake-group summary::-webkit-details-marker{display:none}

.intake-group summary::after{
  content:"›";
  font-size:1.3rem;
  transform:rotate(90deg);
  color:var(--color-navy-400);
  transition:transform .2s ease;
}

.intake-group[open] summary::after{
  transform:rotate(270deg);
}

.summary-helper{
  font-size:.88rem;
  font-weight:500;
  color:var(--color-text-muted);
}

.intake-group-body{
  padding:0 var(--space-3) var(--space-3);
}

.rto-rpo-group{
  display:grid;
  grid-template-columns:1fr minmax(120px,160px);
  gap:var(--space-1);
}

.chip-input{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-1);
  border:1px dashed var(--color-border-subtle);
  border-radius:var(--radius-md);
  padding:var(--space-1);
  background:rgba(34,110,165,.03);
}

.chip-input:focus-within{
  border-style:solid;
  border-color:var(--color-navy-500);
  box-shadow:var(--shadow-focus);
  background:var(--color-surface);
}

.chip-list{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}

.chip-input input{
  flex:1;
  min-width:160px;
  border:none;
  background:transparent;
  padding:.45rem .55rem;
  font-size:1rem;
}

.chip-input input:focus{
  outline:none;
}

.chip{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  background:var(--color-sky-100);
  border:1px solid var(--color-navy-400);
  border-radius:var(--radius-pill);
  padding:.35rem .75rem;
  font-size:.9rem;
  color:var(--color-navy-700);
}

.chip.vendor-chip{
  cursor:pointer;
}

.chip.vendor-chip.active{
  background:var(--color-navy-500);
  border-color:var(--color-navy-500);
  color:#fff;
}

.chip.vendor-chip.active button{
  color:#fff;
}

.chip button{
  border:none;
  background:transparent;
  color:var(--color-navy-700);
  font-size:1rem;
  cursor:pointer;
  padding:0;
  line-height:1;
}

.chip button:hover{
  color:var(--color-navy-900);
}

.intake-hint{
  margin:0 0 var(--space-2);
  padding:.6rem var(--space-2);
  font-size:.86rem;
  color:var(--color-text-muted);
  background:var(--color-surface);
  border-left:3px solid var(--color-navy-400);
  border-radius:var(--radius-md);
}

.has-error input,
.has-error select,
.has-error textarea{
  border-color:var(--color-danger)!important;
  background:#fff5f5;
}

.has-error .checkbox-item,
.has-error .radio-item,
.has-error .maturity-option{
  border-color:var(--color-danger)!important;
}

.field-error{
  margin-top:.45rem;
  font-size:.86rem;
  color:var(--color-danger);
}

.insight-message{
  margin-top:.4rem;
  font-size:.86rem;
  color:var(--color-warning);
}

.form-row{
  display:grid;
  gap:var(--space-3);
  grid-template-columns:repeat(2,minmax(0,1fr));
}

label{
  display:block;
  font-weight:600;
  font-size:.98rem;
  color:var(--color-text-strong);
  margin-bottom:.4rem;
}

.label-with-tooltip{
  margin-bottom:.4rem;
}

.label-with-tooltip label{
  margin-bottom:0;
}

.help-text{
  font-size:.88rem;
  margin-top:.4rem;
}

input[type="text"],
input[type="email"],
input[type="number"],
select,
textarea{
  width:100%;
  padding:calc(var(--space-2) - 2px) var(--space-2);
  border:1px solid var(--color-border-subtle);
  border-radius:var(--radius-md);
  background:var(--color-surface);
  font-size:1rem;
  color:var(--color-text-strong);
  transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
  box-shadow:inset 0 1px 2px rgba(16,33,51,.06);
  accent-color:var(--color-navy-500);
}

input::placeholder,
textarea::placeholder{color:rgba(84,103,122,.72)}

input:focus,
select:focus,
textarea:focus{
  border-color:var(--color-navy-500);
  background:#fdfefe;
  box-shadow:var(--shadow-focus);
}

textarea{
  min-height:7rem;
  resize:vertical;
}

.inline-inputs{
  display:flex;
  gap:.75rem;
  align-items:center;
}

.inline-inputs input,
.inline-inputs select{
  flex:1;
}

.report-details{
  margin-top:var(--space-3);
  display:grid;
  gap:var(--space-2);
}

.report-section{
  border:1px solid var(--color-border-subtle);
  border-radius:var(--radius-md);
  padding:var(--space-2);
  background:var(--color-surface);
}

.report-section h4{
  margin-top:0;
  margin-bottom:.4rem;
  color:var(--color-navy-700);
}

.report-section ul{
  margin:0;
  padding-left:1.25rem;
  color:var(--color-text-muted);
}

.checkbox-group,
.radio-group,
.maturity-scale{
  display:grid;
  gap:var(--space-2);
}

.chip-toggle-group{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
}

.chip-toggle{
  border:1px solid var(--color-border-subtle);
  border-radius:var(--radius-pill);
  background:var(--color-surface);
  color:var(--color-text-strong);
  padding:.45rem 1rem;
  font-size:.92rem;
  line-height:1.2;
  cursor:pointer;
  min-height:44px;
  display:flex;
  align-items:center;
  transition:all .2s ease;
}

.chip-toggle:hover{
  border-color:var(--color-navy-500);
  background:rgba(34,110,165,.06);
}

.chip-toggle[aria-pressed="true"],
.chip-toggle.is-selected{
  background:var(--color-navy-500);
  color:#fff;
  border-color:var(--color-navy-500);
  box-shadow:0 6px 16px -12px rgba(11,34,58,.55);
}

.chip-toggle:focus-visible{
  box-shadow:var(--shadow-focus);
}

.lifecycle-grid{
  display:grid;
  gap:var(--space-2);
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}

.lifecycle-stage{
  display:flex;
  align-items:center;
  gap:.6rem;
  border:1px dashed var(--color-border-subtle);
  border-radius:var(--radius-md);
  padding:var(--space-2);
  background:var(--color-surface);
  cursor:pointer;
  transition:border-color .2s ease, box-shadow .2s ease;
}

.lifecycle-stage:hover{
  border-color:var(--color-navy-400);
  box-shadow:0 10px 18px -16px rgba(11,34,58,.4);
}

.lifecycle-stage input{
  accent-color:var(--color-navy-500);
}

.lifecycle-note{
  background:var(--color-surface);
  border-left:3px solid var(--color-navy-400);
  border-radius:var(--radius-md);
  padding:var(--space-2);
  display:grid;
  gap:.35rem;
  grid-column:1 / -1;
}

.vendor-editor{
  border-top:1px solid var(--color-border-subtle);
  margin-top:var(--space-3);
  padding-top:var(--space-3);
  display:grid;
  gap:var(--space-3);
}

.vendor-editor-empty{
  font-size:.88rem;
  color:var(--color-text-muted);
  margin-top:var(--space-1);
}

.checkbox-group{grid-template-columns:repeat(2,minmax(0,1fr))}
.radio-group{grid-template-columns:1fr}
.maturity-scale{grid-template-columns:repeat(4,minmax(0,1fr))}

.checkbox-item,
.radio-item,
.maturity-option{
  display:flex;
  align-items:flex-start;
  gap:var(--space-1);
  border:1px solid var(--color-border-subtle);
  border-radius:var(--radius-md);
  padding:var(--space-2);
  background:var(--color-surface);
  line-height:1.5;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.checkbox-item input,
.radio-item input,
.maturity-option input{
  margin-top:.15rem;
  accent-color:var(--color-navy-500);
}

.checkbox-item:hover,
.radio-item:hover,
.maturity-option:hover{
  border-color:var(--color-navy-500);
  background:rgba(34,110,165,.05);
}

.option-content{
  display:flex;
  flex-direction:column;
  gap:.15rem;
}

.checkbox-item .option-content .help-text,
.radio-item .option-content .help-text{
  margin-top:0;
}

.checkbox-item:focus-within,
.radio-item:focus-within,
.maturity-option:focus-within{
  box-shadow:var(--shadow-focus);
  border-color:var(--color-navy-500);
}

.checkbox-item:has(input:checked),
.radio-item:has(input:checked),
.maturity-option:has(input:checked){
  border-color:var(--color-navy-500);
  background:var(--color-sky-100);
}

/* N/A options - subtle styling to distinguish */
.checkbox-item.na-option,
.chip-toggle.na-option{
  border-style:dashed;
  color:var(--color-text-muted);
}

.checkbox-item.na-option:has(input:checked){
  border-style:solid;
  border-color:var(--color-text-muted);
  background:var(--color-bg-offset);
  color:var(--color-text);
}

.chip-toggle.na-option.is-selected{
  border-style:solid;
  border-color:var(--color-text-muted);
  background:var(--color-bg-offset);
  color:var(--color-text);
}

.tooltip{
  position:relative;
  --tooltip-offset:0;
  --tooltip-arrow-offset:20px;
}

.checkbox-item.tooltip,
.radio-item.tooltip,
.maturity-option.tooltip{
  --tooltip-offset:2.25rem;
  --tooltip-arrow-offset:20px;
}

label.tooltip:not(.checkbox-item):not(.radio-item):not(.maturity-option){
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  --tooltip-arrow-offset:12px;
}

.tooltip-icon{
  margin-left:var(--space-1);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.2rem;
  height:1.2rem;
  font-size:.7rem;
  font-weight:600;
  border-radius:50%;
  background:var(--color-navy-500);
  color:var(--color-surface);
  line-height:1;
  pointer-events:none;
}

.tooltip-text{
  position:absolute;
  left:var(--tooltip-offset);
  bottom:calc(100% + .5rem);
  background:var(--color-navy-900);
  color:var(--color-surface);
  padding:.4rem .65rem;
  border-radius:var(--radius-sm);
  box-shadow:0 18px 32px -24px rgba(11,34,58,.6);
  font-size:.75rem;
  line-height:1.35;
  max-width:18rem;
  opacity:0;
  transform:translateY(6px);
  transition:opacity .18s ease, transform .18s ease;
  pointer-events:none;
  z-index:20;
  white-space:normal;
}

.tooltip:hover .tooltip-text,
.tooltip:focus-within .tooltip-text{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}

.tooltip-text::after{
  content:"";
  position:absolute;
  top:100%;
  left:var(--tooltip-arrow-offset);
  border-width:6px;
  border-style:solid;
  border-color:var(--color-navy-900) transparent transparent transparent;
  filter:drop-shadow(0 4px 6px rgba(11,34,58,.2));
}

/* Enhanced required asterisk with tooltip */
.required-star{
  color:var(--color-navy-500);
  cursor:help;
  font-weight:700;
}

.required-star:hover,
.required-star:focus{
  color:var(--color-navy-700);
}

/* Tooltip for required-star, arrow points up to asterisk */
.required-star .tooltip-text{
  width:max-content;
  max-width:18rem;
  left:50%;
  transform:translateX(-50%) translateY(6px);
  --tooltip-offset:0;
}

.required-star:hover .tooltip-text,
.required-star:focus-within .tooltip-text{
  transform:translateX(-50%) translateY(0);
}

.required-star .tooltip-text::after{
  left:50%;
  transform:translateX(-50%);
}

/* Character counter */
.char-counter-wrapper{
  position:relative;
}

.char-counter{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:.35rem;
  font-size:.8rem;
  color:var(--color-text-muted);
}

.char-counter-progress{
  display:flex;
  align-items:center;
  gap:.5rem;
}

.char-counter-bar{
  width:60px;
  height:4px;
  background:var(--color-border-subtle);
  border-radius:2px;
  overflow:hidden;
}

.char-counter-fill{
  height:100%;
  background:var(--color-navy-400);
  border-radius:2px;
  transition:width .2s ease, background .2s ease;
}

.char-counter-fill.complete{
  background:var(--color-success);
}

.char-counter-text{
  font-variant-numeric:tabular-nums;
}

.char-counter-text.warning{
  color:var(--color-warning);
}

.char-counter-text.error{
  color:var(--color-danger);
}

.char-counter-limit{
  font-size:.75rem;
  color:var(--color-text-muted);
}

.button-group{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--space-2);
  margin-top:var(--space-4);
}

.pager{color:var(--color-text-muted);font-size:.95rem}

.save-progress{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--space-2);
  margin-top:var(--space-4);
}

.save-feedback{
  margin:0;
  opacity:0;
  transition:opacity .3s ease;
}

.save-feedback.is-visible{
  opacity:1;
}

.section-warning{
  margin-top:var(--space-2);
  padding:var(--space-2);
  border-radius:var(--radius-md);
  border-left:4px solid var(--color-warning);
  background:var(--color-surface-alt);
  color:var(--color-warning);
  font-size:.92rem;
}

.btn{
  appearance:none;
  border-radius:var(--radius-md);
  border:1px solid var(--color-border-subtle);
  padding:.75rem 1.3rem;
  font-weight:600;
  font-size:1rem;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  transition:transform .15s ease, box-shadow .2s ease, background .2s ease;
  box-shadow:0 12px 20px -12px rgba(11,34,58,.35);
  min-width:9.5rem;
  background:#fff;
  color:var(--color-text-strong);
}

.btn:hover{
  transform:translateY(-1px);
}

.btn:focus-visible{
  box-shadow:var(--shadow-focus);
}

a.btn{
  text-decoration:none;
}

a.btn:hover{
  text-decoration:none;
}

.btn-primary{
  background:linear-gradient(135deg,var(--color-navy-500),var(--color-navy-700));
  color:#fff;
}

.btn-primary:hover{
  background:linear-gradient(135deg,var(--color-navy-500),var(--color-navy-900));
}

.btn-success{
  background:linear-gradient(135deg,var(--color-success),#0a7c60);
  color:#fff;
}

.btn-secondary{
  background:#fff;
  border-color:var(--color-border-subtle);
  color:var(--color-text-strong);
}

.btn-secondary:hover{
  background:rgba(34,110,165,.08);
}

.btn-icon{
  width:18px;
  height:18px;
  object-fit:contain;
  flex-shrink:0;
}

.report-actions{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-1);
  align-items:center;
  margin-top:var(--space-2);
}

.report-actions .btn{
  flex:0 1 auto;
}

.policy-download-feedback{
  margin-top:.5rem;
  color:var(--color-danger);
  font-weight:600;
}

.results{
  display:none;
}

.results.active{
  display:block;
  animation:fadeIn .35s ease;
}

/* Summary grid/card styles moved to Corporate Report Styles section */

.nist-functions{
  display:grid;
  gap:0;
}

/* .nist-function styles moved to Professional Report Styles section */

.bar{
  height:.65rem;
  background:var(--color-border-subtle);
  border-radius:var(--radius-pill);
  overflow:hidden;
}

.fill{
  height:100%;
  width:0%;
  border-radius:inherit;
  transition:width .35s ease;
}

.fill.ok{background:var(--color-success)}
.fill.warn{background:var(--color-warning)}
.fill.bad{background:var(--color-danger)}

/* AI analysis now uses report-card styling - these are kept for compatibility */
.ai-analysis-card{
  /* Styles inherited from .report-card */
}

.ai-status{
  text-align:right;
}

.ai-loading{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:.35rem;
  font-size:.9rem;
  color:var(--color-text-muted,#555);
}

.ai-loading-spinner{
  display:flex;
  gap:.35rem;
  justify-content:flex-end;
}

.ai-loading-spinner span{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--color-link,#2563eb);
  opacity:.4;
  animation:ai-bounce 1.2s infinite ease-in-out;
}

.ai-loading-spinner span:nth-child(2){
  animation-delay:.15s;
}

.ai-loading-spinner span:nth-child(3){
  animation-delay:.3s;
}

.ai-loading-text{
  margin:0;
}

@keyframes ai-bounce{
  0%,80%,100%{
    transform:translateY(0);
    opacity:.4;
  }
  40%{
    transform:translateY(-6px);
    opacity:1;
  }
}

@media (prefers-reduced-motion:reduce){
  .ai-loading-spinner span{
    animation:none;
  }
}

.ai-status-message{
  font-size:.9rem;
  color:var(--color-text-muted);
}

.ai-status-message.error{
  color:var(--color-danger);
  font-weight:600;
}

.ai-tier-summary{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-2);
  margin-top:var(--space-2);
  align-items:center;
}

.ai-tier-main{
  min-width:200px;
}

.ai-tier-label{
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.85rem;
  color:var(--color-text-muted);
}

.ai-tier-value{
  font-size:2rem;
  font-weight:700;
  color:var(--color-navy-700);
}

.ai-tier-name{
  font-weight:600;
  color:var(--color-navy-500);
}

.ai-tier-pill{
  background:var(--color-sky-100);
  border-radius:var(--radius-pill);
  padding:.65rem 1.4rem;
  color:var(--color-navy-700);
  min-width:180px;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.ai-tier-pill span{
  font-size:.85rem;
  color:var(--color-text-muted);
}

.ai-tier-pill strong{
  font-size:1rem;
  font-weight:600;
}

.tier-info-link{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-size:.95rem;
  font-weight:600;
  color:#fff;
  text-decoration:none;
  padding:.65rem 1.2rem;
  border-radius:var(--radius-pill);
  background:var(--color-navy-700);
  transition:background .15s ease, transform .15s ease;
  margin-left:auto;
  white-space:nowrap;
  box-shadow:0 4px 12px -4px rgba(11,34,58,.4);
}

.tier-info-link:hover{
  background:var(--color-navy-900);
  transform:translateY(-1px);
}

.tier-info-link:focus-visible{
  outline:0;
  box-shadow:var(--shadow-focus), 0 4px 12px -4px rgba(11,34,58,.4);
}

.tier-info-link svg{
  flex-shrink:0;
  opacity:.9;
}

@media (max-width:640px){
  .tier-info-link{
    margin-left:0;
    margin-top:var(--space-1);
    width:100%;
    justify-content:center;
  }
}

.ai-list{
  margin-top:var(--space-3);
}

.ai-list h4{
  margin-bottom:.35rem;
  color:var(--color-navy-700);
}

.ai-list-body{
  margin:0;
  padding-left:1.2rem;
  color:var(--color-text-muted);
}

.ai-list-body li{
  margin-bottom:.35rem;
}

.ai-list-body .placeholder{
  list-style:none;
  font-style:italic;
  padding-left:0;
  color:var(--color-text-muted);
}

.ai-data-quality .ai-list-body{
  font-size:.9rem;
}

/* Legacy callout styles removed - using .report-section styling */

.site-footer{
  text-align:center;
  padding:var(--space-4) var(--space-2) var(--space-6);
  color:#fff;
  background:linear-gradient(135deg,var(--color-navy-900),#132d4a);
  margin-top:var(--space-6);
}

.site-footer p{
  margin:0;
  opacity:.92;
}

@keyframes fadeIn{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}

@media (max-width:640px){
  .ai-card-header{
    flex-direction:column;
    align-items:flex-start;
  }
  .ai-status{
    text-align:left;
    width:100%;
  }
}

@media (max-width:900px){
  .form-row{grid-template-columns:1fr}
  .checkbox-group{grid-template-columns:1fr}
  .rto-rpo-group{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:768px){
  .site-header{padding:var(--space-2) 0 var(--space-2)}
  .brand{flex-direction:column;align-items:flex-start;gap:var(--space-1)}
  .logo{height:46px}
  .container{padding:var(--space-3) var(--space-2) var(--space-5)}
  .content{padding:var(--space-3)}
  .maturity-scale{grid-template-columns:1fr}
  .button-group{flex-direction:column;align-items:stretch}
  .btn{width:100%}
  .chip-input{flex-direction:column}
  .chip-input input{width:100%}
  .summary-helper{display:none}
  .rto-rpo-group{grid-template-columns:1fr}
  .chip-toggle-group{gap:.5rem}
  .chip-toggle{width:100%;justify-content:center}
}

@media (max-width:540px){
  body{font-size:16px}
  .section-title{font-size:1.45rem}
  .summary-grid{grid-template-columns:1fr}
}

/* Disclaimer Modal */
.disclaimer-overlay{
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(11,34,58,.7);
  backdrop-filter:blur(4px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:var(--space-2);
  opacity:1;
  transition:opacity .3s ease;
}

.disclaimer-overlay.hidden{
  display:none;
}

.disclaimer-modal{
  background:var(--color-surface);
  border-radius:var(--radius-lg);
  box-shadow:0 24px 64px -16px rgba(11,34,58,.5);
  max-width:800px;
  width:100%;
  max-height:80vh;
  display:flex;
  flex-direction:column;
  animation:modalSlideIn .35s ease;
}

@keyframes modalSlideIn{
  from{
    opacity:0;
    transform:translateY(24px) scale(.96);
  }
  to{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}

.disclaimer-header{
  padding:var(--space-3) var(--space-4);
  border-bottom:1px solid var(--color-border-subtle);
  text-align:center;
  flex-shrink:0;
}

.disclaimer-header h2{
  color:var(--color-navy-700);
  margin-bottom:.25rem;
}

.disclaimer-subtitle{
  color:var(--color-text-muted);
  margin:0;
  font-size:1.05rem;
}

.disclaimer-body{
  flex:1;
  overflow-y:auto;
  padding:var(--space-3) var(--space-4);
  scrollbar-width:thin;
  scrollbar-color:var(--color-border-strong) transparent;
}

.disclaimer-body::-webkit-scrollbar{
  width:8px;
}

.disclaimer-body::-webkit-scrollbar-track{
  background:transparent;
}

.disclaimer-body::-webkit-scrollbar-thumb{
  background:var(--color-border-strong);
  border-radius:4px;
}

.disclaimer-body h3{
  color:var(--color-navy-700);
  margin:var(--space-3) 0 var(--space-1);
  font-size:1.1rem;
}

.disclaimer-body h3:first-of-type{
  margin-top:0;
}

.disclaimer-body p{
  margin:0 0 var(--space-2);
  color:var(--color-text-strong);
  line-height:1.6;
}

.disclaimer-intro{
  font-size:1.02rem;
  color:var(--color-text-muted)!important;
  margin-bottom:var(--space-3)!important;
}

.disclaimer-highlight{
  padding:var(--space-2) var(--space-3);
  border-radius:var(--radius-md);
  margin:var(--space-2) 0;
}

.disclaimer-highlight p{
  margin:0;
}

.disclaimer-highlight-blue{
  background:rgba(34,110,165,.1);
  border:1px solid rgba(34,110,165,.3);
}

.disclaimer-highlight-blue p{
  color:var(--color-navy-700);
}

.disclaimer-highlight-orange{
  background:rgba(195,122,30,.1);
  border:1px solid rgba(195,122,30,.4);
}

.disclaimer-highlight-orange p{
  color:#8b5a1e;
}

.disclaimer-acknowledgment{
  margin-top:var(--space-4);
  padding:var(--space-3);
  background:var(--color-surface-alt);
  border-radius:var(--radius-md);
  border:1px solid var(--color-border-subtle);
}

.disclaimer-acknowledgment h3{
  margin-top:0!important;
  color:var(--color-text-strong);
}

.disclaimer-acknowledgment ul{
  margin:0;
  padding-left:1.25rem;
  color:var(--color-text-muted);
}

.disclaimer-acknowledgment li{
  margin-bottom:.5rem;
  line-height:1.5;
}

.disclaimer-footer{
  padding:var(--space-3) var(--space-4);
  border-top:1px solid var(--color-border-subtle);
  background:var(--color-surface-alt);
  border-radius:0 0 var(--radius-lg) var(--radius-lg);
  flex-shrink:0;
}

.disclaimer-contact,
.disclaimer-company{
  text-align:center;
  font-size:.9rem;
  color:var(--color-text-muted);
  margin:0 0 .5rem;
}

.disclaimer-company{
  margin-bottom:var(--space-2);
}

.disclaimer-actions{
  display:flex;
  justify-content:center;
  gap:var(--space-2);
}

.disclaimer-actions .btn{
  min-width:120px;
}

@media (max-width:640px){
  .disclaimer-modal{
    max-height:90vh;
    margin:var(--space-1);
  }
  .disclaimer-header{
    padding:var(--space-2) var(--space-3);
  }
  .disclaimer-body{
    padding:var(--space-2) var(--space-3);
  }
  .disclaimer-footer{
    padding:var(--space-2) var(--space-3);
  }
  .disclaimer-actions{
    flex-direction:column;
  }
  .disclaimer-actions .btn{
    width:100%;
  }
}

/* Payment / Checkout Styles - now uses .report-purchase styles */
.payment-cta{
  /* Styles moved to .report-purchase in Professional Report Styles */
}

.btn-purchase{
  background:linear-gradient(135deg,var(--color-navy-500),var(--color-navy-700));
  color:#fff;
  font-size:1.15rem;
  padding:1rem 2.5rem;
  min-width:auto;
  box-shadow:0 16px 32px -12px rgba(11,34,58,.45);
}

.btn-purchase:hover{
  background:linear-gradient(135deg,var(--color-navy-400),var(--color-navy-700));
  transform:translateY(-2px);
  box-shadow:0 20px 40px -16px rgba(11,34,58,.5);
}

.btn-purchase:disabled{
  opacity:.6;
  cursor:not-allowed;
  transform:none;
}

.payment-includes{
  margin:var(--space-2) 0 0;
  font-size:.92rem;
  color:var(--color-text-muted);
  max-width:600px;
  margin-left:auto;
  margin-right:auto;
  line-height:1.5;
}

/* .payment-success styles moved to .report-success in Professional Report Styles */
.payment-success{
  /* Styles moved to .report-success */
}

.success-icon{
  width:24px;
  height:24px;
  object-fit:contain;
  flex-shrink:0;
}

.payment-success .report-actions{
  justify-content:center;
}

.btn-download-package{
  font-size:1.1rem;
  padding:.9rem 2rem;
}

.package-contents{
  margin:var(--space-2) 0 0;
  font-size:.9rem;
  color:var(--color-text-muted);
  text-align:center;
}

.consultation-cta{
  margin-top:var(--space-4);
  padding:var(--space-3);
  background:var(--color-surface-alt);
  border:1px solid var(--color-border-subtle);
  border-radius:var(--radius-md);
  text-align:center;
}

.consultation-message{
  margin:0 0 var(--space-2);
  font-size:.95rem;
  color:var(--color-text-strong);
  line-height:1.5;
}

.btn-consultation{
  background:var(--color-navy-700);
  color:#fff;
  border:none;
  padding:.7rem 1.5rem;
  font-weight:600;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  gap:.5rem;
}

.btn-consultation:hover{
  background:var(--color-navy-900);
}

@media (max-width:640px){
  .btn-purchase{
    font-size:1rem;
    padding:.85rem 1.5rem;
    width:100%;
  }
  .btn-download-package{
    width:100%;
  }
  .btn-consultation{
    width:100%;
    justify-content:center;
  }
  .consultation-cta{
    padding:var(--space-2);
  }
  .payment-cta{
    padding:var(--space-3);
  }
}

/* AI Progress Overlay */
.ai-progress-overlay{
  position:fixed;
  inset:0;
  z-index:10000;
  background:rgba(11,34,58,.85);
  backdrop-filter:blur(8px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:var(--space-2);
}

.ai-progress-overlay.hidden{
  display:none;
}

.ai-progress-modal{
  background:linear-gradient(145deg,var(--color-surface) 0%,#f8fafc 100%);
  border-radius:var(--radius-lg);
  box-shadow:0 32px 64px -16px rgba(11,34,58,.6),0 0 0 1px rgba(255,255,255,.1);
  max-width:480px;
  width:100%;
  padding:var(--space-4);
  text-align:center;
  animation:modalFloat .35s ease;
}

@keyframes modalFloat{
  from{opacity:0;transform:translateY(20px) scale(.95)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

.ai-progress-header{
  margin-bottom:var(--space-3);
}

/* AI Orb Animation */
.ai-orb{
  position:relative;
  width:80px;
  height:80px;
  margin:0 auto var(--space-3);
}

.ai-orb-core{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:24px;
  height:24px;
  background:linear-gradient(135deg,var(--color-navy-500),var(--color-navy-700));
  border-radius:50%;
  box-shadow:0 0 20px rgba(34,110,165,.6),0 0 40px rgba(34,110,165,.3);
  animation:orbPulse 2s ease-in-out infinite;
}

@keyframes orbPulse{
  0%,100%{transform:translate(-50%,-50%) scale(1);box-shadow:0 0 20px rgba(34,110,165,.6),0 0 40px rgba(34,110,165,.3)}
  50%{transform:translate(-50%,-50%) scale(1.15);box-shadow:0 0 30px rgba(34,110,165,.8),0 0 60px rgba(34,110,165,.4)}
}

.ai-orb-ring{
  position:absolute;
  top:50%;
  left:50%;
  border:2px solid transparent;
  border-top-color:var(--color-navy-400);
  border-radius:50%;
  opacity:.6;
}

.ai-orb-ring-1{
  width:40px;
  height:40px;
  margin:-20px 0 0 -20px;
  animation:orbSpin 2s linear infinite;
}

.ai-orb-ring-2{
  width:56px;
  height:56px;
  margin:-28px 0 0 -28px;
  border-top-color:var(--color-navy-300);
  animation:orbSpin 3s linear infinite reverse;
}

.ai-orb-ring-3{
  width:72px;
  height:72px;
  margin:-36px 0 0 -36px;
  border-top-color:var(--color-navy-200);
  border-right-color:var(--color-navy-200);
  animation:orbSpin 4s linear infinite;
}

@keyframes orbSpin{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}

/* Floating Particles */
.ai-particles{
  position:absolute;
  inset:0;
}

.ai-particles span{
  position:absolute;
  width:4px;
  height:4px;
  background:var(--color-navy-400);
  border-radius:50%;
  opacity:0;
  animation:particleFloat 3s ease-in-out infinite;
}

.ai-particles span:nth-child(1){top:10%;left:50%;animation-delay:0s}
.ai-particles span:nth-child(2){top:25%;left:85%;animation-delay:.4s}
.ai-particles span:nth-child(3){top:50%;left:95%;animation-delay:.8s}
.ai-particles span:nth-child(4){top:75%;left:85%;animation-delay:1.2s}
.ai-particles span:nth-child(5){top:90%;left:50%;animation-delay:1.6s}
.ai-particles span:nth-child(6){top:75%;left:15%;animation-delay:2s}
.ai-particles span:nth-child(7){top:50%;left:5%;animation-delay:2.4s}
.ai-particles span:nth-child(8){top:25%;left:15%;animation-delay:2.8s}

@keyframes particleFloat{
  0%,100%{opacity:0;transform:translate(0,0) scale(.5)}
  50%{opacity:.8;transform:translate(calc(var(--tx,0) * 1px),calc(var(--ty,0) * 1px)) scale(1)}
}

.ai-particles span:nth-child(1){--tx:-5;--ty:10}
.ai-particles span:nth-child(2){--tx:-10;--ty:5}
.ai-particles span:nth-child(3){--tx:-10;--ty:0}
.ai-particles span:nth-child(4){--tx:-10;--ty:-5}
.ai-particles span:nth-child(5){--tx:-5;--ty:-10}
.ai-particles span:nth-child(6){--tx:10;--ty:-5}
.ai-particles span:nth-child(7){--tx:10;--ty:0}
.ai-particles span:nth-child(8){--tx:10;--ty:5}

.ai-progress-header h3{
  color:var(--color-navy-700);
  font-size:1.35rem;
  margin:0 0 .25rem;
}

.ai-progress-subtitle{
  color:var(--color-text-muted);
  margin:0;
  font-size:.95rem;
}

/* Progress Bar */
.ai-progress-body{
  margin-bottom:var(--space-3);
}

.ai-progress-bar-container{
  height:8px;
  background:var(--color-surface-alt);
  border-radius:4px;
  overflow:hidden;
  margin-bottom:var(--space-1);
}

.ai-progress-bar{
  height:100%;
  width:0%;
  background:linear-gradient(90deg,var(--color-navy-500),var(--color-navy-400),var(--color-navy-500));
  background-size:200% 100%;
  border-radius:4px;
  transition:width .4s ease;
  animation:progressShimmer 2s linear infinite;
}

@keyframes progressShimmer{
  from{background-position:200% 0}
  to{background-position:-200% 0}
}

.ai-progress-percent{
  font-size:.85rem;
  font-weight:600;
  color:var(--color-navy-600);
  margin-bottom:var(--space-2);
}

/* Stage List */
.ai-progress-stages{
  list-style:none;
  padding:0;
  margin:0;
  text-align:left;
  max-height:240px;
  overflow-y:auto;
  scrollbar-width:thin;
}

.ai-progress-stages li{
  display:flex;
  align-items:center;
  gap:var(--space-1);
  padding:.45rem 0;
  font-size:.88rem;
  color:var(--color-text-muted);
  border-bottom:1px solid var(--color-border-subtle);
  transition:all .3s ease;
}

.ai-progress-stages li:last-child{
  border-bottom:none;
}

.stage-icon{
  width:18px;
  height:18px;
  border-radius:50%;
  border:2px solid var(--color-border-strong);
  flex-shrink:0;
  position:relative;
  transition:all .3s ease;
}

/* Pending state */
.ai-progress-stages li .stage-icon::after{
  content:"";
  position:absolute;
  inset:3px;
  border-radius:50%;
  background:transparent;
  transition:all .3s ease;
}

/* Active/Processing state */
.ai-progress-stages li.active{
  color:var(--color-navy-600);
  font-weight:500;
}

.ai-progress-stages li.active .stage-icon{
  border-color:var(--color-navy-500);
  animation:stagePulse 1.5s ease-in-out infinite;
}

.ai-progress-stages li.active .stage-icon::after{
  background:var(--color-navy-400);
  animation:stageInnerPulse 1.5s ease-in-out infinite;
}

@keyframes stagePulse{
  0%,100%{box-shadow:0 0 0 0 rgba(34,110,165,.4)}
  50%{box-shadow:0 0 0 6px rgba(34,110,165,0)}
}

@keyframes stageInnerPulse{
  0%,100%{transform:scale(.8);opacity:.6}
  50%{transform:scale(1);opacity:1}
}

/* Completed state */
.ai-progress-stages li.completed{
  color:var(--color-success);
}

.ai-progress-stages li.completed .stage-icon{
  border-color:var(--color-success);
  background:var(--color-success);
}

.ai-progress-stages li.completed .stage-icon::before{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:8px;
  height:4px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:translate(-50%,-60%) rotate(-45deg);
}

.ai-progress-stages li.completed .stage-icon::after{
  display:none;
}

.ai-progress-note{
  font-size:.8rem;
  color:var(--color-text-muted);
  margin:0;
  opacity:.8;
}

@media (max-width:480px){
  .ai-progress-modal{
    padding:var(--space-3);
  }
  .ai-orb{
    width:60px;
    height:60px;
  }
  .ai-orb-core{
    width:18px;
    height:18px;
  }
  .ai-orb-ring-1{width:32px;height:32px;margin:-16px 0 0 -16px}
  .ai-orb-ring-2{width:44px;height:44px;margin:-22px 0 0 -22px}
  .ai-orb-ring-3{width:56px;height:56px;margin:-28px 0 0 -28px}
  .ai-progress-stages{max-height:200px}
}

/* ============================================
   Report Styles
   ============================================ */

/* Report Header */
.report-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  padding-bottom:var(--space-3);
  margin-bottom:var(--space-4);
  border-bottom:2px solid var(--color-navy-500);
}

.report-title{
  font-size:1.75rem;
  color:var(--color-navy-700);
  margin:0 0 .35rem;
  font-weight:700;
}

.report-subtitle{
  color:var(--color-text-muted);
  margin:0;
  font-size:1rem;
}

.report-date{
  font-size:.9rem;
  color:var(--color-text-muted);
  background:var(--color-surface-alt);
  padding:.5rem 1rem;
  border-radius:var(--radius-sm);
}

/* Report Sections */
.report-section{
  margin-bottom:var(--space-4);
}

.report-section-title{
  font-size:1.1rem;
  font-weight:700;
  color:var(--color-navy-700);
  margin:0 0 var(--space-3);
  padding-bottom:var(--space-1);
  border-bottom:1px solid var(--color-border-subtle);
}

.report-section-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.report-section-header .report-section-title{
  margin-bottom:0;
  padding-bottom:0;
  border-bottom:none;
}

/* Summary Grid */
.summary-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:var(--space-2);
  margin-bottom:var(--space-3);
}

.summary-card{
  padding:var(--space-2) var(--space-3);
  background:var(--color-surface);
  border:1px solid var(--color-border-subtle);
  border-radius:var(--radius-md);
}

.summary-label{
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--color-text-muted);
  margin-bottom:.5rem;
  font-weight:500;
}

.summary-value{
  font-size:1.75rem;
  font-weight:700;
  color:var(--color-navy-700);
}

.summary-value-text{
  font-size:1.1rem;
  font-weight:600;
}

/* Report Insight */
.report-insight{
  font-size:.95rem;
  color:var(--color-text-muted);
  line-height:1.65;
  margin:0;
  padding:var(--space-2) var(--space-3);
  background:var(--color-surface-alt);
  border-left:3px solid var(--color-navy-400);
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;
}

/* Function Table */
.function-table{
  width:100%;
  border-collapse:collapse;
  font-size:.95rem;
}

.function-table th{
  text-align:left;
  padding:1rem .75rem;
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--color-text-muted);
  background:var(--color-surface-alt);
  font-weight:600;
}

.function-table th:first-child{
  border-radius:var(--radius-sm) 0 0 0;
}

.function-table th:last-child{
  border-radius:0 var(--radius-sm) 0 0;
}

.function-table td{
  padding:1rem .75rem;
  border-bottom:1px solid var(--color-border-subtle);
  vertical-align:middle;
}

.function-table tr:last-child td{
  border-bottom:none;
}

.fn-name{
  font-weight:600;
  color:var(--color-navy-700);
  width:100px;
}

.fn-desc{
  color:var(--color-text-muted);
  line-height:1.5;
}

.fn-score{
  font-weight:700;
  color:var(--color-navy-700);
  width:60px;
  text-align:right;
  font-size:1rem;
}

.fn-bar{
  width:140px;
}

.fn-bar .bar{
  height:8px;
  border-radius:4px;
}

/* Tier Grid */
.tier-grid{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr;
  gap:var(--space-2);
  margin-bottom:var(--space-3);
}

.tier-item{
  padding:var(--space-3);
  background:var(--color-surface);
  border:1px solid var(--color-border-subtle);
  border-radius:var(--radius-md);
}

.tier-label{
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--color-text-muted);
  margin-bottom:.5rem;
  font-weight:500;
}

.tier-value{
  font-size:1.5rem;
  font-weight:700;
  color:var(--color-navy-700);
}

.tier-name{
  font-size:.9rem;
  color:var(--color-text-muted);
  margin-top:.25rem;
}

.tier-link{
  display:inline-block;
  font-size:.9rem;
  color:var(--color-navy-500);
  text-decoration:none;
  font-weight:500;
}

.tier-link:hover{
  text-decoration:underline;
}

/* Tier Details */
.tier-details{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--space-3);
  margin-top:var(--space-3);
  padding-top:var(--space-3);
  border-top:1px solid var(--color-border-subtle);
}

.tier-detail-col{
  background:var(--color-surface-alt);
  padding:var(--space-2) var(--space-3);
  border-radius:var(--radius-sm);
}

.tier-detail-col h4{
  font-size:.9rem;
  font-weight:600;
  color:var(--color-navy-700);
  margin:0 0 .75rem;
}

.tier-detail-col ul{
  margin:0;
  padding-left:1.25rem;
  color:var(--color-text-muted);
  font-size:.9rem;
}

.tier-detail-col li{
  margin-bottom:.5rem;
  line-height:1.5;
}

.tier-detail-col .placeholder{
  list-style:none;
  margin-left:-1.25rem;
  color:var(--color-text-muted);
  font-style:italic;
}

/* Report List (used for Recommendations & Data Quality Notes) */
.report-list{
  margin:0;
  padding-left:1.5rem;
  color:var(--color-text-muted);
  font-size:.95rem;
}

.report-list li{
  margin-bottom:.6rem;
  line-height:1.6;
}

.empty-state{
  color:var(--color-text-muted);
  font-style:italic;
  margin:0;
}

/* Detail Cards */
.report-details{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:var(--space-2);
}

.detail-card{
  background:var(--color-surface);
  border:1px solid var(--color-border-subtle);
  border-radius:var(--radius-md);
  padding:var(--space-2) var(--space-3);
}

.detail-card h4{
  font-size:.9rem;
  font-weight:600;
  color:var(--color-navy-700);
  margin:0 0 .75rem;
  padding-bottom:.5rem;
  border-bottom:1px solid var(--color-border-subtle);
}

.detail-card ul{
  margin:0;
  padding-left:1.1rem;
  color:var(--color-text-muted);
  font-size:.85rem;
}

.detail-card li{
  margin-bottom:.35rem;
  line-height:1.5;
}

/* CTA Sections (Purchase & Success) */
.report-cta{
  background:var(--color-sky-100);
  border:1px solid rgba(34,110,165,.2);
  border-radius:var(--radius-lg);
  padding:var(--space-4);
  margin-top:var(--space-4);
}

.cta-content{
  max-width:600px;
  margin:0 auto;
  text-align:center;
}

.cta-content h3{
  font-size:1.35rem;
  font-weight:700;
  color:var(--color-navy-700);
  margin:0 0 .75rem;
}

.cta-content h4{
  font-size:1rem;
  font-weight:600;
  color:var(--color-navy-700);
  margin:var(--space-2) 0 .5rem;
}

.cta-content p{
  color:var(--color-text-muted);
  margin:0 0 var(--space-2);
  font-size:.95rem;
  line-height:1.6;
}

.cta-icon{
  width:48px;
  height:48px;
  margin-bottom:var(--space-2);
}

.cta-includes{
  font-size:.9rem;
  color:var(--color-text-muted);
  margin-bottom:var(--space-3);
  line-height:1.6;
}

.cta-includes span{
  font-weight:600;
  color:var(--color-navy-700);
}

.cta-subtext{
  font-size:.85rem;
  color:var(--color-text-muted);
  margin:var(--space-1) 0 0;
}

.cta-divider{
  width:80px;
  height:1px;
  background:var(--color-border-subtle);
  margin:var(--space-3) auto;
}

.btn-lg{
  font-size:1.1rem;
  padding:1rem 2rem;
  min-width:280px;
}

/* AI Loading */
.ai-loading{
  display:flex;
  align-items:center;
  gap:.5rem;
  font-size:.85rem;
  color:var(--color-text-muted);
}

.ai-loading-text{
  margin:0;
}

/* Responsive */
@media (max-width:900px){
  .summary-grid{
    grid-template-columns:repeat(2,1fr);
  }
  .tier-grid{
    grid-template-columns:1fr;
  }
  .tier-details{
    grid-template-columns:1fr;
  }
  .report-details{
    grid-template-columns:1fr;
  }
}

@media (max-width:640px){
  .report-header{
    flex-direction:column;
    gap:var(--space-2);
  }
  .report-title{
    font-size:1.5rem;
  }
  .summary-grid{
    grid-template-columns:1fr 1fr;
  }
  .summary-value{
    font-size:1.35rem;
  }
  .function-table{
    font-size:.85rem;
  }
  .fn-bar{
    display:none;
  }
  .fn-desc{
    display:none;
  }
  .cta-content{
    padding:0 var(--space-1);
  }
  .btn-lg{
    width:100%;
    min-width:auto;
  }
}
