/* Precision Comfort - Master Theme Tokens & Viewport Defense */

/* Global Mobile Viewport Safeguards */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw !important;
}

body {
  background-color: #020617; /* slate-950 */
  color: #cbd5e1; /* slate-300 */
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Dark Mode Prose & Typography Styling */
.prose {
  color: #cbd5e1 !important; /* slate-300 */
}

.prose h1, .prose h2, .prose h3, .prose h4, .prose h5, .prose h6 {
  color: #ffffff !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em;
  margin-top: 2rem !important;
  margin-bottom: 1rem !important;
}

.prose p {
  color: #cbd5e1 !important;
  line-height: 1.8 !important;
  margin-top: 1.25rem !important;
  margin-bottom: 1.25rem !important;
}

/* Clean, readable inline text links */
.prose a:not([class*="bg-"]):not([class*="btn"]) {
  color: #38bdf8 !important; /* sky-400 */
  font-weight: 600 !important;
  text-decoration: underline !important;
  text-decoration-color: rgba(56, 189, 248, 0.4) !important;
  transition: all 0.2s ease;
}

.prose a:not([class*="bg-"]):not([class*="btn"]):hover {
  color: #7dd3fc !important; /* sky-300 */
  text-decoration-color: #7dd3fc !important;
}

/* MANDATORY BUTTON TEXT CONTRAST DEFENSE */
/* Amber/Yellow Call Buttons MUST have bold dark text */
a[class*="bg-amber-"],
button[class*="bg-amber-"],
.prose a[class*="bg-amber-"] {
  color: #020617 !important; /* slate-950 font color */
  font-weight: 900 !important;
  text-decoration: none !important;
}

a[class*="bg-slate-"],
button[class*="bg-slate-"],
.prose a[class*="bg-slate-"] {
  color: #ffffff !important;
  text-decoration: none !important;
}

.prose strong {
  color: #ffffff !important;
  font-weight: 700 !important;
}

.prose ul, .prose ol {
  margin-top: 1.25rem !important;
  margin-bottom: 1.25rem !important;
  padding-left: 1.5rem !important;
}

.prose li {
  color: #cbd5e1 !important;
  margin-top: 0.5rem !important;
  margin-bottom: 0.5rem !important;
}

/* Responsive Table Styling with Zero Horizontal Scroll Overflow */
.prose table, table {
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch;
  white-space: nowrap;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
  background-color: #020617 !important; /* slate-950 */
  border-radius: 0.75rem !important;
  border: 1px solid #1e293b !important; /* slate-800 */
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5);
}

.prose thead th, table thead th {
  background-color: #0f172a !important; /* slate-900 */
  color: #f59e0b !important; /* amber-500 */
  font-weight: 800 !important;
  padding: 1rem 1.25rem !important;
  text-align: left;
  border-bottom: 2px solid #334155 !important;
  text-transform: uppercase;
  font-size: 0.875rem;
  letter-spacing: 0.05em;
}

.prose tbody td, table tbody td {
  padding: 1rem 1.25rem !important;
  border-bottom: 1px solid #1e293b !important;
  color: #e2e8f0 !important;
  font-size: 0.95rem;
}

.prose tbody tr:last-child td, table tbody tr:last-child td {
  border-bottom: none !important;
}

.prose tbody tr:nth-child(even), table tbody tr:nth-child(even) {
  background-color: #0b1120 !important;
}

/* Accordion Smooth Transitions */
details summary::-webkit-details-marker {
  display: none;
}

details[open] summary svg {
  transform: rotate(180deg);
}

/* Mobile Viewport Safeguards */
.logo-container {
  max-width: calc(100% - 56px);
}

.sticky-call-bar {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100vw;
}
