/* ========================================================================
   FedRAMP Compliance Guide — Deferred Styles (Dark Authority)
   Based on CMMC guide design system, adapted for FedRAMP content
   ======================================================================== */

/* Table of Contents */
.fedramp-toc { background: rgba(17,27,51,0.85); border: 1px solid rgba(255,255,255,0.12); border-radius: 16px; padding: 32px; margin-bottom: 40px; position: relative; z-index: 1; }
.fedramp-toc h2 { font-family: var(--font-heading, 'Plus Jakarta Sans', sans-serif); font-size: 1.35rem; color: var(--accent, #00A9E0); margin-bottom: 16px; }
.fedramp-toc ol { list-style: none; counter-reset: toc-counter; padding: 0; margin: 0; columns: 2; column-gap: 32px; }
.fedramp-toc ol li { counter-increment: toc-counter; margin-bottom: 10px; break-inside: avoid; }
.fedramp-toc ol li a { color: var(--text-secondary, rgba(240,240,240,0.72)); text-decoration: none; font-size: 0.98rem; line-height: 1.5; transition: color 0.2s; display: flex; align-items: baseline; gap: 8px; }
.fedramp-toc ol li a::before { content: counter(toc-counter) "."; color: var(--accent, #00A9E0); font-weight: 700; font-size: 0.9rem; min-width: 24px; }
.fedramp-toc ol li a:hover { color: var(--accent, #00A9E0); }
@media (max-width: 640px) { .fedramp-toc ol { columns: 1; } }

/* Comparison table */
.fedramp-comparison-table { width: 100%; border-collapse: collapse; margin: 24px 0; }
.fedramp-comparison-table th, .fedramp-comparison-table td { padding: 14px 16px; text-align: left; border-bottom: 1px solid rgba(255,255,255,0.08); font-size: 0.95rem; }
.fedramp-comparison-table th { color: var(--accent, #00A9E0); font-weight: 700; font-family: var(--font-heading, 'Plus Jakarta Sans', sans-serif); background: rgba(0,169,224,0.06); }
.fedramp-comparison-table td { color: var(--text-secondary, rgba(240,240,240,0.72)); }
.fedramp-comparison-table tr:hover td { background: rgba(0,169,224,0.03); }

/* Cost table */
.fedramp-cost-table { width: 100%; border-collapse: collapse; margin: 24px 0; }
.fedramp-cost-table th, .fedramp-cost-table td { padding: 14px 16px; text-align: left; border-bottom: 1px solid rgba(255,255,255,0.08); font-size: 0.95rem; }
.fedramp-cost-table th { color: var(--accent, #00A9E0); font-weight: 700; font-family: var(--font-heading, 'Plus Jakarta Sans', sans-serif); background: rgba(0,169,224,0.06); }
.fedramp-cost-table td { color: var(--text-secondary, rgba(240,240,240,0.72)); }
.fedramp-cost-table tr:hover td { background: rgba(0,169,224,0.03); }

/* Checklist styles */
.fedramp-checklist { list-style: none; padding: 0; margin: 20px 0; }
.fedramp-checklist li { padding: 10px 0 10px 32px; position: relative; color: var(--text-secondary, rgba(240,240,240,0.72)); line-height: 1.6; border-bottom: 1px solid rgba(255,255,255,0.04); }
.fedramp-checklist li::before { content: "\2713"; position: absolute; left: 0; color: var(--accent, #00A9E0); font-weight: 700; font-size: 1.1rem; }

/* Callout box */
.fedramp-callout { background: rgba(0,169,224,0.08); border-left: 4px solid var(--accent, #00A9E0); border-radius: 0 12px 12px 0; padding: 20px 24px; margin: 24px 0; }
.fedramp-callout strong { color: var(--text-primary, #F0F0F0); }
.fedramp-callout p { color: var(--text-secondary, rgba(240,240,240,0.72)); margin: 0; line-height: 1.7; }

/* Warning callout */
.fedramp-warning { background: rgba(220,38,38,0.08); border-left: 4px solid #ef4444; border-radius: 0 12px 12px 0; padding: 20px 24px; margin: 24px 0; }
.fedramp-warning strong { color: #ef4444; }
.fedramp-warning p { color: var(--text-secondary, rgba(240,240,240,0.72)); margin: 0; line-height: 1.7; }

/* Timeline */
.fedramp-timeline { position: relative; padding-left: 32px; margin: 28px 0; }
.fedramp-timeline::before { content: ''; position: absolute; left: 8px; top: 8px; bottom: 8px; width: 2px; background: linear-gradient(to bottom, var(--accent, #00A9E0), rgba(124,58,237,0.5)); }
.fedramp-timeline-item { position: relative; margin-bottom: 28px; }
.fedramp-timeline-item::before { content: ''; position: absolute; left: -28px; top: 6px; width: 12px; height: 12px; border-radius: 50%; background: var(--accent, #00A9E0); border: 2px solid var(--surface-0, #050810); }
.fedramp-timeline-item h4 { font-family: var(--font-heading, 'Plus Jakarta Sans', sans-serif); color: var(--text-primary, #F0F0F0); margin: 0 0 6px; font-size: 1.05rem; }
.fedramp-timeline-item p { color: var(--text-secondary, rgba(240,240,240,0.72)); margin: 0; line-height: 1.7; font-size: 0.95rem; }

/* Roadmap steps */
.fedramp-roadmap { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; margin: 28px 0; }
.fedramp-roadmap-step { background: rgba(17,27,51,0.7); border: 1px solid rgba(255,255,255,0.1); border-radius: 14px; padding: 24px; position: relative; }
.fedramp-roadmap-step .step-num { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: linear-gradient(135deg, var(--accent, #00A9E0), #7C3AED); color: #fff; font-weight: 800; font-size: 0.95rem; margin-bottom: 12px; font-family: var(--font-heading, 'Plus Jakarta Sans', sans-serif); }
.fedramp-roadmap-step h4 { font-family: var(--font-heading, 'Plus Jakarta Sans', sans-serif); color: var(--text-primary, #F0F0F0); margin: 0 0 8px; font-size: 1.05rem; }
.fedramp-roadmap-step p { color: var(--text-secondary, rgba(240,240,240,0.72)); margin: 0; line-height: 1.65; font-size: 0.93rem; }

/* Domain grid (for control families) */
.fedramp-domain-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 12px; margin: 20px 0; }
.fedramp-domain-item { background: rgba(17,27,51,0.6); border: 1px solid rgba(255,255,255,0.08); border-radius: 10px; padding: 14px 16px; }
.fedramp-domain-item strong { color: var(--accent, #00A9E0); font-size: 0.9rem; display: block; margin-bottom: 4px; }
.fedramp-domain-item span { color: var(--text-secondary, rgba(240,240,240,0.72)); font-size: 0.88rem; line-height: 1.5; }
