
:root{
  --bg:#eef2f5;
  --surface:#ffffff;
  --surface-alt:#f7f9fb;
  --header:#18212b;
  --header-2:#222f3d;
  --text:#1c2733;
  --muted:#66727f;
  --line:#d7dee5;
  --accent:#257a7e;
  --accent-soft:#e3f4f4;
  --danger:#a63a3a;
  --radius:10px;
  --max:1180px;
  --mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  font-family:Arial,Helvetica,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.5;
}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
.site-header,.section,.site-footer,.tool-shell{
  padding-inline:max(18px,calc((100vw - var(--max))/2));
}
.site-header{
  min-height:62px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:24px;
  position:sticky;
  top:0;
  z-index:20;
  background:var(--header);
  color:#fff;
  border-bottom:1px solid #2d3945;
}
.brand{
  display:flex;
  align-items:center;
  gap:8px;
}
.brand strong{
  font-family:var(--mono);
  font-size:1rem;
  letter-spacing:.02em;
}
.brand strong span{color:#8db6b8}
.brand small{
  display:block;
  color:#aeb9c4;
  font-size:.64rem;
  margin-top:1px;
}
.main-nav{
  display:flex;
  justify-content:center;
  gap:26px;
}
.main-nav a{
  color:#d5dde4;
  font-size:.86rem;
}
.main-nav a:hover{color:#fff}
.language-picker{
  display:flex;
  align-items:center;
  gap:6px;
  border:1px solid #465362;
  border-radius:6px;
  padding:5px 7px;
  background:#202b36;
}
.language-picker select{
  background:transparent;
  color:#fff;
  border:0;
  outline:0;
  font-size:.82rem;
}
.language-picker option{color:#111}

.hero{
  padding:54px max(18px,calc((100vw - var(--max))/2)) 42px;
  background:var(--surface);
  border-bottom:1px solid var(--line);
}
.hero-grid{
  display:grid;
  grid-template-columns:1fr 360px;
  gap:42px;
  align-items:start;
}
.eyebrow{
  margin:0 0 10px;
  color:var(--accent);
  font-family:var(--mono);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.hero h1{
  margin:0 0 18px;
  max-width:780px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.1rem,4vw,3.5rem);
  line-height:1.08;
  letter-spacing:-.02em;
  font-weight:600;
}
.hero h1 em{
  display:inline;
  color:var(--text);
  font-style:normal;
}
.hero-copy>p:not(.eyebrow){
  max-width:730px;
  color:var(--muted);
  font-size:1rem;
}
.info-panel{
  background:var(--surface-alt);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px;
}
.info-panel h2{
  margin:0 0 12px;
  font-family:var(--mono);
  font-size:.85rem;
}
.feature-list{
  display:grid;
  gap:0;
}
.feature-list div{
  padding:11px 0;
  border-bottom:1px solid var(--line);
}
.feature-list div:last-child{border-bottom:0}
.feature-list strong{
  display:block;
  font-size:.88rem;
}
.feature-list span{
  color:var(--muted);
  font-size:.8rem;
}
.section{
  padding-top:42px;
  padding-bottom:42px;
}
.section-light{
  background:var(--bg);
  color:var(--text);
}
.section h2{
  margin:4px 0 20px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.75rem;
  font-weight:600;
}
.cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px;
}
.card h3{
  margin:0 0 8px;
  font-family:var(--mono);
  font-size:1rem;
}
.card p{
  margin:0 0 14px;
  color:var(--muted);
  font-size:.9rem;
}
.tool-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--accent);
  font-weight:700;
  font-size:.86rem;
}
.tool-link::after{content:"→"}
.status{
  display:inline-block;
  padding:3px 7px;
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--muted);
  font-size:.72rem;
  background:var(--surface-alt);
}
.content-grid{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:30px;
}
.text-panel{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px;
}
.text-panel p{
  margin:0;
  color:var(--muted);
  font-size:.92rem;
}
.site-footer{
  padding-top:24px;
  padding-bottom:24px;
  border-top:1px solid #2d3945;
  background:var(--header);
  color:#adb8c3;
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:center;
  font-size:.78rem;
}

