/* =============================================================
   Lemon Law Buyback Calculator — calculator.css v2.0.0
   ============================================================= */

/* ── Custom Properties (overridden per-instance via inline <style>) ── */
.llbc-wrap {
  --llbc-primary:       #1a5e9e;
  --llbc-accent:        #e8b000;
  --llbc-primary-light: color-mix(in srgb, var(--llbc-primary) 12%, #fff);
  --llbc-accent-light:  color-mix(in srgb, var(--llbc-accent)  12%, #fff);
  --llbc-success:       #2e7d32;
  --llbc-warn:          #e65100;
  --llbc-danger:        #c62828;
  --llbc-border:        #e0e4ec;
  --llbc-bg:            #f8f9fc;
  --llbc-radius:        10px;
  --llbc-shadow:        0 2px 12px rgba(0,0,0,.07);
  --llbc-font:          system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

/* ── Base Wrap ── */
.llbc-wrap {
  font-family:   var(--llbc-font);
  font-size:     15px;
  line-height:   1.55;
  color:         #1a1a2e;
  max-width:     860px;
  margin:        0 auto;
  padding:       0 4px;
}
.llbc-wrap *, .llbc-wrap *::before, .llbc-wrap *::after {
  box-sizing: border-box;
}

/* ═══════════════════════════════════════════════════════════════
   HEADER
   ═══════════════════════════════════════════════════════════════ */
.llbc-header {
  display:        flex;
  align-items:    flex-start;
  gap:            20px;
  margin-bottom:  24px;
}
.llbc-state-icon {
  flex-shrink: 0;
  width:  80px;
  height: 80px;
}
.llbc-state-icon svg { display: block; }

.llbc-header-text { flex: 1; min-width: 0; }

.llbc-statute-badge {
  display:        inline-block;
  background:     var(--llbc-primary-light);
  border:         1px solid color-mix(in srgb, var(--llbc-primary) 25%, #fff);
  border-radius:  20px;
  padding:        3px 12px;
  font-size:      12px;
  font-weight:    600;
  margin-bottom:  8px;
}
.llbc-statute-badge a {
  color:           var(--llbc-primary);
  text-decoration: none;
}
.llbc-statute-badge a:hover { text-decoration: underline; }

.llbc-intro {
  font-size:    14px;
  color:        #444;
  margin:       0 0 12px;
}

.llbc-formula-box {
  background:    var(--llbc-bg);
  border:        1px solid var(--llbc-border);
  border-left:   4px solid var(--llbc-primary);
  border-radius: var(--llbc-radius);
  padding:       10px 14px;
}
.llbc-formula-label {
  font-size:   11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color:       var(--llbc-primary);
  margin-bottom: 4px;
}
.llbc-formula-body {
  font-size:   13px;
  color:       #333;
  line-height: 1.7;
}

/* ═══════════════════════════════════════════════════════════════
   SECTIONS
   ═══════════════════════════════════════════════════════════════ */
.llbc-section {
  background:    #fff;
  border:        1px solid var(--llbc-border);
  border-radius: var(--llbc-radius);
  padding:       20px 22px;
  margin-bottom: 16px;
  box-shadow:    var(--llbc-shadow);
}
.llbc-section-state {
  border-color: color-mix(in srgb, var(--llbc-primary) 40%, #fff);
  background:   color-mix(in srgb, var(--llbc-primary) 3%, #fff);
}
.llbc-section-title {
  font-size:      15px;
  font-weight:    700;
  color:          var(--llbc-primary);
  margin-bottom:  14px;
  padding-bottom: 10px;
  border-bottom:  2px solid var(--llbc-primary-light);
  display:        flex;
  align-items:    center;
  gap:            6px;
}
.llbc-section-note {
  font-size:     13px;
  color:         #555;
  background:    var(--llbc-bg);
  border-radius: 6px;
  padding:       8px 12px;
  margin-bottom: 14px;
  border-left:   3px solid var(--llbc-accent);
}
.llbc-optional-tag {
  font-size:     11px;
  font-weight:   400;
  background:    #e8f5e9;
  color:         var(--llbc-success);
  padding:       2px 8px;
  border-radius: 10px;
  margin-left:   6px;
}

/* ═══════════════════════════════════════════════════════════════
   FIELDS GRID
   ═══════════════════════════════════════════════════════════════ */
.llbc-fields {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   14px 20px;
}
.llbc-field-full { grid-column: 1 / -1; }

.llbc-field { display: flex; flex-direction: column; gap: 5px; }

/* ── Labels ── */
.llbc-label {
  font-size:   13px;
  font-weight: 600;
  color:       #2a2a3e;
  display:     flex;
  align-items: center;
  gap:         5px;
  flex-wrap:   wrap;
}
.llbc-req { color: var(--llbc-danger); font-size: 14px; }

/* ── Inputs ── */
.llbc-input {
  width:         100%;
  padding:       9px 12px;
  border:        1.5px solid var(--llbc-border);
  border-radius: 7px;
  font-size:     14px;
  font-family:   var(--llbc-font);
  color:         #1a1a2e;
  background:    #fff;
  transition:    border-color .18s, box-shadow .18s;
  appearance:    none;
  -webkit-appearance: none;
}
.llbc-input:focus {
  outline:      none;
  border-color: var(--llbc-primary);
  box-shadow:   0 0 0 3px color-mix(in srgb, var(--llbc-primary) 18%, transparent);
}
.llbc-input::placeholder { color: #aab; }
.llbc-input:invalid:not(:placeholder-shown) {
  border-color: var(--llbc-danger);
}
select.llbc-input {
  padding-right: 32px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231a5e9e' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:   no-repeat;
  background-position: right 12px center;
  cursor: pointer;
}

/* ── Input with prefix ($) or suffix (miles/days) ── */
.llbc-input-prefix,
.llbc-input-suffix {
  display:       flex;
  align-items:   stretch;
  border:        1.5px solid var(--llbc-border);
  border-radius: 7px;
  overflow:      hidden;
  transition:    border-color .18s, box-shadow .18s;
}
.llbc-input-prefix:focus-within,
.llbc-input-suffix:focus-within {
  border-color: var(--llbc-primary);
  box-shadow:   0 0 0 3px color-mix(in srgb, var(--llbc-primary) 18%, transparent);
}
.llbc-prefix,
.llbc-suffix {
  background:  var(--llbc-bg);
  color:       #777;
  font-size:   13px;
  font-weight: 600;
  padding:     0 10px;
  display:     flex;
  align-items: center;
  border-right: 1.5px solid var(--llbc-border);
  white-space: nowrap;
}
.llbc-suffix { border-right: none; border-left: 1.5px solid var(--llbc-border); }
.llbc-input-prefix .llbc-input,
.llbc-input-suffix .llbc-input {
  border: none;
  border-radius: 0;
  flex: 1;
  box-shadow: none !important;
}
.llbc-input-prefix .llbc-input:focus,
.llbc-input-suffix .llbc-input:focus { outline: none; }

/* ── Repair counter ── */
.llbc-repair-counter {
  display:     flex;
  align-items: center;
  gap:         8px;
}
.llbc-counter-btn {
  width:         36px;
  height:        36px;
  border:        1.5px solid var(--llbc-border);
  border-radius: 7px;
  background:    #fff;
  font-size:     20px;
  font-weight:   700;
  cursor:        pointer;
  color:         var(--llbc-primary);
  display:       flex;
  align-items:   center;
  justify-content: center;
  transition:    background .15s, border-color .15s;
  flex-shrink:   0;
}
.llbc-counter-btn:hover {
  background:   var(--llbc-primary-light);
  border-color: var(--llbc-primary);
}

/* ── Radio group ── */
.llbc-radio-group {
  display:    flex;
  flex-wrap:  wrap;
  gap:        8px;
}
.llbc-radio-label {
  display:       flex;
  align-items:   center;
  gap:           6px;
  font-size:     13px;
  cursor:        pointer;
  background:    var(--llbc-bg);
  border:        1.5px solid var(--llbc-border);
  border-radius: 7px;
  padding:       7px 12px;
  transition:    border-color .15s, background .15s;
}
.llbc-radio-label:hover { border-color: var(--llbc-primary); background: var(--llbc-primary-light); }
.llbc-radio-label input[type="radio"] { accent-color: var(--llbc-primary); }

/* ── Auto-calculate button ── */
.llbc-auto-btn {
  padding:       7px 12px;
  background:    var(--llbc-primary-light);
  color:         var(--llbc-primary);
  border:        1.5px solid color-mix(in srgb, var(--llbc-primary) 30%, #fff);
  border-radius: 7px;
  font-size:     12px;
  font-weight:   600;
  cursor:        pointer;
  white-space:   nowrap;
  transition:    background .15s;
  flex-shrink:   0;
}
.llbc-auto-btn:hover { background: color-mix(in srgb, var(--llbc-primary) 20%, #fff); }

/* ── Secondary button ── */
.llbc-btn-secondary {
  padding:       8px 16px;
  background:    #fff;
  color:         var(--llbc-primary);
  border:        1.5px solid var(--llbc-primary);
  border-radius: 7px;
  font-size:     13px;
  font-weight:   600;
  cursor:        pointer;
  transition:    background .15s;
}
.llbc-btn-secondary:hover { background: var(--llbc-primary-light); }

/* ── Loan estimator sub-panel ── */
.llbc-loan-estimator {
  grid-column: 1 / -1;
}
.llbc-loan-estimator-inner {
  background:    var(--llbc-bg);
  border:        1.5px dashed var(--llbc-border);
  border-radius: var(--llbc-radius);
  padding:       14px 16px;
}
.llbc-loan-est-title {
  font-size:     13px;
  font-weight:   700;
  color:         var(--llbc-primary);
  margin-bottom: 10px;
}

/* ═══════════════════════════════════════════════════════════════
   TOOLTIPS
   ═══════════════════════════════════════════════════════════════ */
.llbc-tooltip-icon {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  width:           18px;
  height:          18px;
  border-radius:   50%;
  background:      var(--llbc-primary-light);
  color:           var(--llbc-primary);
  font-size:       11px;
  font-weight:     700;
  cursor:          pointer;
  position:        relative;
  flex-shrink:     0;
  transition:      background .15s;
  user-select:     none;
}
.llbc-tooltip-icon:hover { background: var(--llbc-primary); color: #fff; }

/* Tooltip popup */
.llbc-tooltip-popup {
  position:      absolute;
  z-index:       9999;
  max-width:     300px;
  background:    #1a1a2e;
  color:         #f0f0f8;
  font-size:     12px;
  line-height:   1.5;
  padding:       10px 13px;
  border-radius: 8px;
  box-shadow:    0 4px 20px rgba(0,0,0,.25);
  pointer-events: none;
  opacity:       0;
  transform:     translateY(-4px);
  transition:    opacity .18s, transform .18s;
  white-space:   normal;
  text-align:    left;
}
.llbc-tooltip-popup.llbc-tip-visible {
  opacity:   1;
  transform: translateY(0);
}
.llbc-tooltip-popup::after {
  content:      '';
  position:     absolute;
  bottom:       -6px;
  left:         14px;
  width:        12px;
  height:       12px;
  background:   #1a1a2e;
  clip-path:    polygon(0 0, 100% 0, 50% 100%);
}

/* ═══════════════════════════════════════════════════════════════
   CONDITIONAL QUESTION FIELDS (state-specific)
   ═══════════════════════════════════════════════════════════════ */
/* Info banners */
.llbc-info-banner {
  background:    #e3f2fd;
  border:        1.5px solid #90caf9;
  border-radius: var(--llbc-radius);
  padding:       0;
}
.llbc-info-banner-inner {
  display:     flex;
  gap:         12px;
  align-items: flex-start;
  padding:     12px 14px;
}
.llbc-info-icon { font-size: 18px; flex-shrink: 0; margin-top: 1px; }
.llbc-info-banner strong { font-size: 13px; color: #0d47a1; }
.llbc-info-banner p { font-size: 13px; color: #1a237e; margin: 4px 0 0; }

/* Info display (fixed value fields like $35 filing fee) */
.llbc-info-display {
  background:    var(--llbc-accent-light);
  border:        1.5px solid color-mix(in srgb, var(--llbc-accent) 40%, #fff);
  border-radius: 7px;
  padding:       9px 14px;
  font-size:     15px;
  font-weight:   700;
  color:         #5a3500;
}

/* Yes/No toggle buttons */
.llbc-yesno-btns {
  display: flex;
  gap:     10px;
}
.llbc-yn-btn {
  flex:          1;
  padding:       10px 0;
  border:        2px solid var(--llbc-border);
  border-radius: 8px;
  background:    #fff;
  font-size:     14px;
  font-weight:   600;
  cursor:        pointer;
  transition:    background .15s, border-color .15s, color .15s;
  color:         #555;
}
.llbc-yn-btn:hover {
  border-color: var(--llbc-primary);
  background:   var(--llbc-primary-light);
  color:        var(--llbc-primary);
}
.llbc-yn-btn.llbc-yn-yes.active {
  background:   #e8f5e9;
  border-color: var(--llbc-success);
  color:        var(--llbc-success);
}
.llbc-yn-btn.llbc-yn-no.active {
  background:   #ffebee;
  border-color: var(--llbc-danger);
  color:        var(--llbc-danger);
}

/* Yes/No feedback box */
.llbc-yn-feedback {
  margin-top:    8px;
  padding:       10px 14px;
  border-radius: 8px;
  font-size:     13px;
  line-height:   1.5;
}
.llbc-yn-feedback.llbc-feedback-warn {
  background:   #fff8e1;
  border:       1.5px solid #ffcc02;
  color:        #5a3500;
}
.llbc-yn-feedback.llbc-feedback-ok {
  background:   #e8f5e9;
  border:       1.5px solid #a5d6a7;
  color:        #1b5e20;
}
.llbc-yn-feedback.llbc-feedback-danger {
  background:   #ffebee;
  border:       1.5px solid #ef9a9a;
  color:        #b71c1c;
}

/* Validation error message */
.llbc-validation-msg {
  color:       var(--llbc-danger);
  font-size:   12px;
  margin-top:  4px;
}

/* ═══════════════════════════════════════════════════════════════
   ADD COST ROW
   ═══════════════════════════════════════════════════════════════ */
.llbc-extra-cost-row {
  display:       flex;
  gap:           10px;
  align-items:   center;
  margin-bottom: 8px;
}
.llbc-extra-cost-row input[type="text"]  { flex: 2; }
.llbc-extra-cost-row input[type="number"] { flex: 1; }
.llbc-extra-cost-row .llbc-remove-cost {
  background:    none;
  border:        none;
  color:         var(--llbc-danger);
  font-size:     20px;
  cursor:        pointer;
  padding:       0 6px;
  line-height:   1;
}
.llbc-add-cost-btn {
  margin-top:    10px;
  background:    none;
  border:        1.5px dashed var(--llbc-border);
  border-radius: 7px;
  padding:       8px 16px;
  font-size:     13px;
  color:         #777;
  cursor:        pointer;
  width:         100%;
  transition:    border-color .15s, color .15s;
}
.llbc-add-cost-btn:hover {
  border-color: var(--llbc-primary);
  color:        var(--llbc-primary);
}

/* ═══════════════════════════════════════════════════════════════
   ACTION SECTION (Calculate button)
   ═══════════════════════════════════════════════════════════════ */
.llbc-action-section {
  background:      transparent;
  border:          none;
  box-shadow:      none;
  display:         flex;
  align-items:     center;
  gap:             14px;
  padding:         6px 0;
}
.llbc-calculate-btn {
  flex:            1;
  padding:         15px 24px;
  background:      var(--llbc-primary);
  color:           #fff;
  border:          none;
  border-radius:   var(--llbc-radius);
  font-size:       16px;
  font-weight:     700;
  cursor:          pointer;
  display:         flex;
  align-items:     center;
  justify-content: center;
  gap:             8px;
  transition:      background .2s, transform .1s, box-shadow .2s;
  box-shadow:      0 4px 14px color-mix(in srgb, var(--llbc-primary) 35%, transparent);
}
.llbc-calculate-btn:hover {
  background:  color-mix(in srgb, var(--llbc-primary) 85%, #000);
  box-shadow:  0 6px 20px color-mix(in srgb, var(--llbc-primary) 45%, transparent);
  transform:   translateY(-1px);
}
.llbc-calculate-btn:active { transform: translateY(0); }
.llbc-calc-icon { font-size: 20px; }
.llbc-calculate-btn.llbc-loading {
  pointer-events: none;
  opacity:        .7;
}
.llbc-reset-btn {
  padding:       12px 20px;
  background:    #fff;
  color:         #888;
  border:        1.5px solid var(--llbc-border);
  border-radius: var(--llbc-radius);
  font-size:     14px;
  cursor:        pointer;
  transition:    border-color .15s, color .15s;
}
.llbc-reset-btn:hover { border-color: var(--llbc-danger); color: var(--llbc-danger); }

/* ═══════════════════════════════════════════════════════════════
   RESULTS PANEL
   ═══════════════════════════════════════════════════════════════ */
.llbc-results {
  border:        2px solid var(--llbc-primary);
  border-radius: var(--llbc-radius);
  overflow:      hidden;
  margin-bottom: 20px;
  box-shadow:    0 4px 24px color-mix(in srgb, var(--llbc-primary) 15%, transparent);
  animation:     llbc-slide-in .35s ease;
}
@keyframes llbc-slide-in {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}

.llbc-results-header {
  background:  var(--llbc-primary);
  color:       #fff;
  padding:     16px 22px;
}
.llbc-results-title {
  font-size:   17px;
  font-weight: 700;
  margin-bottom: 2px;
}
.llbc-results-sub { font-size: 12px; opacity: .8; }

/* ── Eligibility bar ── */
.llbc-eligibility-bar {
  display:     flex;
  flex-wrap:   wrap;
  gap:         10px;
  padding:     14px 22px;
  background:  var(--llbc-bg);
  border-bottom: 1px solid var(--llbc-border);
}
.llbc-elig-item {
  display:       flex;
  align-items:   center;
  gap:           6px;
  font-size:     12px;
  font-weight:   600;
  padding:       5px 12px;
  border-radius: 20px;
  background:    #fff;
  border:        1px solid var(--llbc-border);
  color:         #555;
}
.llbc-elig-item.llbc-elig-pass  { background: #e8f5e9; border-color: #a5d6a7; color: var(--llbc-success); }
.llbc-elig-item.llbc-elig-warn  { background: #fff8e1; border-color: #ffcc02; color: #5a3500; }
.llbc-elig-item.llbc-elig-fail  { background: #ffebee; border-color: #ef9a9a; color: var(--llbc-danger); }

/* ── Breakdown ── */
.llbc-breakdown { padding: 0 22px 4px; }

.llbc-breakdown-section {
  border-bottom:  1px solid var(--llbc-border);
  padding:        14px 0;
}
.llbc-breakdown-section:last-child { border-bottom: none; }

.llbc-breakdown-title {
  font-size:     12px;
  font-weight:   700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color:         #888;
  margin-bottom: 8px;
}

.llbc-breakdown-row {
  display:         flex;
  justify-content: space-between;
  align-items:     baseline;
  padding:         4px 0;
  font-size:       14px;
  color:           #333;
  gap:             8px;
}
.llbc-breakdown-row span:last-child { font-variant-numeric: tabular-nums; white-space: nowrap; }
.llbc-row-deduct { color: #777; }
.llbc-row-deduct span:last-child { color: var(--llbc-warn); }
.llbc-row-total {
  border-top:  2px solid var(--llbc-border);
  margin-top:  6px;
  padding-top: 8px;
  font-size:   15px;
  font-weight: 700;
  color:       #1a1a2e;
}
.llbc-row-refund strong {
  font-size:  20px;
  color:      var(--llbc-success);
}
.llbc-penalty-section { background: #fff3e0; border-radius: 8px; padding: 12px 14px; margin: 8px 0; }

/* ── Worked example ── */
.llbc-worked-example {
  margin:        0 22px 14px;
  background:    var(--llbc-bg);
  border:        1px solid var(--llbc-border);
  border-radius: 8px;
  padding:       12px 16px;
}
.llbc-we-title {
  font-size:     12px;
  font-weight:   700;
  color:         var(--llbc-primary);
  margin-bottom: 6px;
}
.llbc-we-body {
  font-size:   13px;
  color:       #444;
  line-height: 1.8;
  font-family: "Courier New", monospace;
}

/* ── Filing info ── */
.llbc-filing-info {
  padding:     10px 22px 14px;
  font-size:   12px;
  color:       #666;
}
.llbc-filing-info a { color: var(--llbc-primary); text-decoration: none; }
.llbc-filing-info a:hover { text-decoration: underline; }

/* ═══════════════════════════════════════════════════════════════
   LEAD CAPTURE FORM
   ═══════════════════════════════════════════════════════════════ */
.llbc-lead-form {
  background:    linear-gradient(135deg,
                   color-mix(in srgb, var(--llbc-primary) 8%, #fff),
                   color-mix(in srgb, var(--llbc-accent) 8%, #fff));
  border:        2px solid color-mix(in srgb, var(--llbc-primary) 25%, #fff);
  border-radius: var(--llbc-radius);
  padding:       24px;
  margin-bottom: 16px;
  text-align:    center;
}
.llbc-lead-title {
  font-size:   18px;
  font-weight: 700;
  color:       var(--llbc-primary);
  margin-bottom: 6px;
}
.llbc-lead-sub {
  font-size:     14px;
  color:         #555;
  margin-bottom: 16px;
}
.llbc-lead-fields {
  display:               grid;
  grid-template-columns: 1fr 1fr;
  gap:                   10px;
  margin-bottom:         14px;
  text-align:            left;
}
.llbc-lead-submit {
  background:    var(--llbc-accent);
  color:         #fff;
  border:        none;
  border-radius: var(--llbc-radius);
  padding:       13px 28px;
  font-size:     15px;
  font-weight:   700;
  cursor:        pointer;
  width:         100%;
  transition:    background .2s, transform .1s;
  box-shadow:    0 4px 14px color-mix(in srgb, var(--llbc-accent) 40%, transparent);
}
.llbc-lead-submit:hover {
  background: color-mix(in srgb, var(--llbc-accent) 85%, #000);
  transform:  translateY(-1px);
}
.llbc-lead-msg {
  margin-top:    12px;
  padding:       10px 14px;
  border-radius: 8px;
  font-size:     14px;
}
.llbc-lead-msg.llbc-msg-ok     { background: #e8f5e9; color: var(--llbc-success); border: 1px solid #a5d6a7; }
.llbc-lead-msg.llbc-msg-error  { background: #ffebee; color: var(--llbc-danger);  border: 1px solid #ef9a9a; }
.llbc-lead-privacy {
  font-size:  11px;
  color:      #999;
  margin-top: 10px;
}

/* ═══════════════════════════════════════════════════════════════
   DISCLAIMER
   ═══════════════════════════════════════════════════════════════ */
.llbc-disclaimer {
  background:    #fafafa;
  border:        1px solid #ddd;
  border-radius: var(--llbc-radius);
  padding:       16px 20px;
  font-size:     12px;
  color:         #666;
  line-height:   1.6;
}
.llbc-disclaimer-title {
  font-size:     13px;
  font-weight:   700;
  color:         #444;
  margin-bottom: 6px;
}
.llbc-disclaimer-body { margin-bottom: 8px; }
.llbc-disclaimer-footer {
  padding-top:  8px;
  border-top:   1px solid #e0e0e0;
  font-size:    11px;
}
.llbc-disclaimer a { color: var(--llbc-primary); }

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 640px) {
  .llbc-header        { flex-direction: column; }
  .llbc-state-icon    { width: 60px; height: 60px; }
  .llbc-fields        { grid-template-columns: 1fr; }
  .llbc-field-full    { grid-column: auto; }
  .llbc-lead-fields   { grid-template-columns: 1fr; }
  .llbc-eligibility-bar { gap: 6px; }
  .llbc-action-section  { flex-direction: column; }
  .llbc-reset-btn       { width: 100%; }
  .llbc-radio-group     { flex-direction: column; }
}
@media (max-width: 400px) {
  .llbc-section { padding: 14px 14px; }
  .llbc-breakdown { padding: 0 14px 4px; }
  .llbc-results-header { padding: 12px 14px; }
  .llbc-worked-example { margin: 0 14px 12px; }
  .llbc-filing-info { padding: 8px 14px 12px; }
}

/* ═══════════════════════════════════════════════════════════════
   FIX 1: H2 MAIN HEADING
   ═══════════════════════════════════════════════════════════════ */
.llbc-main-heading {
  font-size:    clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight:  800;
  color:        var(--llbc-primary, #1a5e9e);
  margin:       0 0 6px 0;
  line-height:  1.2;
  letter-spacing: -0.3px;
}

/* ═══════════════════════════════════════════════════════════════
   FIX 2: PREMIUM FORM CARD WRAPPER
   ═══════════════════════════════════════════════════════════════ */
.llbc-form-card {
  background:    #ffffff;
  border:        1.5px solid #e4eaf5;
  border-radius: 16px;
  box-shadow:    0 4px 6px -1px rgba(26,94,158,.06),
                 0 12px 40px -8px rgba(26,94,158,.12),
                 0 0 0 1px rgba(26,94,158,.04);
  overflow:      hidden;
  margin-top:    20px;
  position:      relative;
}
/* Subtle top accent line */
.llbc-form-card::before {
  content:    '';
  display:    block;
  height:     4px;
  background: linear-gradient(90deg,
                var(--llbc-primary, #1a5e9e) 0%,
                var(--llbc-accent,  #e8b000) 60%,
                var(--llbc-primary, #1a5e9e) 100%);
}
/* Section separators inside card */
.llbc-form-card .llbc-section {
  border-bottom: 1px solid #f0f4fb;
}
.llbc-form-card .llbc-section:last-child {
  border-bottom: none;
}
/* Section title upgrade inside card */
.llbc-form-card .llbc-section-title {
  font-size:   0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color:       var(--llbc-primary, #1a5e9e);
  background:  linear-gradient(135deg, #f0f6ff 0%, #fafbff 100%);
  padding:     10px 20px;
  margin:      -20px -20px 18px -20px;
  border-bottom: 1px solid #e4eaf5;
}
/* Submit row inside card */
.llbc-form-card .llbc-action-section {
  background:   linear-gradient(135deg, #f8faff 0%, #fff 100%);
  padding:      20px 20px 22px;
  border-top:   1px solid #e4eaf5;
  margin-top:   4px;
}
/* Input focus upgrade */
.llbc-form-card .llbc-input:focus,
.llbc-form-card .llbc-input:focus-within {
  border-color: var(--llbc-primary, #1a5e9e);
  box-shadow:   0 0 0 3px rgba(26,94,158,.12);
  outline:      none;
}

/* ═══════════════════════════════════════════════════════════════
   FIX 5: PERSONALIZED OPINION PANEL
   ═══════════════════════════════════════════════════════════════ */
.llbc-opinion-panel {
  margin:        0 0 16px 0;
  border:        1.5px solid #c7dcf8;
  border-radius: 12px;
  overflow:      hidden;
  background:    #f7fbff;
  box-shadow:    0 2px 16px rgba(26,94,158,.08);
}
.llbc-opinion-header {
  display:       flex;
  align-items:   flex-start;
  gap:           14px;
  background:    linear-gradient(135deg, #e8f0fd 0%, #f0f6ff 100%);
  padding:       16px 20px 14px;
  border-bottom: 1px solid #c7dcf8;
}
.llbc-opinion-icon {
  font-size:    2rem;
  line-height:  1;
  flex-shrink:  0;
}
.llbc-opinion-title {
  font-size:   1.05rem;
  font-weight: 700;
  color:       var(--llbc-primary, #1a5e9e);
  margin-bottom: 2px;
}
.llbc-opinion-sub {
  font-size:  0.78rem;
  color:      #6b7fa8;
}
.llbc-opinion-body {
  padding: 16px 20px 4px;
}
.llbc-opinion-verdict {
  padding:       12px 16px;
  border-radius: 8px;
  font-size:     0.95rem;
  line-height:   1.55;
  margin-bottom: 8px;
}
.llbc-verdict-pass {
  background: #eafaf1;
  border:     1px solid #a9dfbf;
  color:      #1a5e2a;
}
.llbc-verdict-warn {
  background: #fef9e7;
  border:     1px solid #f8d775;
  color:      #7d5f00;
}
.llbc-verdict-ok {
  background: #eaf4fb;
  border:     1px solid #a9cce3;
  color:      #1a4a6e;
}
.llbc-opinion-tips {
  padding: 4px 20px 16px;
}
.llbc-tips-title {
  font-size:   0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color:       #6b7fa8;
  margin:      10px 0 8px;
}
.llbc-tips-list {
  margin:  0;
  padding: 0 0 0 4px;
  list-style: none;
}
.llbc-tips-list li {
  padding:     6px 0 6px 4px;
  font-size:   0.88rem;
  line-height: 1.5;
  color:       #2c3e50;
  border-bottom: 1px solid #e8f0fd;
}
.llbc-tips-list li:last-child { border-bottom: none; }
.llbc-opinion-footer {
  padding:     10px 20px 14px;
  font-size:   0.75rem;
  color:       #8a99b8;
  line-height: 1.4;
  border-top:  1px solid #dce8f8;
  background:  #fafcff;
}

/* ═══════════════════════════════════════════════════════════════
   RESPONSIVE ADDITIONS
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 640px) {
  .llbc-form-card { border-radius: 10px; }
  .llbc-main-heading { font-size: 1.2rem; }
  .llbc-opinion-header { gap: 10px; padding: 12px 14px; }
  .llbc-opinion-body,
  .llbc-opinion-tips  { padding-left: 14px; padding-right: 14px; }
  .llbc-opinion-footer { padding: 8px 14px 12px; }
}
