.earn-provider.glass{width:100%;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}
.earn-budget{max-width:390px;line-height:1.4;color:var(--ink-3)!important}
.earn-finnhub-form{display:flex;align-items:center;gap:7px;margin-left:auto}
.earn-finnhub-form input{width:115px;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:var(--glass-solid);color:var(--ink);font-size:11px}
.earn-finnhub-form button{padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:var(--glass-2);color:var(--ink);cursor:pointer}
.earn-finnhub-form small{color:var(--ink-4)}
.earn-hero-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.earn-hero{min-width:0;min-height:0;display:flex;flex-direction:column;gap:8px}
.earn-hero-top{display:flex;justify-content:space-between;align-items:center}
.earn-hero h3{margin:2px 0 0;white-space:normal;line-height:1.25}
.earn-hero p{margin:0 0 3px}
.earn-company-strip{display:flex;flex-wrap:wrap;align-items:center;gap:5px 9px;color:var(--ink-3);font:600 10px var(--mono)}
.earn-company-strip .earn-industry{padding:4px 6px;border:1px solid var(--line);border-radius:5px;color:var(--ink-2);font:500 10px var(--sans)}
.earn-hero .earn-company-strip{flex-wrap:nowrap;min-width:0;white-space:nowrap}
.earn-hero .earn-company-strip>span{flex-shrink:0}
.earn-hero .earn-company-strip .earn-industry{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.earn-change.up,.earn-surprises .up{color:var(--up)}
.earn-change.down,.earn-surprises .down{color:var(--down)}
.earn-hero-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.earn-hero-grid>div{display:flex;flex-direction:column;min-width:0;gap:3px}
.earn-hero-grid small,.earn-hero-detail>small{color:var(--ink-4);font-size:9px}
.earn-hero-grid strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:600 11px var(--mono);color:var(--ink)}
.earn-hero-detail{display:grid;gap:6px}
.earn-placeholder{color:var(--ink-4);font-size:10px;min-height:14px}
.earn-range{display:flex;align-items:center;gap:6px;color:var(--ink-3);font:10px var(--mono)}
.earn-range-track{position:relative;flex:1;height:5px;min-width:25px;background:linear-gradient(90deg,var(--down),var(--imp),var(--up));border-radius:20px}
.earn-range-track i{position:absolute;top:50%;width:9px;height:9px;border:2px solid var(--glass-solid);border-radius:50%;background:var(--ink);transform:translate(-50%,-50%)}
.earn-ratings{display:flex;overflow:hidden;height:7px;border-radius:5px;background:var(--glass-2)}
.earn-ratings .strong_buy{background:#1caa75}.earn-ratings .buy{background:#74c998}.earn-ratings .hold{background:#e2bd63}.earn-ratings .sell{background:#df8970}.earn-ratings .strong_sell{background:#c95865}
.earn-hero-detail>small:not(:first-child){margin-top:4px}
.earn-hero-detail small+small{margin-top:0}
.earn-surprises{display:flex;flex-wrap:wrap;gap:5px}
.earn-surprises span{padding:3px 5px;border:1px solid var(--line);border-radius:5px;background:var(--glass-2);font:9px var(--mono)}
.earn-source{width:100%;max-width:100%;margin:auto 0 0;padding-top:8px;border-top:1px solid var(--line);color:var(--ink-3);font-size:9px;overflow-wrap:anywhere}
.earn-placeholder::before{content:"";display:inline-block;width:25px;height:7px;margin-right:6px;border-radius:4px;background:var(--line)}
.earn-card .earn-company-strip{margin:0 0 10px;font-size:9px;gap:4px 6px}
.earn-card .earn-company-strip .earn-industry{font-size:9px}
.earn-eapi.glass{display:grid;gap:9px;width:100%;margin:0 4px 22px;padding:10px 12px;border-radius:11px;color:var(--ink-3);font-size:11px}
.earn-eapi-line{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;line-height:1.4}
.earn-eapi-line .eyebrow{margin:0}
.earn-eapi-form{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.earn-eapi-form input{width:230px;max-width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:7px;background:var(--glass-solid);color:var(--ink);font-size:11px}
.earn-eapi-form button{padding:6px 9px;border:1px solid var(--line);border-radius:7px;background:var(--glass-2);color:var(--ink);cursor:pointer}
.earn-eapi-form button:disabled{opacity:.6;cursor:default}
.earn-eapi-form small{flex-basis:100%;min-height:14px;color:var(--ink-3)}
.cal-health .earn-credit{margin:6px 0 0}
.earn-credit a{color:var(--ink-3)}
.earn-last{margin-top:9px;color:var(--ink-3);font-size:10px}
.earn-last.beat{color:var(--up)}
.earn-last.miss{color:var(--down)}
.earn-hero .earn-last{margin-top:0}
.earn-nav .cal-nav-actions{flex-wrap:wrap;justify-content:flex-end}
.earn-nav .cal-segment{flex-wrap:wrap;white-space:normal}
.earn-nav .cal-segment button{white-space:normal;text-align:left}
@media(max-width:900px){.earn-finnhub-form{margin-left:0}.earn-hero-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.earn-nav .cal-nav-actions{width:100%;justify-content:flex-start}.earn-nav .cal-nav-actions .cal-segment{margin-left:0}}
@media(max-width:640px){.earn-hero-row{grid-template-columns:1fr}.earn-finnhub-form{flex-wrap:wrap}.earn-hero-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.earn-hero{transition:none}}
/* Ticker and company name, a fair bit larger than app.css sets them (this file loads after app.css, so these win): the ticker pill 11px -> 14px
   (15px in the spotlight), a card's company name 11px -> 15px, the spotlight's 15px -> 20px. The card's head row may wrap: in the narrowest
   columns (175px) a five-letter ticker and a "Before open" label with its icon no longer fit side by side, and the label drops under the ticker
   (still at the right) instead of running into the card's edge. */
.earn-ticker{padding:6px 10px;font-size:14px}
.earn-card h3{margin:9px 0 12px;font-size:15px;font-weight:650;line-height:1.25}
.earn-hero .earn-ticker{font-size:15px}
.earn-hero h3{font-size:20px;font-weight:650;letter-spacing:-.01em}
.earn-card-head{flex-wrap:wrap;row-gap:3px}
.earn-time{margin-left:auto}