/* Dedicated tool page */
.tool-page{
  background:var(--bg);
  color:var(--text);
  min-height:100vh;
}
.tool-page .site-header{color:#fff}
.tool-shell{
  padding-top:34px;
  padding-bottom:48px;
}
.tool-heading{
  margin-bottom:22px;
}
.tool-heading>a{
  color:var(--accent);
  font-size:.82rem;
}
.tool-heading h1{
  margin:8px 0 8px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:2.3rem;
  font-weight:600;
}
.tool-heading p{
  max-width:760px;
  margin:0;
  color:var(--muted);
  font-size:.93rem;
}
.calculator-layout{
  display:grid;
  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:16px;
}
.panel{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px;
}
.panel h2{
  margin:0 0 14px;
  font-family:var(--mono);
  font-size:.88rem;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.field label{
  display:block;
  margin-bottom:4px;
  color:#46525f;
  font-size:.75rem;
  font-weight:700;
}
.field input,.field select{
  width:100%;
  padding:9px 10px;
  border:1px solid #c7d0d9;
  border-radius:6px;
  background:#fff;
}
.field input:focus,.field select:focus{
  outline:2px solid #b7d1d2;
  outline-offset:1px;
}
.span-2{grid-column:1/-1}
.actions-row{
  display:flex;
  gap:8px;
}
.button{
  min-height:38px;
  padding:0 14px;
  border-radius:6px;
  border:1px solid #b9c3cc;
  background:#fff;
  color:var(--text);
  cursor:pointer;
  font-weight:700;
  font-size:.82rem;
}
.button.primary{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
}
.result-list{
  display:grid;
  gap:0;
}
.result-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:16px;
  padding:10px 4px;
  border-bottom:1px solid #e4e9ee;
  font-size:.84rem;
}
.result-row span{color:var(--muted)}
.result-row strong{
  font-family:var(--mono);
  font-size:.8rem;
  text-align:right;
}
.result-row.highlight{
  margin-top:4px;
  padding:10px;
  background:var(--accent-soft);
  border-radius:6px;
  border-bottom:0;
}
.result-row.highlight strong{color:#174f52}
.notice{
  margin-top:14px;
  padding:10px 12px;
  border:1px solid #ddd3a9;
  background:#fffbea;
  color:#6d6236;
  border-radius:6px;
  font-size:.76rem;
}
.error{
  color:var(--danger);
  min-height:1.2em;
  margin:0;
  font-size:.76rem;
}
@media(max-width:860px){
  .site-header{
    grid-template-columns:1fr auto;
    padding-top:9px;
    padding-bottom:9px;
  }
  .main-nav{
    grid-column:1/-1;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    justify-content:stretch;
    gap:7px 12px;
    width:100%;
    padding-bottom:3px;
  }
  .main-nav>a,
  .nav-parent{
    display:block;
    padding:5px 0;
  }
  .nav-group{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
  }
  .nav-submenu{
    position:static;
    display:block;
    min-width:0;
    margin:0;
    padding:0 0 0 10px;
    border:0;
    background:transparent;
    box-shadow:none;
    transform:none;
  }
  .nav-submenu a{
    padding:2px 0 4px;
    color:#aeb9c4;
    font-size:.78rem;
  }
  .hero-grid,.content-grid,.calculator-layout{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr}
}
@media(max-width:560px){
  .brand small{display:none}
  .site-header{padding-inline:14px;gap:10px}
  .language-picker{padding:4px 6px}
  .language-picker select{max-width:90px}
  .hero,.section,.site-footer,.tool-shell{padding-inline:16px}
  .form-grid{grid-template-columns:1fr}
  .span-2{grid-column:auto}
  .site-footer{flex-direction:column;align-items:flex-start}
  .actions-row{flex-direction:column}
}

.position-note{
  margin-bottom:16px;
  padding:14px 16px;
  background:var(--surface);
  border:1px solid var(--line);
  border-left:3px solid var(--accent);
  border-radius:var(--radius);
}
.position-note h2{
  margin:0 0 6px;
  font-family:var(--mono);
  font-size:.82rem;
  text-transform:uppercase;
}
.position-note p{
  margin:0;
  color:var(--muted);
  font-size:.82rem;
}
.text-button{
  margin-top:7px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--accent);
  text-decoration:underline;
  cursor:pointer;
  font-size:.78rem;
}
.scenario-results{
  display:grid;
  gap:12px;
  margin-top:16px;
}
.scenario-card{
  border:1px solid var(--line);
  border-radius:8px;
  padding:12px;
  background:var(--surface-alt);
}
.scenario-card h3{
  margin:0 0 6px;
  font-family:var(--mono);
  font-size:.8rem;
}
.summary-results{
  margin-bottom:10px;
}

.access-section{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.access-panel{max-width:840px}
.access-panel h2{margin-bottom:10px}
.access-panel p{color:var(--muted);font-size:.94rem}
.legal-shell{
  width:min(1120px,calc(100% - 40px));
  max-width:none;
  margin:0 auto;
  padding-inline:0;
}
.legal-sections{display:grid;gap:12px}
.legal-sections article{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px;
}
.legal-sections h2{
  margin:0 0 8px;
  font-family:var(--mono);
  font-size:.9rem;
}
.legal-sections p{
  margin:0;
  color:var(--muted);
  font-size:.9rem;
}
.support-note{border-left:3px solid var(--accent)!important}
.support-note .tool-link{margin-top:12px}
@media(max-width:760px){
}

.support-shell{
  width:min(1060px,calc(100% - 40px));
  max-width:none;
}
.paypal-support-card{
  border-left:3px solid #2e6f73!important;
}
.paypal-donate-link{
  display:inline-block;
  margin-top:16px;
  line-height:0;
}
.paypal-donate-link img{
  display:block;
  width:auto;
  height:28px;
}
.paypal-donate-link:focus{
  outline:2px solid var(--accent);
  outline-offset:4px;
  border-radius:3px;
}


/* Complete navigation */
.nav-group{
  position:relative;
  display:flex;
  align-items:center;
}
.nav-parent::after{
  content:"⌄";
  margin-left:5px;
  color:#8fa0af;
  font-size:.72rem;
}
.nav-submenu{
  position:absolute;
  top:calc(100% + 10px);
  left:50%;
  display:none;
  min-width:150px;
  transform:translateX(-50%);
  padding:7px;
  border:1px solid #344251;
  border-radius:7px;
  background:var(--header-2);
  box-shadow:0 10px 24px rgba(0,0,0,.22);
}
.nav-submenu::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-11px;
  height:11px;
}
.nav-submenu a{
  display:block;
  padding:7px 9px;
  border-radius:5px;
  white-space:nowrap;
}
.nav-submenu a:hover,
.nav-submenu a:focus{
  background:#2b3947;
}
.nav-group:hover .nav-submenu,
.nav-group:focus-within .nav-submenu{
  display:block;
}
.glossary-section{
  background:var(--surface-alt);
  border-top:1px solid var(--line);
}


/* Responsive navigation override: keep every item visible */
@media(max-width:860px){
  .nav-group{
    position:static;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
  }
  .nav-parent::after{
    content:"";
    margin:0;
  }
  .nav-submenu{
    position:static;
    display:block;
    min-width:0;
    transform:none;
    padding:0 0 0 10px;
    border:0;
    background:transparent;
    box-shadow:none;
  }
  .nav-submenu::before{
    display:none;
  }
  .nav-submenu a{
    padding:2px 0 4px;
    color:#aeb9c4;
    font-size:.78rem;
  }
}


/* Guides: accepted numeric formats */
.guides-section{
  display:grid;
  grid-template-columns:minmax(220px,.72fr) minmax(0,1.55fr);
  gap:42px;
  align-items:start;
}
.guides-heading>p:last-child{
  color:var(--muted);
  line-height:1.7;
}
.number-format-guide{
  padding:22px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--surface);
}
.number-format-guide header{
  margin-bottom:18px;
}
.number-format-guide h3{
  margin:0 0 7px;
}
.number-format-guide header p,
.number-format-rules{
  color:var(--muted);
  line-height:1.65;
}
.number-format-columns{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.number-format-example{
  padding:15px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--surface-alt);
}
.number-format-example h4{
  margin:0 0 12px;
  font-size:.92rem;
}
.format-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:8px 0;
  border-top:1px solid var(--line);
}
.format-row:first-of-type{
  border-top:0;
}
.format-status{
  min-width:74px;
  color:var(--muted);
  font-size:.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.format-row code{
  overflow-wrap:anywhere;
  font-size:.82rem;
}
.accepted-format .format-status{
  color:#387565;
}
.rejected-format .format-status{
  color:#995848;
}
.number-format-rules{
  margin:18px 0 0;
}
.number-format-warning{
  margin:12px 0 0;
  padding:10px 12px;
  border-left:3px solid #b88b3e;
  background:#fff8e8;
  color:#6b5429;
  font-size:.82rem;
  line-height:1.55;
}
@media(max-width:860px){
  .guides-section,
  .number-format-columns{
    grid-template-columns:1fr;
  }
}


.brand-icon{
  display:block;
  width:30px;
  height:30px;
  flex:0 0 30px;
  object-fit:contain;
}
@media(max-width:520px){
  .brand-icon{
    width:27px;
    height:27px;
    flex-basis:27px;
  }
}


/* Essential trading glossary */
.glossary-shell{
  width:min(1120px,calc(100% - 36px));
  margin:0 auto;
  padding:46px 0 58px;
}
.glossary-heading{
  max-width:760px;
  margin-bottom:28px;
}
.glossary-heading h1{
  margin:10px 0 12px;
}
.glossary-heading>p:last-child{
  color:var(--muted);
  font-size:1.02rem;
  line-height:1.7;
}
.glossary-controls{
  position:sticky;
  top:0;
  z-index:5;
  margin-bottom:24px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(255,255,255,.96);
  box-shadow:0 8px 22px rgba(30,43,55,.06);
  backdrop-filter:blur(8px);
}
.glossary-search{
  display:grid;
  gap:7px;
  max-width:560px;
  font-size:.82rem;
  font-weight:700;
}
.glossary-search input{
  width:100%;
  min-height:42px;
  padding:10px 12px;
  border:1px solid var(--line-strong);
  border-radius:7px;
  background:#fff;
  font:inherit;
}
.glossary-search input:focus{
  border-color:var(--accent);
  outline:2px solid var(--accent-soft);
}
.glossary-categories{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.glossary-categories button{
  padding:7px 11px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--surface-alt);
  color:var(--text);
  cursor:pointer;
  font:inherit;
  font-size:.78rem;
}
.glossary-categories button:hover,
.glossary-categories button:focus{
  border-color:var(--accent);
}
.glossary-categories button.active{
  border-color:var(--accent);
  background:var(--accent-soft);
  color:#275e61;
  font-weight:700;
}
.glossary-count{
  margin:13px 0 0;
  color:var(--muted);
  font-size:.78rem;
}
.glossary-count strong{
  color:var(--text);
}
.glossary-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.glossary-card{
  padding:18px 19px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--surface);
}
.glossary-card header{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:flex-start;
  margin-bottom:9px;
}
.glossary-card h2{
  margin:0;
  font-size:1.02rem;
}
.glossary-category{
  flex:0 0 auto;
  padding:4px 7px;
  border-radius:999px;
  background:var(--surface-alt);
  color:var(--muted);
  font-size:.66rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.glossary-card p{
  margin:0;
  color:var(--muted);
  line-height:1.62;
}
.glossary-empty{
  padding:36px 20px;
  border:1px dashed var(--line-strong);
  border-radius:9px;
  color:var(--muted);
  text-align:center;
}
.glossary-note{
  margin-top:24px;
  padding:14px 16px;
  border-left:3px solid var(--accent);
  background:var(--accent-soft);
  color:#34585a;
  font-size:.82rem;
  line-height:1.6;
}
@media(max-width:760px){
  .glossary-shell{
    width:min(100% - 24px,1120px);
    padding-top:32px;
  }
  .glossary-controls{
    position:static;
  }
  .glossary-list{
    grid-template-columns:1fr;
  }
  .glossary-card header{
    display:block;
  }
  .glossary-category{
    display:inline-block;
    margin-top:8px;
  }
}


.field-hint{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-size:.72rem;
  line-height:1.45;
}
.form-grid select{
  width:100%;
  min-height:40px;
  padding:8px 10px;
  border:1px solid var(--line-strong);
  border-radius:6px;
  background:#fff;
  color:var(--text);
  font:inherit;
}


.fractional-fee-note{
  margin-top:10px;
}


/* Market tape */
.market-ticker{
  --ticker-duration:58s;
  position:sticky;
  top:var(--market-ticker-top,62px);
  z-index:18;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  min-height:38px;
  overflow:hidden;
  border-bottom:1px solid #344453;
  background:#101820;
  color:#dce5ec;
  box-shadow:0 3px 10px rgba(10,18,25,.12);
}
.market-ticker-meta{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  gap:8px;
  min-width:190px;
  padding:0 12px max(0px,env(safe-area-inset-left));
  border-right:1px solid #344453;
  background:#17232e;
}
.market-ticker-title{
  font-family:var(--mono);
  font-size:.69rem;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.market-ticker-status{
  padding:2px 6px;
  border:1px solid #405361;
  border-radius:999px;
  color:#aebdca;
  font-size:.61rem;
  white-space:nowrap;
}
.market-ticker[data-status="live"] .market-ticker-status{
  border-color:#47745f;
  color:#a9d6bd;
}
.market-ticker[data-status="delayed"] .market-ticker-status{
  border-color:#746a47;
  color:#d9ca91;
}
.market-ticker[data-status="demo"] .market-ticker-status,
.market-ticker[data-status="demo-fallback"] .market-ticker-status{
  border-color:#6a587d;
  color:#cbb8dd;
}
.market-ticker-toggle{
  width:25px;
  height:25px;
  margin-left:auto;
  padding:0;
  border:1px solid #405361;
  border-radius:5px;
  background:#202e3a;
  color:#dce5ec;
  cursor:pointer;
  font-family:Arial,Helvetica,sans-serif;
  font-size:.69rem;
  line-height:1;
}
.market-ticker-toggle:hover,
.market-ticker-toggle:focus{
  border-color:#7d9aaa;
  outline:none;
  background:#2a3a47;
}
.market-ticker-viewport{
  min-width:0;
  overflow:hidden;
}
.market-ticker-track{
  display:flex;
  width:max-content;
  min-width:100%;
  animation:trade-math-market-scroll var(--ticker-duration) linear infinite;
  will-change:transform;
}
.market-ticker.is-paused .market-ticker-track,
.market-ticker:hover .market-ticker-track,
.market-ticker:focus-within .market-ticker-track{
  animation-play-state:paused;
}
.market-ticker-group{
  display:flex;
  flex:0 0 auto;
  align-items:center;
}
.market-quote{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:37px;
  padding:0 15px;
  border-right:1px solid #293a47;
  white-space:nowrap;
  font-family:var(--mono);
  font-size:.69rem;
}
.market-quote-market{
  padding:2px 5px;
  border-radius:4px;
  background:#243440;
  color:#8fa7b8;
  font-size:.57rem;
  letter-spacing:.035em;
}
.market-quote-symbol{
  color:#f1f5f8;
  letter-spacing:.025em;
}
.market-quote-price{
  color:#c4d0d9;
  font-variant-numeric:tabular-nums;
}
.market-quote-change{
  font-weight:700;
  font-variant-numeric:tabular-nums;
}
.market-quote-change.is-positive{color:#78c79d}
.market-quote-change.is-negative{color:#e18a8a}
.market-quote-change.is-flat{color:#a9b5bf}
@keyframes trade-math-market-scroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
@media(max-width:760px){
  .market-ticker{
    grid-template-columns:auto minmax(0,1fr);
  }
  .market-ticker-meta{
    min-width:89px;
    gap:5px;
    padding:0 7px;
  }
  .market-ticker-status{
    display:inline-flex;
  }
  .market-ticker-toggle{
    width:23px;
    height:23px;
  }
  .market-quote{
    gap:6px;
    padding:0 11px;
  }
  .market-quote-market{
    display:none;
  }
}
@media(prefers-reduced-motion:reduce){
  .market-ticker-track{
    animation:none;
  }
  .market-ticker-viewport{
    overflow-x:auto;
    scrollbar-width:thin;
  }
  .market-ticker-group[aria-hidden="true"]{
    display:none;
  }
}


.market-ticker-source{
  display:inline-flex;
  align-items:center;
  gap:0;
}
.market-ticker-source a{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:2px;
}
.market-ticker-source a:hover,
.market-ticker-source a:focus{
  color:#f0f5f8;
}
.market-ticker-source-suffix{
  white-space:nowrap;
}
@media(max-width:760px){
  .market-ticker-meta{
    min-width:128px;
  }
  .market-ticker-status{
    display:inline-flex;
    max-width:68px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .market-ticker-source-prefix,
  .market-ticker-source-suffix{
    display:none;
  }
  .market-ticker-source-name{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
}


.market-ticker-source-name{
  white-space:nowrap;
}


/* Categorized tools menu */
.tools-submenu{
  left:0;
  min-width:255px;
  transform:none;
  padding:8px;
}
.nav-tool-category{
  display:grid;
  gap:2px;
  padding:7px 5px;
}
.nav-tool-category+.nav-tool-category{
  border-top:1px solid #344251;
}
.nav-tool-category>strong{
  padding:2px 7px 5px;
  color:#8fa7b8;
  font-size:.64rem;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.nav-tool-category>a{
  padding:6px 8px;
}
.nav-coming-soon{
  padding:3px 8px 5px;
  color:#718493;
  font-size:.72rem;
  font-style:italic;
}
@media(max-width:860px){
  .tools-submenu{
    min-width:0;
  }
  .nav-tool-category{
    padding:4px 0 5px 8px;
  }
  .nav-tool-category+.nav-tool-category{
    border-top:0;
  }
  .nav-tool-category>strong{
    padding:3px 0;
  }
  .nav-coming-soon{
    padding:1px 0 3px;
  }
}

/* Risk and stop-loss tool */
.risk-actions{
  flex-wrap:wrap;
}
.risk-loss strong{
  color:#9b3434;
}
.result-row.risk-ok{
  border-left:3px solid #4b8c66;
}
.result-row.risk-ok strong{
  color:#2f704d;
}
.result-row.risk-over{
  border-left:3px solid #b75a54;
}
.result-row.risk-over strong{
  color:#9b3434;
}
.warning-notice{
  border-left-color:#b77b39;
  background:#fff7e8;
  color:#77531f;
}


.market-ticker-updated{
  color:#8fa1af;
  font-family:var(--mono);
  font-size:.61rem;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.market-ticker[data-status="unavailable"] .market-ticker-updated{
  color:#d69a91;
}
@media(max-width:900px){
  .market-ticker-updated{
    display:none;
  }
}


/* TradingView market tape */
.tradingview-market-ticker{
  grid-template-columns:auto minmax(0,1fr);
  min-height:48px;
  background:#101820;
}
.tradingview-market-ticker .market-ticker-meta{
  min-width:260px;
  min-height:48px;
}
.tradingview-market-ticker .market-ticker-status{
  max-width:none;
  padding:0;
  border:0;
  background:transparent;
  color:#aebdca;
  font-size:.66rem;
  text-decoration:none;
}
.tradingview-market-ticker .market-ticker-status:hover,
.tradingview-market-ticker .market-ticker-status:focus{
  color:#f0f5f8;
  text-decoration:underline;
  text-underline-offset:3px;
}
.tradingview-market-ticker .market-ticker-viewport{
  min-height:48px;
  overflow:hidden;
  background:#101820;
}
.tradingview-ticker-widget{
  display:block;
  width:100%;
  min-height:48px;
  color-scheme:dark;
}
.market-ticker-placeholder{
  display:flex;
  align-items:center;
  min-height:48px;
  padding:0 16px;
  color:#9aabb8;
  font-family:var(--mono);
  font-size:.72rem;
}
.tradingview-market-ticker.is-paused{
  box-shadow:
    inset 0 0 0 1px rgba(125,154,170,.35),
    0 3px 10px rgba(10,18,25,.12);
}
@media(max-width:760px){
  .tradingview-market-ticker{
    grid-template-columns:118px minmax(0,1fr);
  }
  .tradingview-market-ticker .market-ticker-meta{
    min-width:118px;
    padding:0 7px;
  }
  .tradingview-market-ticker .market-ticker-status{
    display:none;
  }
  .tradingview-market-ticker .market-ticker-title{
    font-size:.63rem;
  }
}


/* v0.8.4 — full-width TradingView ticker without left meta area */
.full-width-market-ticker{
  position:sticky;
  top:var(--market-ticker-top,62px);
  z-index:18;
  display:block;
  min-height:48px;
  padding:0;
  overflow:hidden;
  border-bottom:1px solid #344453;
  background:#101820;
  box-shadow:0 3px 10px rgba(10,18,25,.12);
}
.full-width-market-ticker .market-ticker-viewport{
  width:100%;
  min-height:56px;
  padding-block:4px;
  overflow:hidden;
  background:#101820;
}
.full-width-market-ticker .tradingview-ticker-widget{
  display:block;
  width:100%;
  min-height:48px;
}
.full-width-market-ticker .market-ticker-placeholder{
  display:flex;
  align-items:center;
  min-height:48px;
  padding:0 16px;
  color:#9aabb8;
  font-family:var(--mono);
  font-size:.72rem;
}



/* v0.9.0 — risk/reward comparison */
.rr-layout{
  align-items:start;
}
.rr-generator-heading{
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid var(--line);
}
.rr-generator-heading h2{
  margin-bottom:5px;
}
.rr-generator-heading p{
  margin:0 0 10px;
  color:var(--muted);
  font-size:.76rem;
  line-height:1.5;
}
.rr-scenarios-panel{
  margin-top:16px;
}
.rr-target-results{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.rr-scenario-card{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--surface-alt);
}
.rr-scenario-card>header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px;
  border-bottom:1px solid var(--line);
  background:var(--surface);
}
.rr-scenario-card h3{
  margin:0;
  font-family:var(--mono);
  font-size:.8rem;
}
.rr-verdict{
  flex:0 0 auto;
  padding:4px 7px;
  border-radius:999px;
  font-size:.66rem;
  font-weight:800;
  white-space:nowrap;
}
.rr-verdict-unfavourable,
.rr-verdict-weak{
  background:#f8dddd;
  color:#8f3434;
}
.rr-verdict-acceptable{
  background:#fff2cc;
  color:#735b18;
}
.rr-verdict-interesting,
.rr-verdict-veryFavourable{
  background:#dcefe3;
  color:#286244;
}
.rr-ratio-visual{
  display:flex;
  gap:3px;
  height:8px;
  margin:12px;
  overflow:hidden;
  border-radius:999px;
  background:#dfe5e9;
}
.rr-ratio-risk{
  min-width:12px;
  background:#c76464;
}
.rr-ratio-reward{
  min-width:5px;
  background:#5f9f79;
}
.rr-card-results{
  padding:0 12px 10px;
}
.rr-card-results .result-row{
  font-size:.78rem;
}
.rr-card-results .result-row strong{
  font-size:.73rem;
}
.rr-net-ratio strong{
  color:var(--accent);
}
.rr-total-risk strong{
  color:#973b3b!important;
}
.result-row.rr-expectancy-positive strong{
  color:#2f704d;
}
.result-row.rr-expectancy-negative strong{
  color:#9b3434;
}
.rr-insight{
  margin:0 12px 12px;
  padding:10px 11px;
  border-left:3px solid var(--accent);
  background:#eef6f6;
  color:#39595b;
  font-size:.72rem;
  line-height:1.45;
}
.rr-insight>strong{
  display:block;
  margin-bottom:5px;
  font-family:var(--mono);
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.rr-insight ul{
  margin:0;
  padding-left:17px;
}
.rr-insight li+li{
  margin-top:3px;
}
@media(max-width:1100px){
  .rr-target-results{
    grid-template-columns:1fr;
  }
}


/* v1.0.0 — first tool upgrade wave */
.contents{
  display:contents;
}
.purchase-cost-gauge{
  margin-top:18px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--surface-alt);
}
.purchase-cost-gauge-track{
  height:12px;
  overflow:hidden;
  border-radius:999px;
  background:#dfe5e9;
}
.purchase-cost-gauge-track span{
  display:block;
  width:0;
  height:100%;
  background:#5f9f79;
  transition:width .25s ease;
}
.purchase-cost-gauge[data-zone="viabilityCostSensitive"] .purchase-cost-gauge-track span,
.purchase-cost-gauge[data-zone="viabilityTooSmall"] .purchase-cost-gauge-track span{
  background:#c76464;
}
.purchase-cost-gauge[data-zone="viabilityBalanced"] .purchase-cost-gauge-track span{
  background:#c49a45;
}
.purchase-cost-gauge>strong{
  display:block;
  margin-top:8px;
  font-size:.76rem;
}
.purchase-comparison{
  margin-top:16px;
}
.table-scroll{
  overflow-x:auto;
}
.table-scroll table{
  width:100%;
  border-collapse:collapse;
  font-size:.78rem;
}
.table-scroll th,
.table-scroll td{
  padding:9px 10px;
  border-bottom:1px solid var(--line);
  text-align:left;
  white-space:nowrap;
}
.table-scroll th{
  color:var(--muted);
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.section-subheading{
  margin-top:18px;
}
.section-subheading h2{
  margin-bottom:5px;
}
.section-subheading p,
.section-help{
  margin:0 0 12px;
  color:var(--muted);
  font-size:.76rem;
  line-height:1.5;
}
.partial-plan-grid,
.risk-map-grid,
.risk-stress-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.partial-leg-card,
.partial-plan-summary,
.risk-map-card,
.risk-stress-card{
  padding:12px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--surface-alt);
}
.partial-leg-card h3,
.risk-map-card h3{
  margin:0 0 9px;
  font-family:var(--mono);
  font-size:.76rem;
}
.partial-leg-card .result-row,
.partial-plan-summary .result-row,
.risk-map-card .result-row,
.risk-stress-card .result-row{
  font-size:.75rem;
}
.partial-plan-summary{
  border-left:3px solid var(--accent);
}
@media(max-width:1100px){
  .partial-plan-grid,
  .risk-map-grid,
  .risk-stress-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:680px){
  .partial-plan-grid,
  .risk-map-grid,
  .risk-stress-grid{
    grid-template-columns:1fr;
  }
}


/* v1.1.0 — explicit universal price convention */
.price-convention-notice{
  margin:0 0 16px;
  padding:13px 15px;
  border:1px solid #b8d4d5;
  border-left:4px solid var(--accent);
  border-radius:8px;
  background:#eef7f7;
  color:#34585a;
}
.price-convention-notice strong{
  display:block;
  margin-bottom:5px;
  font-family:var(--mono);
  font-size:.76rem;
  letter-spacing:.035em;
  text-transform:uppercase;
}
.price-convention-notice p{
  margin:0;
  font-size:.82rem;
  line-height:1.55;
}
.price-convention-notice small{
  display:block;
  margin-top:5px;
  color:#547174;
  font-size:.72rem;
  line-height:1.5;
}
.advanced-fields{
  padding:0;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--surface-alt);
}
.advanced-fields summary{
  padding:11px 12px;
  cursor:pointer;
  color:var(--text);
  font-weight:700;
  font-size:.78rem;
}
.advanced-fields>p{
  margin:0;
  padding:0 12px 10px;
  color:var(--muted);
  font-size:.71rem;
  line-height:1.45;
}
.advanced-fields-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  padding:0 12px 12px;
}
.price-convention-guide{
  margin-bottom:18px;
  padding:20px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--surface);
}
.price-convention-guide header h3{
  margin:0 0 6px;
}
.price-convention-guide header p{
  margin:0 0 15px;
  color:var(--muted);
}
.price-convention-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.price-convention-grid section{
  padding:13px;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--surface-alt);
}
.price-convention-grid h4{
  margin:0 0 6px;
  font-size:.78rem;
}
.price-convention-grid p{
  margin:0;
  color:var(--muted);
  font-size:.75rem;
  line-height:1.5;
}
@media(max-width:760px){
  .advanced-fields-grid,
  .price-convention-grid{
    grid-template-columns:1fr;
  }
}


/* v1.3.0 — average price tool */
.avg-layout{
  align-items:start;
}
.avg-results-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:16px;
}
.avg-target-results{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 22px;
}
.avg-assessment{
  border-left:3px solid var(--accent);
}
.avg-assessment strong{
  color:var(--accent);
}
@media(max-width:900px){
  .avg-results-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:720px){
  .avg-target-results{
    grid-template-columns:1fr;
  }
}


/* v1.3.1 — consistent footer and liability disclaimer */
body>main{
  flex:1 0 auto;
}
.site-footer{
  flex:0 0 auto;
  margin-top:auto;
}
.liability-note{
  border-left:3px solid #a56a45!important;
  background:#fff9f2!important;
}
.liability-note h2{
  color:#764728;
}


/* v1.4.0 — dedicated Guide page */
.guide-page-shell{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
  padding:34px 0 48px;
}
.guide-content-stack{
  display:block;
}
.number-format-guide-wide{
  width:100%;
  max-width:none;
  box-sizing:border-box;
}
.number-format-guide-wide .number-format-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media(max-width:760px){
  .guide-page-shell{
    width:min(100% - 24px,1180px);
  }
  .number-format-guide-wide .number-format-grid{
    grid-template-columns:1fr;
  }
}


/* v1.4.1 — Guide opens a submenu and is not a page link */
.nav-parent-button{
  appearance:none;
  -webkit-appearance:none;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  color:#d5dde4;
  font:inherit;
  font-size:.86rem;
  line-height:inherit;
  cursor:pointer;
}
.nav-parent-button:hover,
.nav-parent-button:focus-visible{
  color:#fff;
}
.nav-parent-button:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:4px;
  border-radius:3px;
}


/* v1.5.0 — dividends and income tool */
.dividend-layout{
  align-items:start;
}
.dividend-secondary-results{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 24px;
}
.dividend-projection-table{
  width:100%;
  border-collapse:collapse;
}
.dividend-projection-table th,
.dividend-projection-table td{
  padding:10px 12px;
  border-bottom:1px solid var(--line);
  text-align:right;
  white-space:nowrap;
}
.dividend-projection-table th:first-child,
.dividend-projection-table td:first-child{
  text-align:left;
}
.dividend-projection-table th{
  color:var(--muted);
  font-size:.69rem;
  text-transform:uppercase;
  letter-spacing:.04em;
}
@media(max-width:760px){
  .dividend-secondary-results{
    grid-template-columns:1fr;
  }
}


/* v1.6.0 — category-based tools navigation */
.tools-category-submenu{
  left:50%;
  min-width:172px;
  transform:translateX(-50%);
  padding:7px;
}
.tools-category-submenu a{
  padding:8px 10px;
  font-weight:700;
}
.category-page-shell{
  width:min(1120px,calc(100% - 40px));
  margin:0 auto;
  padding:38px 0 54px;
}
.category-page-heading{
  max-width:800px;
  margin-bottom:24px;
}
.category-page-heading h1{
  margin:0 0 12px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2rem,4vw,3rem);
  font-weight:600;
  line-height:1.08;
}
.category-page-heading>p:not(.eyebrow){
  margin:0;
  color:var(--muted);
  font-size:.96rem;
  line-height:1.65;
}
.category-back-link{
  display:inline-flex;
  margin-bottom:20px;
  color:var(--accent);
  font-size:.8rem;
  font-weight:700;
}
.category-back-link::before{
  content:"←";
  margin-right:6px;
}
.tool-index-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.tool-index-card{
  position:relative;
  display:flex;
  min-height:190px;
  flex-direction:column;
  padding:20px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--surface);
  color:var(--text);
  box-shadow:0 5px 18px rgba(31,44,56,.04);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.tool-index-card:hover,
.tool-index-card:focus-visible{
  color:var(--text);
  border-color:#9dbbbc;
  box-shadow:0 10px 24px rgba(31,44,56,.08);
  transform:translateY(-2px);
}
.tool-index-card:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px;
}
.tool-index-number{
  color:#8fa7b8;
  font-family:var(--mono);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.08em;
}
.tool-index-card h2{
  margin:14px 0 8px;
  font-family:var(--mono);
  font-size:1rem;
  line-height:1.35;
}
.tool-index-card p{
  margin:0 0 22px;
  color:var(--muted);
  font-size:.82rem;
  line-height:1.55;
}
.tool-index-action{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:auto;
  color:var(--accent);
  font-size:.78rem;
  font-weight:700;
}
.tool-index-action::after{
  content:"→";
}
.empty-category-panel{
  display:flex;
  align-items:center;
  gap:18px;
  padding:26px;
  border:1px dashed #aebdc7;
  border-radius:10px;
  background:var(--surface);
}
.empty-category-mark{
  display:grid;
  width:48px;
  height:48px;
  flex:0 0 auto;
  place-items:center;
  border-radius:50%;
  background:var(--accent-soft);
  color:var(--accent);
  font-size:1.5rem;
}
.empty-category-panel h2{
  margin:0 0 7px;
  font-family:var(--mono);
  font-size:1rem;
}
.empty-category-panel p{
  margin:0;
  color:var(--muted);
  font-size:.86rem;
  line-height:1.55;
}
@media(max-width:860px){
  .tools-category-submenu{
    min-width:0;
    transform:none;
  }
}
@media(max-width:720px){
  .category-page-shell{
    width:min(100% - 24px,1120px);
    padding-top:28px;
  }
  .tool-index-grid{
    grid-template-columns:1fr;
  }
  .tool-index-card{
    min-height:0;
  }
}


