

  :root {
    --bg:      #f7f8fa;
    --surface: #ffffff;
    --surface2:#f0f2f6;
    --border:  #e2e5ec;
    --border2: #d0d5e0;
    --accent:  #2563eb;
    --accent2: #7c3aed;
    --accent3: #059669;
    --gold:    #d97706;
    --red:     #dc2626;
    --text:    #111827;
    --text2:   #374151;
    --text3:   #9ca3af;
    --font-serif:'DM Serif Display',Georgia,serif;
    --font-sans: 'DM Sans',sans-serif;
    --font-mono: 'DM Mono',monospace;
    --radius:  14px;
    --radius-sm:9px;
    --shadow:  0 1px 3px rgba(0,0,0,0.07), 0 4px 16px rgba(0,0,0,0.05);
    --shadow-md:0 4px 24px rgba(0,0,0,0.09);
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{background:var(--bg);color:var(--text);font-family:var(--font-sans);min-height:100vh;line-height:1.65;}

  /* ── HEADER ── */
  header{
    border-bottom:1px solid var(--border);
    padding:0 2rem;
    display:flex;align-items:center;justify-content:space-between;
    height:62px;position:sticky;top:0;z-index:100;
    background:rgba(255,255,255,0.94);backdrop-filter:blur(14px);
    box-shadow:0 1px 0 var(--border);
  }
  .logo{display:flex;align-items:center;gap:10px;font-family:var(--font-serif);font-size:1.2rem;color:var(--text);text-decoration:none;}
  .logo-icon{width:34px;height:34px;background:linear-gradient(135deg,var(--accent),var(--accent2));border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:1rem;box-shadow:0 2px 8px rgba(37,99,235,0.25);}
  .header-badge{font-family:var(--font-mono);font-size:0.68rem;color:var(--text3);border:1px solid var(--border2);padding:3px 11px;border-radius:20px;background:var(--surface2);}

  /* ── HERO ── */
  .hero{padding:4rem 2rem 2.5rem;text-align:center;background:linear-gradient(180deg,#fff 0%,var(--bg) 100%);border-bottom:1px solid var(--border);}
  .hero-eyebrow{font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem;}
  .hero h1{font-family:var(--font-serif);font-size:clamp(2rem,5vw,3.2rem);line-height:1.2;color:var(--text);max-width:640px;margin:0 auto 1.2rem;}
  .hero h1 em{font-style:italic;background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
  .hero-sub{font-size:0.97rem;color:var(--text2);max-width:500px;margin:0 auto 2.2rem;font-weight:300;}

  /* ── LIVE TAX TICKER ── */
  .live-ticker{
    display:flex;align-items:stretch;gap:0;
    background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
    box-shadow:var(--shadow-md);max-width:820px;margin:0 auto 1.8rem;overflow:hidden;
  }
  .ticker-cell{
    flex:1;padding:1rem 1.25rem;text-align:center;
    border-right:1px solid var(--border);position:relative;
  }
  .ticker-cell:last-child{border-right:none;}
  .ticker-label{font-family:var(--font-mono);font-size:0.62rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--text3);margin-bottom:0.3rem;}
  .ticker-val{font-family:var(--font-serif);font-size:1.45rem;font-weight:400;color:var(--text);transition:all 0.25s;}
  .ticker-val.positive{color:var(--red);}
  .ticker-val.negative{color:var(--accent3);}
  .ticker-sub{font-size:0.7rem;color:var(--text3);margin-top:0.15rem;}
  .ticker-form-badge{
    display:inline-block;padding:3px 12px;border-radius:20px;font-family:var(--font-mono);font-size:0.7rem;font-weight:500;
    background:rgba(37,99,235,0.08);color:var(--accent);border:1px solid rgba(37,99,235,0.2);
  }
  .ticker-form-badge.nr{background:rgba(124,58,237,0.08);color:var(--accent2);border-color:rgba(124,58,237,0.2);}
  .ticker-form-badge.dual{background:rgba(217,119,6,0.08);color:var(--gold);border-color:rgba(217,119,6,0.2);}

  /* ── FORM SELECTOR ── */
  .form-selector{display:flex;gap:0.75rem;justify-content:center;margin-bottom:0;}
  .form-tab{padding:9px 22px;border-radius:40px;border:1px solid var(--border2);background:var(--surface);color:var(--text2);font-family:var(--font-sans);font-size:0.88rem;cursor:pointer;transition:all 0.2s;box-shadow:var(--shadow);}
  .form-tab:hover{border-color:var(--accent);color:var(--accent);}
  .form-tab.active{background:linear-gradient(135deg,var(--accent),var(--accent2));border-color:transparent;color:#fff;font-weight:500;box-shadow:0 2px 10px rgba(37,99,235,0.3);}

  /* ── MAIN LAYOUT ── */
  .main{max-width:1100px;margin:0 auto;padding:2rem;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
  @media(max-width:780px){
  .main{grid-template-columns:1fr;}
  .field-row{grid-template-columns:1fr;}
  .field-row{grid-template-columns:1fr;}
  .info-grid{grid-template-columns:1fr 1fr;}
  .live-ticker{flex-wrap:wrap;}
  .ticker-cell{flex:1 1 calc(33% - 1px);min-width:100px;}
  .hero{padding:2.5rem 1rem 1.5rem;}
  .hero h1{font-size:1.8rem;}
  .form-selector{flex-wrap:wrap;gap:0.5rem;}
  .form-tab{font-size:0.82rem;padding:7px 14px;}
  .main{padding:1rem;}
}
@media(max-width:480px){
  .live-ticker{flex-direction:column;}
  .ticker-cell{border-right:none;border-bottom:1px solid var(--border);}
  .ticker-cell:last-child{border-bottom:none;}
  .info-grid{grid-template-columns:1fr;}
  .hero h1{font-size:1.5rem;}
  .panel-body{padding:1rem;}
  .result-card{padding:0.85rem 1rem;}
  .msg{max-width:96%;}
  header{padding:0 1rem;}
}

  /* ── PANELS ── */
  .panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
  .panel-header{padding:0.9rem 1.25rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:0.75rem;background:var(--surface2);}
  .panel-title{font-family:var(--font-mono);font-size:0.68rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--text3);font-weight:500;}
  .panel-badge{font-family:var(--font-mono);font-size:0.63rem;padding:2px 9px;border-radius:20px;background:rgba(37,99,235,0.08);color:var(--accent);border:1px solid rgba(37,99,235,0.18);}
  .panel-body{padding:1.25rem;}

  /* ── FORM FIELDS ── */
  .field-group{margin-bottom:1rem;}
  .field-group label{display:block;font-size:0.77rem;font-weight:600;color:var(--text2);margin-bottom:0.35rem;letter-spacing:0.01em;}
  .field-group label span{font-family:var(--font-mono);font-size:0.63rem;color:var(--text3);margin-left:5px;font-weight:400;}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:0.7rem;}
  input,select,textarea{
    width:100%;background:var(--bg);border:1.5px solid var(--border);border-radius:var(--radius-sm);
    color:var(--text);font-family:var(--font-sans);font-size:0.9rem;padding:0.58rem 0.85rem;
    transition:border-color 0.15s,box-shadow 0.15s;outline:none;-webkit-appearance:none;
  }
  input::placeholder,textarea::placeholder{color:var(--text3);}
  input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(37,99,235,0.1);background:#fff;}
  select{cursor:pointer;}
  textarea{resize:vertical;min-height:72px;}

  .section-divider{font-family:var(--font-mono);font-size:0.63rem;text-transform:uppercase;letter-spacing:0.12em;color:var(--text3);margin:1.2rem 0 0.8rem;display:flex;align-items:center;gap:10px;}
  .section-divider::after{content:'';flex:1;height:1px;background:var(--border);}

  .toggle-row{display:flex;align-items:center;justify-content:space-between;padding:0.55rem 0;border-bottom:1px solid var(--border);}
  .toggle-row:last-child{border-bottom:none;}
  .toggle-label{font-size:0.84rem;color:var(--text2);}
  .toggle-wrap{position:relative;width:40px;height:22px;flex-shrink:0;}
  .toggle-wrap input{opacity:0;width:0;height:0;}
  .toggle-slider{position:absolute;inset:0;background:var(--border2);border-radius:22px;cursor:pointer;transition:background 0.2s;}
  .toggle-slider::before{content:'';position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform 0.2s;box-shadow:0 1px 3px rgba(0,0,0,0.2);}
  .toggle-wrap input:checked+.toggle-slider{background:var(--accent);}
  .toggle-wrap input:checked+.toggle-slider::before{transform:translateX(18px);}

  /* ── ANALYZE BUTTON ── */
  .analyze-btn{
    width:100%;padding:0.82rem 1.5rem;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    border:none;border-radius:var(--radius-sm);color:#fff;
    font-family:var(--font-sans);font-size:0.94rem;font-weight:600;cursor:pointer;
    transition:opacity 0.2s,transform 0.1s,box-shadow 0.2s;margin-top:1rem;
    box-shadow:0 2px 12px rgba(37,99,235,0.3);
  }
  .analyze-btn:hover{opacity:0.92;box-shadow:0 4px 18px rgba(37,99,235,0.4);}
  .analyze-btn:active{transform:scale(0.99);}
  .analyze-btn:disabled{opacity:0.5;cursor:not-allowed;}

  /* ── RESULTS ── */
  #results-panel{grid-column:1/-1;display:none;}
  #results-panel.visible{display:block;}
  .ai-response{padding:1.25rem;min-height:180px;}
  .ai-response h2{font-family:var(--font-serif);font-size:1.2rem;color:var(--text);margin:1.1rem 0 0.45rem;}
  .ai-response h3{font-size:1rem;color:var(--accent);margin:0.9rem 0 0.4rem;}
  .ai-response p{color:var(--text2);margin-bottom:0.65rem;font-size:0.91rem;}
  .ai-response ul{padding-left:1.3rem;color:var(--text2);font-size:0.91rem;margin-bottom:0.65rem;}
  .ai-response li{margin-bottom:0.3rem;}
  .ai-response strong{color:var(--text);}

  .result-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem 1.2rem;margin-bottom:0.8rem;}
  .result-card-title{font-family:var(--font-mono);font-size:0.65rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--text3);margin-bottom:0.45rem;}
  .result-verdict{font-family:var(--font-serif);font-size:1.6rem;}
  .verdict-1040{color:var(--accent);}
  .verdict-1040nr{color:var(--accent2);}
  .verdict-both{color:var(--gold);}
  .result-card p{color:var(--text2);font-size:0.88rem;margin-top:0.4rem;}
  .result-card ul{padding-left:1.2rem;color:var(--text2);font-size:0.88rem;}
  .result-card li{margin-bottom:0.25rem;}

  /* ── CHAT ── */
  .chat-section{grid-column:1/-1;margin-top:0.5rem;}
  .chat-messages{padding:1rem 1.25rem;max-height:380px;overflow-y:auto;display:flex;flex-direction:column;gap:0.75rem;}
  .msg{max-width:86%;padding:0.7rem 1rem;border-radius:12px;font-size:0.89rem;line-height:1.55;}
  .msg-user{align-self:flex-end;background:linear-gradient(135deg,rgba(37,99,235,0.1),rgba(124,58,237,0.08));border:1px solid rgba(37,99,235,0.18);color:var(--text);}
  .msg-ai{align-self:flex-start;background:var(--surface2);border:1px solid var(--border);color:var(--text2);}
  .msg-ai strong{color:var(--text);}
  .msg-ai a{color:var(--accent);}
  .chat-input-row{display:flex;gap:0.7rem;padding:0.9rem 1.25rem;border-top:1px solid var(--border);background:var(--surface2);}
  .chat-input-row input{flex:1;}
  .send-btn{padding:0 1.2rem;background:linear-gradient(135deg,var(--accent),var(--accent2));border:none;border-radius:var(--radius-sm);color:#fff;font-family:var(--font-sans);font-size:0.87rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:opacity 0.2s;box-shadow:0 2px 8px rgba(37,99,235,0.25);}
  .send-btn:hover{opacity:0.88;}

  /* ── INFO CARDS ── */
  .info-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;margin-top:0.5rem;}
  .info-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.15rem;transition:box-shadow 0.2s,border-color 0.2s;box-shadow:var(--shadow);}
  .info-card:hover{box-shadow:var(--shadow-md);border-color:var(--border2);}
  .info-card-icon{font-size:1.4rem;margin-bottom:0.6rem;}
  .info-card h4{font-size:0.86rem;font-weight:600;color:var(--text);margin-bottom:0.3rem;}
  .info-card p{font-size:0.78rem;color:var(--text3);line-height:1.5;}

  /* ── DISCLAIMER ── */
  .disclaimer{grid-column:1/-1;background:#fff8f0;border:1px solid #fed7aa;border-radius:var(--radius-sm);padding:0.8rem 1rem;font-size:0.77rem;color:#92400e;display:flex;gap:0.6rem;align-items:flex-start;margin-top:0.5rem;}

  /* ── FOOTER ── */
  footer{border-top:1px solid var(--border);padding:1.4rem 2rem;text-align:center;font-size:0.77rem;color:var(--text3);margin-top:3rem;}
  footer a{color:var(--accent);}

  /* ── MISC ── */
  .nr-only{display:none;}
  .nr-only.show{display:block;}
  .res-only{display:block;}
  .res-only.hide{display:none;}

  .status-dot{width:7px;height:7px;border-radius:50%;background:var(--accent3);display:inline-block;margin-right:6px;animation:pulse2 2s ease-in-out infinite;}
  @keyframes pulse2{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.4;transform:scale(0.8)}}

  .form-type-indicator{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:0.67rem;color:var(--text3);padding:3px 10px;background:var(--surface2);border:1px solid var(--border);border-radius:20px;}
  .form-type-indicator.t1040{color:var(--accent);border-color:rgba(37,99,235,0.3);background:rgba(37,99,235,0.06);}
  .form-type-indicator.t1040nr{color:var(--accent2);border-color:rgba(124,58,237,0.3);background:rgba(124,58,237,0.06);}

  .flash{animation:flash 0.35s ease;}
  @keyframes flash{0%{opacity:0.3;transform:scale(0.97)}100%{opacity:1;transform:scale(1)}}

  /* ── PAYWALL MODAL ── */
  .modal-overlay {
    display:none;position:fixed;inset:0;z-index:1000;
    background:rgba(0,0,0,0.45);backdrop-filter:blur(6px);
    align-items:flex-start;justify-content:center;
    overflow-y:auto;padding:1.5rem 0;
  }
  .modal-overlay.open { display:flex; }
  .modal {
    background:#fff;border-radius:18px;width:100%;max-width:460px;
    margin:auto 1rem;box-shadow:0 24px 80px rgba(0,0,0,0.18);
    overflow:hidden;animation:modalIn 0.25s cubic-bezier(.34,1.56,.64,1);
    display:flex;flex-direction:column;
  }
  @keyframes modalIn{from{opacity:0;transform:scale(0.92) translateY(16px)}to{opacity:1;transform:none}}
  .modal-header {
    background:linear-gradient(135deg,#1e3a5f,#2563eb);
    padding:1.5rem 1.75rem 1.25rem;color:#fff;position:relative;
    flex-shrink:0;
  }
  .modal-close {
    position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,0.15);
    border:none;color:#fff;width:30px;height:30px;border-radius:50%;
    cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;
    transition:background 0.2s;
  }
  .modal-close:hover{background:rgba(255,255,255,0.28);}
  .modal-logo {
    font-family:'DM Serif Display',serif;font-size:1.05rem;
    opacity:0.85;margin-bottom:0.4rem;
  }
  .modal-title {
    font-family:'DM Serif Display',serif;font-size:1.6rem;line-height:1.2;
  }
  .modal-subtitle { font-size:0.82rem;opacity:0.75;margin-top:0.35rem; }
  .modal-body {
    padding:1.5rem 1.75rem;
    overflow-y:auto;
    max-height:calc(100vh - 220px);
    overscroll-behavior:contain;
  }
  .modal-price-row {
    display:flex;align-items:baseline;gap:0.5rem;margin-bottom:1.25rem;
  }
  .modal-price {
    font-family:'DM Serif Display',serif;font-size:2.6rem;color:#1e3a5f;
  }
  .modal-price-note { font-size:0.82rem;color:#6b7280; }
  .feature-list { list-style:none;margin-bottom:1.5rem; }
  .feature-list li {
    display:flex;align-items:flex-start;gap:0.6rem;
    font-size:0.88rem;color:#374151;padding:0.4rem 0;
    border-bottom:1px solid #f3f4f6;
  }
  .feature-list li:last-child{border-bottom:none;}
  .feature-list li .fi{color:#059669;font-size:1rem;flex-shrink:0;margin-top:1px;}
  .pay-btn {
    width:100%;padding:0.9rem;
    background:linear-gradient(135deg,#059669,#0d9488);
    border:none;border-radius:10px;color:#fff;
    font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:700;
    cursor:pointer;transition:opacity 0.2s,transform 0.1s;
    box-shadow:0 4px 16px rgba(5,150,105,0.35);
    display:flex;align-items:center;justify-content:center;gap:8px;
  }
  .pay-btn:hover{opacity:0.93;}
  .pay-btn:active{transform:scale(0.99);}
  .modal-secure {
    text-align:center;margin-top:0.75rem;
    font-size:0.73rem;color:#9ca3af;display:flex;align-items:center;justify-content:center;gap:5px;
  }
  .modal-divider {
    display:flex;align-items:center;gap:0.6rem;margin:1rem 0;
    font-size:0.75rem;color:#9ca3af;
  }
  .modal-divider::before,.modal-divider::after{content:'';flex:1;height:1px;background:#e5e7eb;}
  /* Success overlay */
  .pay-success {
    display:none;flex-direction:column;align-items:center;
    justify-content:center;padding:2.5rem 1.75rem;text-align:center;
  }
  .pay-success.show{display:flex;}
  .pay-success-icon{font-size:3rem;margin-bottom:0.75rem;}
  .pay-success h3{font-family:'DM Serif Display',serif;font-size:1.5rem;color:#065f46;margin-bottom:0.5rem;}
  .pay-success p{font-size:0.88rem;color:#374151;}
  /* What's inside preview */
  .pdf-preview-strip {
    background:#f8faff;border:1px solid #e0e7ff;border-radius:8px;
    padding:0.75rem 1rem;margin-bottom:1.25rem;
    display:flex;align-items:center;gap:0.75rem;
  }
  .pdf-preview-icon{font-size:1.75rem;}
  .pdf-preview-text{font-size:0.8rem;color:#374151;line-height:1.5;}
  .pdf-preview-text strong{color:#1e3a5f;display:block;margin-bottom:1px;}

  /* ── LANGUAGE SWITCHER ── */
  .lang-switcher {
    display:flex;align-items:center;gap:4px;
    background:var(--surface2);border:1px solid var(--border);
    border-radius:30px;padding:3px;
  }
  .lang-btn {
    padding:4px 11px;border-radius:24px;border:none;background:transparent;
    font-family:var(--font-sans);font-size:0.75rem;font-weight:500;
    color:var(--text3);cursor:pointer;transition:all 0.18s;white-space:nowrap;
  }
  .lang-btn:hover { color:var(--text2); }
  .lang-btn.active {
    background:#fff;color:var(--accent);
    box-shadow:0 1px 4px rgba(0,0,0,0.1);font-weight:600;
  }
  @media(max-width:600px){
    .header-badge{display:none;}
    .lang-btn{padding:4px 8px;font-size:0.7rem;}
  }


/* Extra: hide Elementor default padding on this widget */
.elementor-widget-html .elementor-widget-container {
  padding: 0 !important;
  margin: 0 !important;
}

.hat-wrapper{width:100%;}
/* ── ITEMIZED DEDUCTIONS SECTION ── */
#itemized-section .field-row { margin-bottom: 0.5rem; }
#itemized-section .field-group label { font-size: 0.78rem; }
#itemized-section input[type="number"] {
  font-size: 0.88rem;
  padding: 0.45rem 0.65rem;
}
#itemize-hint {
  font-size: 0.73rem;
  color: var(--text3);
  margin: -0.1rem 0 0.6rem 0;
  font-style: italic;
}

/* ── Filing Status / custom checkbox rows ── */
.hat-cb-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  padding: 0.18rem 0.3rem;
  border-radius: 5px;
  font-weight: 500;
  font-size: 0.88rem;
  user-select: none;
  transition: background 0.12s;
}
.hat-cb-row:hover { background: rgba(37,99,235,0.07); }
.hat-cb {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 15px;
  height: 15px;
  border: 2px solid var(--border);
  border-radius: 3px;
  flex-shrink: 0;
  font-size: 11px;
  color: #fff;
  transition: background 0.12s, border-color 0.12s;
}

/* Yes/No pill toggle buttons */
.yn-btn {
  padding: 0.3rem 1.1rem;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
  outline: none;
  min-width: 52px;
}
.yn-btn:hover {
  filter: brightness(0.93);
}

/* yn-toggle — single Yes button (unchecked=gray, checked=accent) */
.yn-toggle {
  padding: 0.25rem 0.85rem;
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  border: 1.5px solid #d1d5db;
  background: #f3f4f6;
  color: #374151;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
  outline: none;
  white-space: nowrap;
  flex-shrink: 0;
}
.yn-toggle:hover { filter: brightness(0.93); }
