/* ==========================================================================
   embed.css — LoanCalcNow.com embeddable widget (Priority 4, item 1)
   --------------------------------------------------------------------------
   Compact, SELF-CONTAINED stylesheet for the iframe embed pages
   (/embed/emi.html, /embed/mortgage.html, /embed/personal.html). It cannot
   share the site-wide style.css and stay lightweight, so it carries its own
   small :root token subset (values copied from style.css :root — keep in sync
   if the brand palette ever changes). Light theme only; no @font-face (falls
   back to the host page's fonts / system UI to avoid a web-font request on a
   third-party page). Mobile-first, fluid width.
   ========================================================================== */

:root {
  --color-primary: #2563EB;
  --color-primary-dark: #1D4ED8;
  --color-primary-light: #DBEAFE;
  --color-accent: #D97706;
  --color-bg: #F1F5F9;
  --color-surface: #FFFFFF;
  --color-border: #E2E8F0;
  --color-text-primary: #0F172A;
  --color-text-secondary: #64748B;

  --font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;

  --radius-full: 9999px;
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;

  --shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
  --shadow-md: 0 4px 6px rgba(15, 23, 42, 0.08);

  --transition-fast: 150ms ease;
}

/* --- Reset (scoped, minimal) --------------------------------------------- */

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

html, body {
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-family);
  color: var(--color-text-primary);
  background: transparent;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* --- Widget shell -------------------------------------------------------- */

.lcn-embed {
  max-width: 560px;
  margin: 0 auto;
  padding: var(--space-4);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}

.lcn-embed-title {
  margin: 0 0 var(--space-4);
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--color-text-primary);
}

/* --- Input fields -------------------------------------------------------- */

.lcn-field { margin-bottom: var(--space-4); }

/* Two compact inputs side by side (mortgage tax + insurance). */
.lcn-field-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3);
}

.lcn-field-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  margin-bottom: var(--space-2);
  flex-wrap: wrap;
}

.lcn-field label {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--color-text-secondary);
}

.lcn-field-head-right {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

.lcn-field-value {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--color-primary);
}

.lcn-input {
  width: 100%;
  margin-top: var(--space-2);
  padding: var(--space-2) var(--space-3);
  font-size: 0.9375rem;
  font-family: inherit;
  color: var(--color-text-primary);
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
}

.lcn-input:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 1px;
}

.lcn-limits {
  display: flex;
  justify-content: space-between;
  margin-top: var(--space-1);
  font-size: 0.6875rem;
  color: var(--color-text-secondary);
}

/* --- Range slider (mirrors style.css .range so ui.js's --range-fill works) */

.range {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 6px;
  border-radius: var(--radius-full);
  cursor: pointer;
  background: linear-gradient(
    to right,
    var(--color-primary) 0%,
    var(--color-primary) var(--range-fill, 0%),
    var(--color-border) var(--range-fill, 0%),
    var(--color-border) 100%
  );
}

.range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  border-radius: var(--radius-full);
  background: var(--color-surface);
  border: 2px solid var(--color-primary);
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition-fast), transform var(--transition-fast);
}

.range::-webkit-slider-thumb:hover { box-shadow: var(--shadow-md); }
.range:focus-visible::-webkit-slider-thumb { transform: scale(1.15); }

.range::-moz-range-track {
  height: 6px;
  border-radius: var(--radius-full);
  background: var(--color-border);
}

.range::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: var(--radius-full);
  background: var(--color-surface);
  border: 2px solid var(--color-primary);
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition-fast), transform var(--transition-fast);
}

.range::-moz-range-thumb:hover { box-shadow: var(--shadow-md); }
.range:focus-visible::-moz-range-thumb { transform: scale(1.15); }

/* --- Segmented toggle (Years/Months, %/$, Reducing/Flat) ----------------- */

.lcn-segment {
  display: inline-flex;
  padding: 2px;
  gap: 2px;
  background: var(--color-bg);
  border-radius: var(--radius-md);
}

.lcn-segment-btn {
  padding: 3px 10px;
  font-size: 0.75rem;
  font-weight: 600;
  font-family: inherit;
  color: var(--color-text-secondary);
  background: transparent;
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast);
}

.lcn-segment-btn.is-active {
  color: var(--color-primary);
  background: var(--color-surface);
  box-shadow: var(--shadow-sm);
}

/* --- Result -------------------------------------------------------------- */

.lcn-result {
  margin-top: var(--space-2);
  padding: var(--space-4);
  background: var(--color-bg);
  border-radius: var(--radius-md);
}

.lcn-result-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.lcn-result-value {
  display: block;
  margin-top: 2px;
  font-size: 1.875rem;
  font-weight: 700;
  color: var(--color-primary);
  line-height: 1.15;
}

/* Breakdown bar: two segments (principal / interest), pure CSS. */
.lcn-bar {
  display: flex;
  height: 10px;
  margin: var(--space-4) 0 var(--space-2);
  border-radius: var(--radius-full);
  overflow: hidden;
  background: var(--color-border);
}

.lcn-bar-principal { background: var(--color-primary); }
.lcn-bar-interest { background: var(--color-accent); }

.lcn-legend {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-2);
}

.lcn-legend-item {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  font-size: 0.75rem;
  color: var(--color-text-secondary);
}

.lcn-dot {
  width: 10px;
  height: 10px;
  border-radius: var(--radius-full);
  flex: 0 0 auto;
}

.lcn-dot-principal { background: var(--color-primary); }
.lcn-dot-interest { background: var(--color-accent); }

.lcn-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-3);
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid var(--color-border);
}

.lcn-stat-label {
  display: block;
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--color-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.lcn-stat-value {
  display: block;
  margin-top: 2px;
  font-size: 1rem;
  font-weight: 700;
  color: var(--color-text-primary);
}

/* --- Credit footer (in-iframe branding + link back to the full tool) ----- */

.lcn-credit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2);
  flex-wrap: wrap;
  margin-top: var(--space-4);
  padding-top: var(--space-3);
  border-top: 1px solid var(--color-border);
  font-size: 0.75rem;
  color: var(--color-text-secondary);
}

.lcn-credit a {
  color: var(--color-primary);
  font-weight: 600;
  text-decoration: none;
}

.lcn-credit a:hover { text-decoration: underline; }

.lcn-credit-brand { font-weight: 600; color: var(--color-text-primary); }
.lcn-credit-brand span { color: var(--color-accent); }