/* v1.7.0 — graphical call and put payoff visualizer */
.option-payoff-layout{
  align-items:start;
}
.form-section-title{
  margin-top:4px;
  padding:8px 0 5px;
  border-bottom:1px solid var(--line);
  color:#31424f;
  font-family:var(--mono);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.option-chart-panel{
  margin-top:16px;
}
.option-chart-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:12px;
}
.option-chart-heading h2{
  margin-bottom:5px;
}
.option-chart-heading p{
  margin:0;
  color:var(--muted);
  font-size:.78rem;
}
.option-chart-legend{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  color:var(--muted);
  font-size:.72rem;
}
.option-chart-legend span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.option-chart-legend span::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:3px;
}
.option-chart-legend .profit::before{
  background:rgba(50,145,96,.28);
}
.option-chart-legend .loss::before{
  background:rgba(191,73,73,.24);
}
.option-chart-wrap{
  position:relative;
  overflow:hidden;
  border:1px solid #d7e0e6;
  border-radius:9px;
  background:#fbfcfd;
}
#option-payoff-chart{
  display:block;
  width:100%;
  min-height:340px;
  touch-action:none;
}
.option-chart-profit-zone{
  fill:rgba(49,147,97,.09);
}
.option-chart-loss-zone{
  fill:rgba(193,69,69,.085);
}
.option-chart-grid-line{
  stroke:#dfe6eb;
  stroke-width:1;
}
.option-chart-zero-line{
  stroke:#71818d;
  stroke-width:1.4;
}
.option-chart-axis-label{
  fill:#647481;
  font-size:12px;
}
.option-chart-payoff-line{
  fill:none;
  stroke:#237d80;
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.option-chart-marker{
  stroke-width:1.4;
  stroke-dasharray:6 5;
}
.option-chart-marker-current{
  stroke:#536978;
}
.option-chart-marker-strike{
  stroke:#a06d25;
}
.option-chart-marker-break-even{
  stroke:#23895f;
}
.option-chart-marker-scenario{
  stroke:#7c5bb5;
}
.option-chart-marker-label{
  font-size:11px;
  font-weight:700;
}
.option-chart-marker-label-current{fill:#536978}
.option-chart-marker-label-strike{fill:#8b5b18}
.option-chart-marker-label-break-even{fill:#19754f}
.option-chart-marker-label-scenario{fill:#6a48a5}
.option-chart-scenario-point{
  fill:#fff;
  stroke:#7352aa;
  stroke-width:4;
}
.option-chart-crosshair{
  stroke:#31424f;
  stroke-width:1;
  stroke-dasharray:3 4;
  pointer-events:none;
}
.option-chart-hover-point{
  fill:#fff;
  stroke:#237d80;
  stroke-width:3;
  pointer-events:none;
}
.option-chart-tooltip{
  position:absolute;
  z-index:3;
  display:grid;
  gap:3px;
  min-width:150px;
  padding:8px 10px;
  border:1px solid #b9c9d3;
  border-radius:6px;
  background:rgba(20,33,44,.94);
  color:#fff;
  box-shadow:0 8px 22px rgba(15,28,38,.18);
  font-size:.72rem;
  pointer-events:none;
}
.option-chart-tooltip strong{
  font-family:var(--mono);
  font-size:.72rem;
}
.option-chart-tooltip span{
  color:#d9e4ea;
}
.option-lower-grid{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:16px;
  margin-top:16px;
}
.option-scenario-table{
  width:100%;
  border-collapse:collapse;
}
.option-scenario-table th,
.option-scenario-table td{
  padding:9px 10px;
  border-bottom:1px solid var(--line);
  text-align:right;
  white-space:nowrap;
  font-size:.74rem;
}
.option-scenario-table th{
  color:var(--muted);
  font-size:.65rem;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.option-scenario-positive td:last-child{
  color:#1c7953;
  font-weight:700;
}
.option-scenario-negative td:last-child{
  color:#a33f3f;
  font-weight:700;
}
.empty-result-note{
  margin:0;
  color:var(--muted);
  font-size:.8rem;
  line-height:1.55;
}
@media(max-width:920px){
  .option-lower-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:650px){
  .option-chart-heading{
    flex-direction:column;
  }
  #option-payoff-chart{
    min-height:280px;
  }
}


/* v1.7.2 — quick jump from option summary to payoff chart */
.option-summary-actions{
  display:flex;
  justify-content:flex-start;
  margin-top:16px;
}
.option-jump-button{
  min-width:150px;
}
#option-expiration-chart{
  scroll-margin-top:118px;
}


/* v1.8.0 — Covered Call */
.covered-call-layout{
  align-items:start;
}
.cc-chart-panel{
  margin-top:16px;
  scroll-margin-top:118px;
}
.cc-chart-wrap{
  position:relative;
  overflow:hidden;
  border:1px solid #d7e0e6;
  border-radius:9px;
  background:#fbfcfd;
}
#cc-payoff-chart{
  display:block;
  width:100%;
  min-height:350px;
  touch-action:none;
}
.cc-chart-legend{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  color:var(--muted);
  font-size:.72rem;
}
.cc-chart-legend span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.cc-chart-legend span::before{
  content:"";
  width:34px;
  height:0;
  border-top-width:3px;
  border-top-color:currentColor;
}
.cc-chart-legend .covered{
  color:#237d80;
}
.cc-chart-legend .covered::before{
  border-top-style:solid;
}
.cc-chart-legend .stock{
  color:#6e7f8b;
}
.cc-chart-legend .stock::before{
  border-top-style:dashed;
}
.cc-chart-profit-zone{
  fill:rgba(49,147,97,.085);
}
.cc-chart-loss-zone{
  fill:rgba(193,69,69,.08);
}
.cc-chart-grid-line{
  stroke:#dfe6eb;
  stroke-width:1;
}
.cc-chart-zero-line{
  stroke:#71818d;
  stroke-width:1.4;
}
.cc-chart-axis-label{
  fill:#647481;
  font-size:12px;
}
.cc-chart-covered-line{
  fill:none;
  stroke:#237d80;
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.cc-chart-stock-line{
  fill:none;
  stroke:#6e7f8b;
  stroke-width:2.4;
  stroke-dasharray:8 6;
  stroke-linecap:round;
}
.cc-chart-marker{
  stroke-width:1.35;
  stroke-dasharray:6 5;
}
.cc-chart-marker-average{stroke:#a06d25}
.cc-chart-marker-current{stroke:#536978}
.cc-chart-marker-strike{stroke:#945193}
.cc-chart-marker-break-even{stroke:#23895f}
.cc-chart-marker-scenario{stroke:#7052b4}
.cc-chart-marker-label{
  font-size:11px;
  font-weight:700;
}
.cc-chart-marker-label-average{fill:#8b5b18}
.cc-chart-marker-label-current{fill:#536978}
.cc-chart-marker-label-strike{fill:#814680}
.cc-chart-marker-label-break-even{fill:#19754f}
.cc-chart-marker-label-scenario{fill:#62449f}
.cc-chart-scenario-point{
  fill:#fff;
  stroke:#237d80;
  stroke-width:4;
}
.cc-chart-crosshair{
  stroke:#31424f;
  stroke-width:1;
  stroke-dasharray:3 4;
  pointer-events:none;
}
.cc-chart-hover-covered{
  fill:#fff;
  stroke:#237d80;
  stroke-width:3;
  pointer-events:none;
}
.cc-chart-hover-stock{
  fill:#fff;
  stroke:#6e7f8b;
  stroke-width:2.5;
  pointer-events:none;
}
.cc-lower-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:16px;
}
.cc-assignment-note,
.cc-early-message{
  margin:14px 0 0;
  padding:10px 12px;
  border-radius:7px;
  background:#f4f7f8;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.55;
}
.cc-assignment-note.risk-ok{
  background:#edf8f3;
  color:#206e50;
}
.cc-assignment-note.risk-over,
.cc-early-message.risk-over{
  background:#fff0f0;
  color:#973f3f;
}
@media(max-width:920px){
  .cc-lower-grid{
    grid-template-columns:1fr;
  }
}


/* v1.9.0 — Protective Put / Married Put */
.protective-put-layout{
  align-items:start;
}
.pp-chart-panel{
  margin-top:16px;
  scroll-margin-top:118px;
}
.pp-chart-wrap{
  position:relative;
  overflow:hidden;
  border:1px solid #d7e0e6;
  border-radius:9px;
  background:#fbfcfd;
}
#pp-payoff-chart{
  display:block;
  width:100%;
  min-height:350px;
  touch-action:none;
}
.pp-chart-legend{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  color:var(--muted);
  font-size:.72rem;
}
.pp-chart-legend span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.pp-chart-legend span::before{
  content:"";
  width:34px;
  height:0;
  border-top-width:3px;
  border-top-color:currentColor;
}
.pp-chart-legend .protective{
  color:#237d80;
}
.pp-chart-legend .protective::before{
  border-top-style:solid;
}
.pp-chart-legend .stock{
  color:#6e7f8b;
}
.pp-chart-legend .stock::before{
  border-top-style:dashed;
}
.pp-chart-profit-zone{
  fill:rgba(49,147,97,.085);
}
.pp-chart-loss-zone{
  fill:rgba(193,69,69,.08);
}
.pp-chart-grid-line{
  stroke:#dfe6eb;
  stroke-width:1;
}
.pp-chart-zero-line{
  stroke:#71818d;
  stroke-width:1.4;
}
.pp-chart-axis-label{
  fill:#647481;
  font-size:12px;
}
.pp-chart-protective-line{
  fill:none;
  stroke:#237d80;
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.pp-chart-stock-line{
  fill:none;
  stroke:#6e7f8b;
  stroke-width:2.4;
  stroke-dasharray:8 6;
  stroke-linecap:round;
}
.pp-chart-marker{
  stroke-width:1.35;
  stroke-dasharray:6 5;
}
.pp-chart-marker-average{stroke:#a06d25}
.pp-chart-marker-current{stroke:#536978}
.pp-chart-marker-strike{stroke:#945193}
.pp-chart-marker-break-even{stroke:#23895f}
.pp-chart-marker-scenario{stroke:#7052b4}
.pp-chart-marker-label{
  font-size:11px;
  font-weight:700;
}
.pp-chart-marker-label-average{fill:#8b5b18}
.pp-chart-marker-label-current{fill:#536978}
.pp-chart-marker-label-strike{fill:#814680}
.pp-chart-marker-label-break-even{fill:#19754f}
.pp-chart-marker-label-scenario{fill:#62449f}
.pp-chart-scenario-point{
  fill:#fff;
  stroke:#237d80;
  stroke-width:4;
}
.pp-chart-crosshair{
  stroke:#31424f;
  stroke-width:1;
  stroke-dasharray:3 4;
  pointer-events:none;
}
.pp-chart-hover-protective{
  fill:#fff;
  stroke:#237d80;
  stroke-width:3;
  pointer-events:none;
}
.pp-chart-hover-stock{
  fill:#fff;
  stroke:#6e7f8b;
  stroke-width:2.5;
  pointer-events:none;
}
.pp-lower-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:16px;
}
.pp-budget-panel{
  margin-top:16px;
}
.pp-budget-results{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 24px;
}
.pp-budget-message{
  margin:14px 0 0;
  color:var(--muted);
  font-size:.8rem;
  line-height:1.55;
}
.pp-budget-message.risk-over{
  padding:10px 12px;
  border-radius:7px;
  background:#fff0f0;
  color:#973f3f;
}
@media(max-width:920px){
  .pp-lower-grid,
  .pp-budget-results{
    grid-template-columns:1fr;
  }
}

@media(min-width:980px){
  .legal-shell .legal-sections{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .legal-shell .legal-sections .liability-note,
  .legal-shell .legal-sections .support-note{
    grid-column:1 / -1;
  }
  .support-shell .legal-sections{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .support-shell .paypal-support-card{
    grid-column:1 / -1;
  }
}

@media(max-width:760px){
  .legal-shell,
  .support-shell{
    width:min(100% - 24px,1120px);
    padding-inline:0;
  }
}


.vertical-spread-layout{
  align-items:start;
}
.vs-strategy-hint{
  margin:-2px 0 4px;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.5;
}
.vs-chart-panel{
  margin-top:16px;
  scroll-margin-top:118px;
}
.vs-chart-wrap{
  position:relative;
  overflow:hidden;
  border:1px solid #d7e0e6;
  border-radius:9px;
  background:#fbfcfd;
}
#vs-payoff-chart{
  display:block;
  width:100%;
  min-height:350px;
  touch-action:none;
}
.vs-chart-legend{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  color:var(--muted);
  font-size:.72rem;
}
.vs-chart-legend span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.vs-chart-legend span::before{
  content:"";
  width:18px;
  height:3px;
  border-radius:3px;
  background:#237d80;
}
.vs-chart-profit-zone{
  fill:rgba(49,147,97,.085);
}
.vs-chart-loss-zone{
  fill:rgba(193,69,69,.08);
}
.vs-chart-grid-line{
  stroke:#dfe6eb;
  stroke-width:1;
}
.vs-chart-zero-line{
  stroke:#71818d;
  stroke-width:1.4;
}
.vs-chart-axis-label{
  fill:#647481;
  font-size:12px;
}
.vs-chart-payoff-line{
  fill:none;
  stroke:#237d80;
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.vs-chart-marker{
  stroke-width:1.35;
  stroke-dasharray:6 5;
}
.vs-chart-marker-current{stroke:#536978}
.vs-chart-marker-lower{stroke:#a06d25}
.vs-chart-marker-upper{stroke:#945193}
.vs-chart-marker-break-even{stroke:#23895f}
.vs-chart-marker-scenario{stroke:#7052b4}
.vs-chart-marker-label{
  font-size:11px;
  font-weight:700;
}
.vs-chart-marker-label-current{fill:#536978}
.vs-chart-marker-label-lower{fill:#8b5b18}
.vs-chart-marker-label-upper{fill:#814680}
.vs-chart-marker-label-break-even{fill:#19754f}
.vs-chart-marker-label-scenario{fill:#62449f}
.vs-chart-scenario-point{
  fill:#fff;
  stroke:#237d80;
  stroke-width:4;
}
.vs-chart-crosshair{
  stroke:#31424f;
  stroke-width:1;
  stroke-dasharray:3 4;
  pointer-events:none;
}
.vs-chart-hover-point{
  fill:#fff;
  stroke:#237d80;
  stroke-width:3;
  pointer-events:none;
}
.vs-lower-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:16px;
}
@media(max-width:920px){
  .vs-lower-grid{
    grid-template-columns:1fr;
  }
}


/* v1.13.0 — SELL Call / SELL Put */
.short-option-layout{
  align-items:start;
}
.so-type-hint{
  margin:-2px 0 4px;
  color:var(--muted);
  font-size:.78rem;
  line-height:1.5;
}
.warning-note{
  border-color:#e7c88f;
  background:#fff8e8;
}
.so-chart-panel{
  margin-top:16px;
  scroll-margin-top:118px;
}
.so-chart-wrap{
  position:relative;
  overflow:hidden;
  border:1px solid #d7e0e6;
  border-radius:9px;
  background:#fbfcfd;
}
#short-option-payoff-chart{
  display:block;
  width:100%;
  min-height:350px;
  touch-action:none;
}
.so-chart-profit-zone{
  fill:rgba(49,147,97,.085);
}
.so-chart-loss-zone{
  fill:rgba(193,69,69,.08);
}
.so-chart-grid-line{
  stroke:#dfe6eb;
  stroke-width:1;
}
.so-chart-zero-line{
  stroke:#71818d;
  stroke-width:1.4;
}
.so-chart-axis-label{
  fill:#647481;
  font-size:12px;
}
.so-chart-payoff-line{
  fill:none;
  stroke:#237d80;
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.so-chart-marker{
  stroke-width:1.35;
  stroke-dasharray:6 5;
}
.so-chart-marker-current{stroke:#536978}
.so-chart-marker-strike{stroke:#945193}
.so-chart-marker-break-even{stroke:#23895f}
.so-chart-marker-scenario{stroke:#7052b4}
.so-chart-marker-label{
  font-size:11px;
  font-weight:700;
}
.so-chart-marker-label-current{fill:#536978}
.so-chart-marker-label-strike{fill:#814680}
.so-chart-marker-label-break-even{fill:#19754f}
.so-chart-marker-label-scenario{fill:#62449f}
.so-chart-scenario-point{
  fill:#fff;
  stroke:#237d80;
  stroke-width:4;
}
.so-chart-crosshair{
  stroke:#31424f;
  stroke-width:1;
  stroke-dasharray:3 4;
  pointer-events:none;
}
.so-chart-hover-point{
  fill:#fff;
  stroke:#237d80;
  stroke-width:3;
  pointer-events:none;
}
.so-lower-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:16px;
}
.so-cash-panel{
  margin-top:16px;
}
@media(max-width:920px){
  .so-lower-grid{
    grid-template-columns:1fr;
  }
}


/* v1.15.0 — expanded Guide */
.guide-rich-submenu{
  min-width:250px;
  max-height:none;
  overflow:visible;
}


.guide-nav-group .guide-rich-submenu::before{
  top:-14px;
  height:14px;
}

.guide-hub-shell,
.guide-topic-shell{
  width:min(1180px,calc(100% - 40px));
  margin:0 auto;
  padding:34px 0 52px;
}

.guide-hub-heading{
  max-width:860px;
}

.guide-start-note,
.guide-warning-note{
  margin:18px 0;
  padding:16px 18px;
  border:1px solid #d9e2e8;
  border-left:4px solid var(--accent);
  border-radius:8px;
  background:var(--surface-alt);
}

.guide-start-note strong,
.guide-warning-note strong{
  display:block;
  margin-bottom:5px;
}

.guide-start-note p,
.guide-warning-note p{
  margin:0;
  color:var(--muted);
  line-height:1.65;
}

.guide-index-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin:24px 0;
}

.guide-index-card{
  position:relative;
  display:flex;
  min-height:205px;
  flex-direction:column;
  padding:20px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--surface);
  color:inherit;
  text-decoration:none;
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}

.guide-index-card:hover,
.guide-index-card:focus-visible{
  transform:translateY(-2px);
  border-color:#8ab7b8;
  box-shadow:0 10px 22px rgba(31,54,67,.08);
}

.guide-index-number{
  margin-bottom:12px;
  color:var(--accent);
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.08em;
}

.guide-index-card h2{
  margin:0 0 9px;
  font-size:1.08rem;
}

.guide-index-card p{
  margin:0 0 18px;
  color:var(--muted);
  line-height:1.6;
}

.guide-index-card .tool-index-action{
  margin-top:auto;
}

.guide-common-panel{
  margin-top:18px;
}

.guide-topic-grid,
.guide-step-grid,
.guide-term-grid,
.guide-direction-grid{
  display:grid;
  gap:16px;
}

.guide-topic-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.guide-topic-grid-two{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.guide-step-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin:20px 0;
}

.guide-step-card{
  padding:20px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--surface);
}

.guide-step-card>span{
  display:inline-block;
  margin-bottom:10px;
  color:var(--accent);
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.08em;
}

.guide-step-card h2,
.guide-topic-grid h2,
.guide-topic-grid h3,
.guide-term-grid h3{
  margin-top:0;
}

.guide-step-card p,
.guide-topic-grid p,
.guide-term-grid p,
.guide-direction-grid p{
  color:var(--muted);
  line-height:1.65;
}

.guide-term-grid,
.guide-direction-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.guide-term-grid article,
.guide-direction-grid article{
  padding:16px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--surface-alt);
}

.guide-direction-grid .guide-risk-card{
  border-left:3px solid #a56a45;
  background:#fff9f2;
}

.guide-tool-link{
  display:inline-flex;
  margin-top:8px;
  color:var(--accent);
  font-weight:700;
  text-decoration:none;
}

.guide-tool-link:hover,
.guide-tool-link:focus-visible{
  text-decoration:underline;
}

.guide-number-extra{
  margin-top:18px;
}

@media(max-width:980px){
  .guide-index-grid,
  .guide-topic-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:760px){
  .guide-hub-shell,
  .guide-topic-shell{
    width:min(100% - 24px,1180px);
  }

  .guide-index-grid,
  .guide-topic-grid,
  .guide-topic-grid-two,
  .guide-step-grid,
  .guide-term-grid,
  .guide-direction-grid{
    grid-template-columns:1fr;
  }

  .guide-rich-submenu{
    max-height:none;
    overflow:visible;
  }
}
.guide-home-link{
  align-self:end;
  justify-self:start;
}


/* v1.16.0 — field-by-field form reference */
.form-panel-heading{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  margin-bottom:4px;
}

.form-panel-heading h2{
  margin-bottom:0;
}

.form-guide-link{
  flex:0 0 auto;
  color:var(--accent);
  font-size:.78rem;
  font-weight:750;
  text-decoration:none;
  white-space:nowrap;
}

.form-guide-link:hover,
.form-guide-link:focus-visible{
  text-decoration:underline;
}

.guide-field-reference-panel{
  margin-top:24px;
}

.guide-field-reference-heading{
  max-width:900px;
  margin-bottom:20px;
}

.guide-field-reference-heading h2{
  margin:4px 0 8px;
}

.guide-field-reference-heading p:last-child{
  margin-bottom:0;
  color:var(--muted);
  line-height:1.65;
}

.guide-field-reference{
  display:grid;
  gap:22px;
}

.guide-field-tool{
  scroll-margin-top:118px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--surface-alt);
}

.guide-field-tool:target{
  border-color:#79aeb0;
  box-shadow:0 0 0 3px rgba(35,125,128,.09);
}

.guide-field-tool-heading{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}

.guide-field-tool-heading h3{
  margin:0;
  font-size:1.12rem;
}

.guide-field-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.guide-field-item{
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--surface);
}

.guide-field-item h4{
  margin:0 0 5px;
  font-size:.88rem;
}

.guide-field-item p{
  margin:0;
  color:var(--muted);
  font-size:.83rem;
  line-height:1.55;
}

@media(max-width:760px){
  .form-panel-heading{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }

  .guide-field-tool-heading{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }

  .guide-field-list{
    grid-template-columns:1fr;
  }
}
/* v1.16.1 — existing-position average-price alternatives */
.average-price-choice-hint{
  margin:-4px 0 4px;
  padding:9px 11px;
  border-left:3px solid var(--accent);
  background:var(--surface-alt);
  border-radius:5px;
}


/* v1.17.0 — compact manual commission inputs */
.cost-section-title{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:14px;
  margin-top:2px;
  padding-top:11px;
  border-top:1px solid var(--line);
}

.cost-section-title strong{
  font-family:var(--mono);
  font-size:.78rem;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.cost-section-title span{
  color:var(--muted);
  font-size:.72rem;
  text-align:right;
}

.cost-section-title + .field input,
.cost-section-title + .field select{
  background:#fbfcfd;
}

@media(max-width:760px){
  .cost-section-title{
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }

  .cost-section-title span{
    text-align:left;
  }
}


/* v1.18.0 — full-width forms and result navigation */
.calculator-layout{
  grid-template-columns:minmax(0,1fr);
}

.calculator-form-panel .form-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.calculator-output-region{
  display:grid;
  gap:16px;
  margin-top:16px;
  scroll-margin-top:96px;
  outline:none;
}

.calculator-output-region[hidden]{
  display:none !important;
}

.calculator-output-region > *{
  margin-top:0 !important;
}

.calculation-summary-panel{
  scroll-margin-top:96px;
}

.calculator-output-region:focus-visible{
  box-shadow:0 0 0 3px rgba(35,125,128,.14);
  border-radius:var(--radius);
}

@media(max-width:980px){
  .calculator-form-panel .form-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:620px){
  .calculator-form-panel .form-grid{
    grid-template-columns:minmax(0,1fr);
  }
}


/* v1.18.1 — anchored price-marker labels */
.cc-chart-marker-connector,
.option-chart-marker-connector,
.pp-chart-marker-connector,
.so-chart-marker-connector,
.vs-chart-marker-connector{
  fill:none;
  stroke-width:1.15;
  stroke-dasharray:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  opacity:.82;
  pointer-events:none;
}

.cc-chart-marker-pin,
.option-chart-marker-pin,
.pp-chart-marker-pin,
.so-chart-marker-pin,
.vs-chart-marker-pin{
  fill:#fff;
  stroke-width:2.2;
  pointer-events:none;
}

.cc-chart-marker-label-box,
.option-chart-marker-label-box,
.pp-chart-marker-label-box,
.so-chart-marker-label-box,
.vs-chart-marker-label-box{
  fill:rgba(255,255,255,.94);
  stroke-width:1;
  opacity:.98;
  pointer-events:none;
}

.cc-chart-marker-label,
.option-chart-marker-label,
.pp-chart-marker-label,
.so-chart-marker-label,
.vs-chart-marker-label{
  paint-order:stroke;
  stroke:rgba(255,255,255,.9);
  stroke-width:2px;
  stroke-linejoin:round;
}


/* v1.18.2 — clearer chart legends */
.cc-chart-legend,
.pp-chart-legend{
  gap:18px;
  font-size:.76rem;
  font-weight:600;
}

.cc-chart-legend span,
.pp-chart-legend span{
  gap:8px;
}


/* v1.21.1 — project-focused contact page */
.contact-shell{
  width:min(1120px,calc(100% - 40px));
  max-width:none;
  margin:0 auto;
  padding-inline:0;
}

.contact-card,
.contact-report-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:22px;
}

.contact-card h2,
.contact-card h3,
.contact-report-card h2,
.contact-report-card h3{
  margin-top:0;
}

.contact-card p,
.contact-report-card p,
.contact-checklist{
  color:var(--muted);
}

.contact-project-card{
  border-left:3px solid var(--accent);
}

.contact-project-card > h2{
  margin-bottom:18px;
  font-size:1.45rem;
}

.contact-project-layout{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(290px,.55fr);
  gap:20px;
  align-items:start;
}

.contact-project-copy{
  max-width:760px;
}

.contact-project-copy p{
  margin:0;
  line-height:1.7;
}

.contact-project-copy p + p{
  margin-top:14px;
}

.contact-project-principles{
  padding:18px;
  border:1px solid var(--line);
  border-radius:calc(var(--radius) - 2px);
  background:color-mix(in srgb,var(--accent) 5%,var(--surface));
}

.contact-project-principles h3{
  margin-bottom:12px;
  font-family:var(--mono);
  font-size:.9rem;
}

.contact-project-list{
  margin:0;
  padding-left:20px;
}

.contact-project-list li + li{
  margin-top:9px;
}

.contact-linkedin-inline{
  margin:20px 0 0!important;
  padding-top:16px;
  border-top:1px solid var(--line);
  font-size:.9rem;
}

.contact-linkedin-inline a{
  color:var(--accent);
  font-weight:700;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}

.contact-linkedin-inline a:hover,
.contact-linkedin-inline a:focus-visible{
  text-decoration-thickness:2px;
}

.contact-report-card{
  margin-top:16px;
  border-left:3px solid var(--accent);
}

.contact-report-card > header{
  max-width:880px;
}

.contact-email-panel{
  margin-top:18px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:calc(var(--radius) - 2px);
  background:color-mix(in srgb,var(--accent) 5%,var(--surface));
}

.contact-email-image{
  display:block;
  width:min(100%,760px);
  height:auto;
  max-height:120px;
  object-fit:contain;
  object-position:left center;
}

.contact-email-panel p{
  margin:10px 0 0;
  font-size:.84rem;
}

.contact-report-grid{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);
  gap:16px;
  margin-top:18px;
}

.contact-report-grid > div,
.contact-privacy-note{
  padding:18px;
  border:1px solid var(--line);
  border-radius:calc(var(--radius) - 2px);
}

.contact-checklist{
  margin:0;
  padding-left:20px;
}

.contact-checklist li + li{
  margin-top:8px;
}

.contact-privacy-note{
  background:var(--warning-soft);
}

.contact-privacy-note p{
  margin-bottom:0;
}

.main-nav a[aria-current="page"]{
  color:var(--accent);
  font-weight:700;
}

@media(max-width:900px){
  .contact-project-layout,
  .contact-report-grid{
    grid-template-columns:1fr;
  }

  .contact-project-copy{
    max-width:none;
  }
}

@media(max-width:760px){
  .contact-shell{
    width:min(100% - 24px,1120px);
  }

  .contact-card,
  .contact-report-card{
    padding:18px;
  }

  .contact-email-panel{
    padding:12px;
  }
}

/* v1.21.0 — multilingual SEO gateway */
.language-gateway-links{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:20px;
}
.language-gateway-links a{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:7px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--surface);
  color:var(--text);
  font-size:.84rem;
  font-weight:700;
  text-decoration:none;
}
.language-gateway-links a:hover,
.language-gateway-links a:focus-visible{
  border-color:var(--accent);
  color:var(--accent);
}


/* v1.22.0 — ETF area */
.span-full{grid-column:1/-1}
.etf-tool-shell{width:min(1180px,calc(100% - 40px));max-width:none}
.etf-tool-shell textarea{min-height:110px;resize:vertical}
.etf-detail-panel{margin-top:16px}
.etf-table-wrap,.etf-input-table-wrap{overflow-x:auto}
.etf-result-table,.etf-input-table{width:100%;border-collapse:collapse;font-size:.9rem}
.etf-result-table th,.etf-result-table td,.etf-input-table th,.etf-input-table td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.etf-result-table th:first-child,.etf-result-table td:first-child,.etf-input-table th:first-child,.etf-input-table td:first-child{text-align:left}
.etf-result-table thead,.etf-input-table thead{background:color-mix(in srgb,var(--accent) 7%,var(--surface))}
.etf-input-table input{min-width:130px;width:100%}
.etf-input-table td:first-child input{min-width:180px}
.etf-rebalance-result-table .risk-ok,.etf-rebalance-result-table .risk-over{font-weight:700}
@media(max-width:760px){.etf-tool-shell{width:min(100% - 24px,1180px)}.etf-result-table,.etf-input-table{font-size:.84rem}}


/* v1.22.1 — visible ETF navigation and hidden bottom links */
.bottom-link{
  display:none !important;
}
.tools-category-submenu .nav-etf-link,
.guide-rich-submenu .nav-etf-guide-link{
  display:block;
}


/* v1.22.2 — full-width ETF forms and compact TradingView tape */
.etf-tool-shell .calculator-layout{
  grid-template-columns:minmax(0,1fr);
}
.etf-tool-shell .calculator-form-panel{
  width:100%;
  max-width:none;
}
.full-width-market-ticker,
.full-width-market-ticker .market-ticker-viewport{
  height:56px;
  min-height:56px;
  max-height:56px;
  overflow:hidden;
}
.full-width-market-ticker .tradingview-ticker-widget{
  height:48px;
  min-height:48px;
  max-height:48px;
  overflow:hidden;
}


/* v1.22.3 — true full-width ETF workspace */
.tool-shell.etf-tool-shell{
  box-sizing:border-box;
  width:100%;
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
  padding-left:20px;
  padding-right:20px;
}
.tool-shell.etf-tool-shell .calculator-layout,
.tool-shell.etf-tool-shell .calculator-form-panel{
  width:100%;
  max-width:none;
}
@media(max-width:760px){
  .tool-shell.etf-tool-shell{
    padding-left:12px;
    padding-right:12px;
  }
}

/* v1.23.0 — IBKR commission comparison */
.nav-ibkr-link,.nav-ibkr-guide-link{display:block}
.ibkr-tool-shell{box-sizing:border-box;width:100%;max-width:1180px;margin-inline:auto;padding-inline:20px}
.ibkr-tool-shell .calculator-layout{grid-template-columns:minmax(0,1fr)}
.ibkr-tool-shell .calculator-form-panel{width:100%;max-width:none}
.ibkr-tool-shell .field small{display:block;margin-top:5px;color:var(--muted);font-size:.72rem;line-height:1.45}
.ibkr-formula-panel{margin-top:16px}
.ibkr-formula-panel p{color:var(--muted);line-height:1.65}
@media(max-width:760px){.ibkr-tool-shell{padding-inline:12px}}

/* v1.23.3 — compact responsive navigation */
.mobile-nav-panel{
  display:contents;
}
.nav-toggle{
  display:none;
  appearance:none;
  -webkit-appearance:none;
  width:44px;
  height:44px;
  align-items:center;
  justify-content:center;
  padding:0;
  border:1px solid #465362;
  border-radius:8px;
  background:#202b36;
  color:#fff;
  cursor:pointer;
}
.nav-toggle:hover,
.nav-toggle:focus-visible{
  background:#283746;
  border-color:#617181;
}
.nav-toggle:focus-visible{
  outline:2px solid #8db6b8;
  outline-offset:3px;
}
.nav-toggle-icon{
  position:relative;
  display:block;
  width:22px;
  height:16px;
}
.nav-toggle-icon span{
  position:absolute;
  left:0;
  display:block;
  width:100%;
  height:2px;
  border-radius:999px;
  background:currentColor;
  transition:top .18s ease,transform .18s ease,opacity .18s ease;
}
.nav-toggle-icon span:nth-child(1){top:0}
.nav-toggle-icon span:nth-child(2){top:7px}
.nav-toggle-icon span:nth-child(3){top:14px}
.site-header.nav-open .nav-toggle-icon span:nth-child(1){top:7px;transform:rotate(45deg)}
.site-header.nav-open .nav-toggle-icon span:nth-child(2){opacity:0}
.site-header.nav-open .nav-toggle-icon span:nth-child(3){top:7px;transform:rotate(-45deg)}

@media(max-width:860px){
  body.mobile-nav-open{
    overflow:hidden;
  }
  .site-header{
    min-height:64px;
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
    padding-top:9px;
    padding-bottom:9px;
  }
  .brand{
    min-width:0;
  }
  .nav-toggle{
    display:inline-flex;
  }
  .mobile-nav-panel{
    position:absolute;
    top:100%;
    left:0;
    right:0;
    display:none;
    max-height:calc(100vh - 64px);
    max-height:calc(100dvh - 64px);
    overflow-y:auto;
    overscroll-behavior:contain;
    padding:12px 16px 16px;
    border-top:1px solid #2d3945;
    border-bottom:1px solid #2d3945;
    background:var(--header);
    box-shadow:0 16px 28px rgba(0,0,0,.28);
  }
  .site-header.nav-open .mobile-nav-panel{
    display:block;
  }
  .main-nav{
    display:flex;
    width:100%;
    flex-direction:column;
    justify-content:flex-start;
    gap:3px;
    padding:0;
  }
  .main-nav>a,
  .main-nav>.nav-group{
    width:100%;
  }
  .main-nav>a,
  .nav-parent-button{
    display:flex;
    min-height:44px;
    width:100%;
    align-items:center;
    padding:10px 12px;
    border-radius:7px;
    color:#e2e8ed;
    font-size:.95rem;
    line-height:1.25;
    text-align:left;
  }
  .main-nav>a:hover,
  .main-nav>a:focus-visible,
  .nav-parent-button:hover,
  .nav-parent-button:focus-visible{
    background:#263442;
    color:#fff;
  }
  .main-nav>a:focus-visible,
  .nav-parent-button:focus-visible{
    outline:2px solid #8db6b8;
    outline-offset:-2px;
  }
  .nav-group{
    position:static;
    display:block;
  }
  .nav-parent-button{
    justify-content:space-between;
  }
  .nav-parent::after{
    content:"";
    width:8px;
    height:8px;
    margin:0 3px 4px 12px;
    flex:0 0 auto;
    border-right:2px solid #9fb0bf;
    border-bottom:2px solid #9fb0bf;
    transform:rotate(45deg);
    transition:transform .16s ease,margin .16s ease;
  }
  .nav-group.submenu-open .nav-parent::after{
    margin-top:6px;
    margin-bottom:0;
    transform:rotate(225deg);
  }
  .nav-submenu,
  .nav-group:hover .nav-submenu,
  .nav-group:focus-within .nav-submenu{
    position:static;
    display:none;
    min-width:0;
    margin:2px 0 7px 12px;
    padding:3px 0 3px 10px;
    transform:none;
    border:0;
    border-left:1px solid #40505f;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  .nav-group.submenu-open .nav-submenu{
    display:flex;
    flex-direction:column;
  }
  .nav-submenu::before{
    display:none;
  }
  .nav-submenu a{
    display:flex;
    min-height:40px;
    align-items:center;
    padding:8px 10px;
    border-radius:6px;
    color:#b9c5cf;
    font-size:.88rem;
    line-height:1.3;
    white-space:normal;
  }
  .nav-submenu a:hover,
  .nav-submenu a:focus-visible{
    background:#263442;
    color:#fff;
  }
  .mobile-nav-panel>.language-picker{
    width:100%;
    min-height:44px;
    justify-content:flex-start;
    margin-top:10px;
    padding:9px 12px;
  }
  .mobile-nav-panel>.language-picker select{
    width:100%;
    max-width:none;
    flex:1;
  }
}

@media(max-width:560px){
  .site-header{
    padding-inline:14px;
  }
  .mobile-nav-panel{
    padding-inline:14px;
  }
}

/* v1.23.3 — mobile/tablet off-canvas navigation */
@media (max-width: 980px) {
  body.mobile-nav-open {
    overflow: hidden;
    touch-action: none;
  }

  .site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    min-height: 68px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 10px 18px;
  }

  .site-header::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 998;
    background: rgba(7, 12, 18, .58);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .22s ease, visibility .22s ease;
  }

  .site-header.nav-open::after {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .brand {
    position: relative;
    z-index: 1001;
    min-width: 0;
  }

  .brand small {
    display: none;
  }

  .nav-toggle {
    position: relative;
    z-index: 1002;
    display: inline-flex !important;
    width: 46px;
    height: 46px;
    border-radius: 10px;
  }

  .mobile-nav-panel {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: auto;
    z-index: 1001;
    display: flex !important;
    width: min(88vw, 390px);
    max-width: 100%;
    max-height: none;
    flex-direction: column;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 84px 18px max(24px, env(safe-area-inset-bottom));
    border: 0;
    border-left: 1px solid #344352;
    background: var(--header);
    box-shadow: -18px 0 38px rgba(0, 0, 0, .34);
    transform: translateX(105%);
    visibility: hidden;
    transition: transform .24s ease, visibility .24s ease;
  }

  .site-header.nav-open .mobile-nav-panel {
    transform: translateX(0);
    visibility: visible;
  }

  .main-nav {
    display: flex;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 5px;
    padding: 0;
  }

  .main-nav > a,
  .main-nav > .nav-group {
    width: 100%;
    min-width: 0;
  }

  .main-nav > a,
  .nav-parent-button {
    display: flex;
    box-sizing: border-box;
    width: 100%;
    min-height: 48px;
    align-items: center;
    padding: 11px 13px;
    border-radius: 9px;
    font-size: 1rem;
    line-height: 1.3;
    text-align: left;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .nav-group {
    position: static;
    display: block;
  }

  .nav-parent-button {
    justify-content: space-between;
  }

  .nav-submenu,
  .nav-group:hover .nav-submenu,
  .nav-group:focus-within .nav-submenu {
    position: static;
    display: none;
    min-width: 0;
    width: auto;
    margin: 3px 0 8px 13px;
    padding: 3px 0 3px 11px;
    transform: none;
    border: 0;
    border-left: 1px solid #445565;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .nav-group.submenu-open .nav-submenu {
    display: flex;
    flex-direction: column;
  }

  .nav-submenu a {
    box-sizing: border-box;
    width: 100%;
    min-height: 43px;
    padding: 9px 11px;
    border-radius: 7px;
    font-size: .92rem;
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .mobile-nav-panel > .language-picker {
    box-sizing: border-box;
    width: 100%;
    min-height: 48px;
    margin-top: auto;
    padding: 10px 12px;
  }

  .mobile-nav-panel > .language-picker select {
    width: 100%;
    min-width: 0;
    max-width: none;
    flex: 1;
  }
}

@media (max-width: 480px) {
  .site-header {
    min-height: 64px;
    padding-inline: 14px;
  }

  .brand strong {
    font-size: 1.08rem;
  }

  .brand-icon {
    width: 38px;
    height: 38px;
  }

  .mobile-nav-panel {
    width: min(92vw, 360px);
    padding: 78px 14px max(20px, env(safe-area-inset-bottom));
  }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-nav-panel,
  .site-header::after,
  .nav-toggle-icon span {
    transition: none !important;
  }
}
/* v1.24.0 — Covered Call exit planner */
.cc-exit-help{margin:0;color:var(--muted);font-size:.82rem;line-height:1.55}.cc-exit-events{display:grid;gap:8px}.cc-exit-event{display:grid;grid-template-columns:1.35fr .65fr .9fr .9fr auto;gap:8px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft,#f7f9fa)}.cc-exit-event input,.cc-exit-event select{min-width:0}.cc-exit-remove{padding:8px 12px;font-size:1.1rem}.cc-exit-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0 16px}.cc-exit-kpis>div{padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft,#f7f9fa)}.cc-exit-kpis span{display:block;color:var(--muted);font-size:.76rem;margin-bottom:8px}.cc-exit-kpis strong{font-family:var(--mono);font-size:1rem}@media(max-width:800px){.cc-exit-event{grid-template-columns:1fr 1fr}.cc-exit-remove{grid-column:2}.cc-exit-kpis{grid-template-columns:1fr 1fr}}@media(max-width:520px){.cc-exit-event,.cc-exit-kpis{grid-template-columns:1fr}.cc-exit-remove{grid-column:1}}

/* Covered call final exit result — v1.24.2 */
.cc-exit-final-outcome{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin:12px 0 16px;
  padding:18px;
  border:1px solid var(--line);
  border-left:5px solid var(--accent);
  border-radius:8px;
  background:var(--surface-soft,#f7f9fa);
}
.cc-exit-final-outcome span{font-weight:700;letter-spacing:.04em}
.cc-exit-final-outcome strong{font-family:var(--mono);font-size:1.35rem}
.cc-exit-final-outcome[data-outcome="profit"]{border-left-color:#2f7d4a;background:#eef8f1}
.cc-exit-final-outcome[data-outcome="profit"] strong{color:#24683c}
.cc-exit-final-outcome[data-outcome="loss"]{border-left-color:var(--danger);background:#fff1f1}
.cc-exit-final-outcome[data-outcome="loss"] strong{color:var(--danger)}
.cc-exit-final-outcome[data-outcome="even"]{border-left-color:#9b7a22;background:#fff8e6}
.cc-exit-final-outcome[data-outcome="even"] strong{color:#765b12}
.cc-exit-final-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.cc-exit-selected-scenario{font-weight:700;background:var(--accent-soft)}
@media(max-width:900px){.cc-exit-final-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.cc-exit-final-outcome{align-items:flex-start;flex-direction:column}.cc-exit-final-kpis{grid-template-columns:1fr}}

/* v1.25.1 — portfolio risk budget manager */
.portfolio-risk-section-title{
  grid-column:1/-1;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-top:8px;
  padding-top:16px;
  border-top:1px solid var(--line);
}
.portfolio-risk-section-title:first-of-type{
  margin-top:0;
  padding-top:0;
  border-top:0;
}
.portfolio-risk-section-title h2{
  margin:0;
  font-size:1rem;
}
.portfolio-risk-section-title p{
  margin:4px 0 0;
  color:var(--muted);
  font-size:.76rem;
  line-height:1.45;
}
.portfolio-existing-positions{
  grid-column:1/-1;
  display:grid;
  gap:12px;
}
.portfolio-position-card{
  padding:13px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--surface-alt);
}
.portfolio-position-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.portfolio-position-header h3{
  margin:0;
  font-family:var(--mono);
  font-size:.8rem;
}
.portfolio-position-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.portfolio-risk-status-card{
  padding:16px;
  border:1px solid var(--line);
  border-left-width:5px;
  border-radius:8px;
  background:var(--surface-alt);
}
.portfolio-risk-status-card.is-ok{
  border-left-color:#4b8c66;
  background:#f4fbf7;
}
.portfolio-risk-status-card.is-over{
  border-left-color:#b75a54;
  background:#fff5f4;
}
.portfolio-risk-status-card p{
  margin:7px 0 0;
  color:var(--muted);
  font-size:.8rem;
  line-height:1.5;
}
.portfolio-risk-status-badge{
  font-family:var(--mono);
  font-size:.8rem;
  letter-spacing:.04em;
}
.portfolio-risk-primary-stop-value{
  margin-top:8px;
  font-family:var(--mono);
  font-size:clamp(2rem,7vw,3.4rem);
  font-weight:800;
  line-height:1;
  letter-spacing:-.04em;
  color:#235c3e;
}
.portfolio-risk-status-card.is-over .portfolio-risk-primary-stop-value{color:#9b3434}
.portfolio-risk-status-card.is-ok .portfolio-risk-status-badge{color:#2f704d}
.portfolio-risk-status-card.is-over .portfolio-risk-status-badge{color:#9b3434}
.portfolio-risk-results-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.portfolio-risk-result-card{
  padding:12px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--surface-alt);
}
.portfolio-risk-result-card h3{
  margin:0 0 8px;
  font-family:var(--mono);
  font-size:.78rem;
}
.portfolio-risk-result-card .result-row{font-size:.75rem}
.portfolio-risk-result-card .result-row strong{font-size:.73rem}
@media(max-width:1080px){
  .portfolio-position-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .portfolio-risk-results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .portfolio-position-grid,
  .portfolio-risk-results-grid{grid-template-columns:1fr}
  .portfolio-risk-section-title,
  .portfolio-position-header{align-items:flex-start;flex-direction:column}
  .portfolio-remove-position{width:100%}
}

/* v1.25.3 — refined, consistent form controls */
:root{
  --control-bg:#fff;
  --control-border:#c5d0da;
  --control-border-hover:#9eafbd;
  --control-focus-ring:rgba(46,111,115,.16);
  --control-shadow:0 1px 2px rgba(24,33,43,.05),inset 0 1px 0 rgba(255,255,255,.72);
}

/* Give every calculator control the same visual weight. */
main input:not([type="button"]):not([type="submit"]),
main select,
main textarea{
  width:100%;
  min-height:46px;
  padding:10px 12px;
  border:1px solid var(--control-border);
  border-radius:8px;
  background-color:var(--control-bg);
  color:var(--text);
  box-shadow:var(--control-shadow);
  transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease;
}

/* Native selects are normalized so Safari/iOS/Chromium render the same box. */
main select{
  -webkit-appearance:none;
  appearance:none;
  padding-right:44px;
  cursor:pointer;
  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 1.25 6 6.25 11 1.25' fill='none' stroke='%23586876' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:12px 8px;
}

main input:not([type="button"]):not([type="submit"]):hover,
main select:hover,
main textarea:hover{
  border-color:var(--control-border-hover);
}

main input:not([type="button"]):not([type="submit"]):focus,
main select:focus,
main textarea:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px var(--control-focus-ring),0 1px 2px rgba(24,33,43,.06);
}

main input::placeholder,
main textarea::placeholder{
  color:#8c98a4;
  opacity:1;
}

main input:disabled,
main select:disabled,
main textarea:disabled{
  cursor:not-allowed;
  background-color:#f3f6f8;
  color:#8995a0;
  box-shadow:none;
}

.field label{
  margin-bottom:7px;
  color:#43515f;
  font-size:.77rem;
  line-height:1.35;
}

.field:focus-within label{
  color:var(--accent);
}

.field-hint{
  margin-top:7px;
}

.form-grid{
  column-gap:16px;
  row-gap:15px;
}

.form-section-title{
  margin-top:8px;
  padding:12px 0 7px;
  border-bottom-color:#cbd5dd;
}

.actions-row{
  flex-wrap:wrap;
  gap:10px;
  margin-top:3px;
}

.button{
  min-height:42px;
  padding:0 16px;
  border-radius:8px;
  box-shadow:0 1px 2px rgba(24,33,43,.05);
  transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,background-color .14s ease;
}

.button:hover{
  transform:translateY(-1px);
  border-color:#96a7b5;
  box-shadow:0 3px 8px rgba(24,33,43,.08);
}

.button:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px var(--control-focus-ring),0 2px 6px rgba(24,33,43,.08);
}

.button.primary:hover{
  border-color:#245f63;
  background:#28666a;
}

.calculator-form-panel{
  box-shadow:0 2px 8px rgba(24,33,43,.035);
}

@media(max-width:620px){
  main input:not([type="button"]):not([type="submit"]),
  main select,
  main textarea{
    min-height:48px;
    font-size:16px; /* avoids iOS zoom on focus */
  }

  .actions-row .button{
    flex:1 1 150px;
  }
}

@media(prefers-reduced-motion:reduce){
  main input,
  main select,
  main textarea,
  .button{
    transition:none;
  }
  .button:hover{transform:none}
}

/* v1.25.9 — select and text inputs share the same visual system */
/*
 * A select should read as the same kind of form control as a text input.
 * Keep the exact same height, border, radius, background and typography;
 * the only visual difference is the discreet chevron on the right.
 */
main input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
main select,
main textarea{
  min-height:46px;
  padding:10px 12px;
  border:1px solid var(--control-border);
  border-radius:8px;
  background-color:var(--control-bg);
  color:var(--text);
  font-weight:400;
  box-shadow:var(--control-shadow);
}

main select{
  -webkit-appearance:none;
  appearance:none;
  padding-right:40px;
  cursor:pointer;
  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 1.25 6 6.25 11 1.25' fill='none' stroke='%23586876' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 13px center;
  background-size:12px 8px;
}

main input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]):hover,
main select:hover,
main textarea:hover{
  border-color:var(--control-border-hover);
  background-color:#fff;
}

main input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]):focus,
main select:focus,
main select:focus-visible,
main textarea:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(37,122,126,.16),0 1px 2px rgba(24,33,43,.06);
}

/* Same label spacing for every control type. */
.field label{
  margin-bottom:7px;
}
.field:focus-within label{
  color:var(--accent);
}

/* Native small controls keep their own dimensions. */
main input[type="checkbox"],
main input[type="radio"]{
  width:auto;
  min-height:0;
  padding:0;
  box-shadow:none;
}

/* A little more colour, without turning calculators into a gaming UI. */
.button.primary{
  background:#257a7e;
  border-color:#257a7e;
  box-shadow:0 2px 5px rgba(37,122,126,.16);
}
.button.primary:hover{
  background:#1f6b6f;
  border-color:#1f6b6f;
  box-shadow:0 4px 10px rgba(37,122,126,.22);
}
.panel h2{
  position:relative;
  padding-left:11px;
}
.panel h2::before{
  content:"";
  position:absolute;
  left:0;
  top:.12em;
  bottom:.12em;
  width:3px;
  border-radius:999px;
  background:var(--accent);
}
.result-row.highlight{
  border-left:3px solid var(--accent);
  background:#e3f4f4;
}
.tool-link,
.tool-heading>a,
.eyebrow{
  color:#22767a;
}

@media(max-width:620px){
  main input:not([type="button"]):not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
  main select,
  main textarea{
    min-height:48px;
    font-size:16px;
  }
  main select{
    padding-right:40px;
    background-position:right 13px center;
  }
}

/* v1.25.9 — ticker flush with header and vertically balanced quotes */
/*
 * TradingView's compact tape is 48px high.  Keep it flush against the
 * header, then reserve the extra breathing room only below the widget.
 * This removes the dark strip that previously looked like a gap between
 * header and ticker while visually centering the quote text in the band.
 */
.full-width-market-ticker{
  height:58px;
  min-height:58px;
  max-height:58px;
  margin:0;
  border-top:0;
}
.full-width-market-ticker .market-ticker-viewport{
  height:58px;
  min-height:58px;
  max-height:58px;
  margin:0;
  padding:0 0 10px;
  overflow:hidden;
}
.full-width-market-ticker .tradingview-ticker-widget{
  display:block;
  width:100%;
  height:48px;
  min-height:48px;
  max-height:48px;
  margin:0;
  overflow:hidden;
}


/* v1.25.9 — Covered Call Exit currency and CSV workflow */
.cc-exit-currency-help{margin-top:-5px}
.cc-exit-csv-actions{margin-top:8px}
.cc-exit-csv-status{min-height:1.25em;margin:0;color:var(--muted);font-size:.76rem}
.cc-exit-csv-status[data-status="ok"]{color:#24683c}
.cc-exit-csv-status[data-status="error"]{color:var(--danger)}
.cc-exit-csv-guide{margin-top:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft,#f7f9fa);overflow:hidden}
.cc-exit-csv-guide summary{padding:12px 14px;cursor:pointer;color:var(--accent);font-weight:700;font-size:.8rem;user-select:none}
.cc-exit-csv-guide[open] summary{border-bottom:1px solid var(--line);background:var(--accent-soft)}
.cc-exit-csv-guide-body{padding:14px;color:var(--muted);font-size:.79rem;line-height:1.6}
.cc-exit-csv-guide-body h3{margin:0 0 8px;color:var(--text);font-family:var(--mono);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
.cc-exit-csv-guide-body p{margin:0 0 10px}
.cc-exit-csv-guide-body p:last-child{margin-bottom:0}
.cc-exit-csv-guide-body pre{max-width:100%;margin:12px 0;padding:12px;border:1px solid #d6dee4;border-radius:7px;background:#fff;color:#33424f;font-size:.72rem;line-height:1.5;overflow:auto;white-space:pre}

/* v1.26.4 — Covered Call Income Campaign private beta */
.campaign-beta-page{background:#edf2f6}
.campaign-beta-page.campaign-beta-locked{overflow:hidden}
.campaign-access-gate{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#101922,#1c2b38 58%,#203d3f)}
.campaign-access-card{width:min(460px,100%);padding:30px;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.campaign-access-brand{display:flex;align-items:center;gap:12px;margin-bottom:24px}.campaign-access-brand div{display:grid}.campaign-access-brand strong{font-family:var(--mono);font-size:1.05rem}.campaign-access-brand span{color:var(--accent);font-family:var(--mono);font-size:.66rem;font-weight:800;letter-spacing:.12em}
.campaign-access-card h1{margin:4px 0 10px;font-family:Georgia,"Times New Roman",serif;font-size:2rem}.campaign-access-card>p:not(.eyebrow){margin:0 0 20px;color:var(--muted);font-size:.9rem}.campaign-access-card>small{display:block;margin-top:18px;color:#8a96a1;font-size:.7rem}
.campaign-access-form label{display:block;margin-bottom:6px;font-size:.75rem;font-weight:700;color:#46525f}.campaign-password-row{display:grid;grid-template-columns:1fr auto;gap:8px}.campaign-password-row input{min-width:0;padding:10px 12px;border:1px solid #c7d0d9;border-radius:7px}.campaign-password-row input:focus{outline:2px solid #b7d1d2;outline-offset:1px}
.campaign-private-header{grid-template-columns:auto 1fr auto}.campaign-private-badge{justify-self:center;padding:5px 9px;border:1px solid #45606a;border-radius:999px;color:#b8d9da;background:#22343d;font-family:var(--mono);font-size:.65rem;font-weight:800;letter-spacing:.08em}.campaign-lock-button{background:#202b36;border-color:#465362;color:#fff}
.campaign-shell{width:min(1380px,calc(100% - 32px));max-width:none;margin-inline:auto;padding-inline:0}.campaign-heading{display:grid;gap:2px}.campaign-heading h1{max-width:none}.campaign-beta-note{margin-bottom:16px;padding:14px 16px;border:1px solid #bdd4d5;border-left:4px solid var(--accent);border-radius:10px;background:#f3fbfb}.campaign-beta-note strong{display:block;margin-bottom:4px;font-family:var(--mono);font-size:.78rem}.campaign-beta-note p{margin:0;color:#586873;font-size:.82rem}
.campaign-toolbar{display:flex;justify-content:space-between;gap:16px;align-items:end;margin-bottom:16px}.campaign-selector-wrap{min-width:min(360px,100%)}.campaign-selector-wrap label{display:block;margin-bottom:5px;color:#46525f;font-size:.72rem;font-weight:700}.campaign-selector-wrap select{width:100%;height:40px;padding:0 34px 0 11px;border:1px solid #c7d0d9;border-radius:7px;background:#fff}.campaign-toolbar-actions{flex-wrap:wrap;justify-content:flex-end}.campaign-danger-button{color:#8a2d2d;border-color:#dfc0c0}.campaign-danger-button:not(:disabled):hover{background:#fff1f1}.campaign-danger-button:disabled{opacity:.45;cursor:not-allowed}
.campaign-empty-state{text-align:center;padding:46px 24px}.campaign-empty-state h2{margin-bottom:8px}.campaign-empty-state p{max-width:690px;margin:0 auto 18px;color:var(--muted);font-size:.9rem}
.campaign-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.campaign-kpi{min-width:0;padding:18px;border:1px solid var(--line);border-top-width:3px;border-radius:10px;background:#fff}.campaign-kpi>span{display:block;margin-bottom:9px;color:var(--muted);font-size:.73rem;font-weight:700}.campaign-kpi>strong{display:block;font-family:var(--mono);font-size:1.38rem;letter-spacing:-.03em}.campaign-kpi>small{display:block;margin-top:7px;color:#788592;font-size:.7rem}.campaign-kpi-income{border-top-color:#2b7e68}.campaign-kpi-tax{border-top-color:#a9772b}.campaign-kpi-reinvest{border-top-color:#536f9c}.campaign-kpi-repaid{border-top-color:var(--accent)}
.campaign-progress{height:7px;margin-top:10px;border-radius:999px;background:#e4eaee;overflow:hidden}.campaign-progress span{display:block;height:100%;width:0;border-radius:inherit;background:var(--accent);transition:width .25s ease}
.campaign-alerts{margin-bottom:16px}.campaign-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.campaign-section-heading .eyebrow{margin-bottom:4px}.campaign-section-heading h2{margin:0;text-transform:none;letter-spacing:0;font-size:.95rem}.campaign-alert-list{display:grid;gap:8px}.campaign-alert{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-alt);font-size:.8rem}.campaign-alert::before{content:"•";font-weight:900}.campaign-alert[data-level="success"]{border-color:#b9dac7;background:#f1faf5}.campaign-alert[data-level="success"]::before{color:#26704a}.campaign-alert[data-level="warning"]{border-color:#e5d6a7;background:#fffbed}.campaign-alert[data-level="warning"]::before{color:#9b7119}.campaign-alert[data-level="danger"]{border-color:#e2bebe;background:#fff3f3}.campaign-alert[data-level="danger"]::before{color:#a63a3a}.campaign-alert[data-level="info"]::before{color:var(--accent)}.campaign-alert-empty{color:var(--muted);font-size:.82rem}
.campaign-main-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:16px;margin-bottom:16px}.campaign-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:9px;overflow:hidden}.campaign-summary-grid>div{padding:13px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fbfcfd}.campaign-summary-grid>div:nth-child(3n){border-right:0}.campaign-summary-grid>div:nth-last-child(-n+3){border-bottom:0}.campaign-summary-grid span{display:block;margin-bottom:5px;color:var(--muted);font-size:.68rem}.campaign-summary-grid strong{font-family:var(--mono);font-size:.84rem}.campaign-allocation-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.campaign-allocation-strip>div{padding:10px 12px;border-radius:8px;background:var(--accent-soft)}.campaign-allocation-strip span{display:block;color:#587073;font-size:.68rem}.campaign-allocation-strip strong{font-family:var(--mono);font-size:.85rem}
.campaign-actions-panel{display:flex;flex-direction:column}.campaign-actions-panel>h2{margin-top:0}.campaign-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.campaign-income-callout{margin-top:auto;padding:14px;border:1px solid #b9d7c8;border-radius:9px;background:#f2fbf6}.campaign-income-callout span{display:block;color:#597469;font-size:.7rem}.campaign-income-callout strong{display:block;margin:3px 0 9px;font-family:var(--mono);font-size:1.3rem;color:#245f45}
.campaign-table-panel{margin-bottom:16px}.campaign-table-scroll{overflow:auto;border:1px solid var(--line);border-radius:8px}.campaign-table{width:100%;border-collapse:collapse;min-width:760px;font-size:.76rem}.campaign-table th,.campaign-table td{padding:9px 10px;border-bottom:1px solid #e5eaee;text-align:left;white-space:nowrap}.campaign-table th{position:sticky;top:0;background:#f2f5f7;color:#52606c;font-size:.67rem;text-transform:uppercase;letter-spacing:.03em}.campaign-table tbody tr:last-child td{border-bottom:0}.campaign-table tbody tr:hover td{background:#fbfdfd}.campaign-table td[data-positive="true"]{color:#276b48;font-weight:700}.campaign-table td[data-negative="true"]{color:#9a3d3d;font-weight:700}.campaign-table-empty{text-align:center!important;color:var(--muted);padding:22px!important}.campaign-table .button{min-height:30px;padding:0 9px;font-size:.7rem}
.campaign-backup-panel>p{margin:0 0 15px;color:var(--muted);font-size:.82rem}.campaign-backup-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.campaign-backup-grid>div{padding:15px;border:1px solid var(--line);border-radius:9px;background:#fafcfd}.campaign-backup-grid h3{margin:0 0 4px;font-family:var(--mono);font-size:.8rem}.campaign-backup-grid p{margin:0 0 12px;color:var(--muted);font-size:.74rem}.campaign-backup-status{min-height:1.2em;margin-top:12px!important}.campaign-backup-status[data-state="ok"]{color:#276b48}.campaign-backup-status[data-state="error"]{color:var(--danger)}
.campaign-dialog{width:min(760px,calc(100% - 28px));max-height:88vh;padding:0;border:0;border-radius:12px;background:#fff;box-shadow:0 22px 70px rgba(0,0,0,.3)}.campaign-dialog::backdrop{background:rgba(14,24,32,.62);backdrop-filter:blur(2px)}.campaign-dialog form{padding:20px}.campaign-dialog-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.campaign-dialog-heading .eyebrow{margin-bottom:3px}.campaign-dialog-heading h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:1.5rem}.campaign-dialog-close{width:34px;height:34px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#687581;cursor:pointer;font-size:1.35rem;line-height:1}.campaign-dialog-actions{justify-content:flex-end;margin-top:18px}.campaign-dialog-help{margin:12px 0 0;color:var(--muted);font-size:.74rem}.campaign-dialog .form-section-title{margin-top:4px;padding-top:10px;border-top:1px solid var(--line);font-family:var(--mono);font-size:.72rem;font-weight:800;color:#53616d;text-transform:uppercase;letter-spacing:.04em}
.campaign-beta-page .field input,.campaign-beta-page .field select{min-height:40px}.campaign-private-header .button{min-height:34px}.campaign-private-header+.campaign-shell{padding-top:28px}
@media(max-width:1050px){.campaign-kpi-grid{grid-template-columns:1fr 1fr}.campaign-main-grid{grid-template-columns:1fr}.campaign-actions-panel{min-height:0}.campaign-income-callout{margin-top:14px}}
@media(max-width:760px){.campaign-shell{width:min(100% - 20px,1380px)}.campaign-toolbar{align-items:stretch;flex-direction:column}.campaign-selector-wrap{min-width:0}.campaign-toolbar-actions{justify-content:stretch}.campaign-toolbar-actions .button{flex:1 1 180px}.campaign-private-header{grid-template-columns:1fr auto}.campaign-private-badge{display:none}.campaign-kpi-grid{grid-template-columns:1fr}.campaign-summary-grid{grid-template-columns:1fr 1fr}.campaign-summary-grid>div{border-right:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important}.campaign-summary-grid>div:nth-child(2n){border-right:0!important}.campaign-summary-grid>div:nth-last-child(-n+2){border-bottom:0!important}.campaign-allocation-strip,.campaign-backup-grid{grid-template-columns:1fr}.campaign-quick-actions{grid-template-columns:1fr 1fr}.campaign-password-row{grid-template-columns:1fr}.campaign-access-card{padding:24px}}
@media(max-width:520px){.campaign-summary-grid,.campaign-quick-actions{grid-template-columns:1fr}.campaign-summary-grid>div{border-right:0!important}.campaign-summary-grid>div:nth-last-child(-n+2){border-bottom:1px solid var(--line)!important}.campaign-summary-grid>div:last-child{border-bottom:0!important}.campaign-allocation-strip{grid-template-columns:1fr}.campaign-dialog form{padding:16px}.campaign-private-header .brand small{display:block;font-size:.56rem}.campaign-lock-button{padding-inline:10px}}
