/* CSE Dividend Calendar — the whole stylesheet.
   One file, cached for a year and busted with ?v=. It used to be inline: with
   one page that saved a round trip, and with a page per company it would mean
   re-sending 7 KB on every one of three hundred addresses a crawler visits. */
:root{--bg:#f6f8f7;--ink:#12211a;--ink2:#26332c;--mut:#6b7570;--mut2:#8a938e;--mut3:#9aa39e;--line:#e7ebe8;--line2:#f1f4f2;--acc:#17794a;--acc2:#0f5c37;--warn:#8a6415;--bad:#b3341f}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg)}
body{font-family:'IBM Plex Sans',system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;color:var(--ink);font-size:15px;line-height:1.5}
a{color:var(--acc);text-decoration:none}a:hover{color:var(--acc2)}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace}
.wrap{max-width:1360px;margin:0 auto;padding:26px 20px 60px;display:grid;align-items:start;gap:24px;grid-template-columns:minmax(0,1fr) 300px}
@media(max-width:1080px){.wrap{grid-template-columns:minmax(0,1fr);max-width:820px}.rail{display:none}}
header.top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
h1{margin:0;font-size:29px;font-weight:700;letter-spacing:-0.02em;line-height:1.15}
.sub{margin-top:5px;font-size:14.5px;color:var(--mut);max-width:62ch}
.synced{font-size:11.5px;color:var(--mut2);letter-spacing:0.04em;white-space:nowrap}
.card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.bar{display:flex;align-items:center;gap:8px;padding:14px 16px;flex-wrap:wrap;border-bottom:1px solid var(--line2)}
.chip{padding:6px 13px;border-radius:20px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;border:1px solid var(--line);color:#5d6862;background:#fff;font-family:inherit}
.chip:hover{border-color:#c7d2cb}
.chip[aria-pressed="true"]{border-color:var(--acc);background:var(--acc);color:#fff}
.chip .n{opacity:.65;font-weight:500;margin-left:4px}
.sep{width:1px;height:22px;background:var(--line);margin:0 2px}
.grow{flex:1}
.srch{border:1px solid #e2e7e4;background:#fafbfa;border-radius:9px;padding:8px 12px;font-size:13.5px;font-family:inherit;width:150px;outline:none;color:inherit}
.srch:focus{border-color:var(--acc);background:#fff}
.seg{display:flex;gap:2px;background:#f1f4f2;padding:4px;border-radius:10px}
.seg button{border:0;background:transparent;padding:6px 12px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;color:#5d6862;font-family:inherit}
.seg button[aria-pressed="true"]{background:#fff;color:var(--ink)}
/* WHY THIS RULE EXISTS, before anything else in this block:
   [hidden] is a presentation hint, not a law. The browser's own stylesheet
   says [hidden]{display:none}, and ANY author rule that sets display beats it —
   so the moment .row became display:flex, every filtered-out row went on
   showing and the tabs looked broken. app.js was setting .hidden correctly the
   whole time; the CSS was quietly ignoring it.
   One line, and it has to sit with the rule that caused it. */
[hidden]{display:none!important}

/* The row says everything itself: no expander, no page of its own. */
.row{border-top:1px solid var(--line2);display:flex;gap:13px;padding:14px 16px;align-items:flex-start}
.row:first-of-type{border-top:0}
/* The row says everything itself — no expander, no page of its own. The only
   link on it goes off-site to the full analysis, which is the click this whole
   site exists to earn. */
.rrec{display:block;font-size:12.5px;color:var(--mut2);margin-top:4px}
.rov{color:var(--warn)}
/* Fixed box, flexible text. COCR.N0000 in a 58px circle ran straight out of
   its own tile and across the badge beside it. The label is now the short code
   and the tile shrinks the type for the few that are still long, rather than
   letting anything overflow. */
.tick{width:58px;height:58px;flex:none;border-radius:14px;background:#eef5f0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:var(--acc2);letter-spacing:-0.02em;overflow:hidden;padding:0 4px;text-align:center;line-height:1.05}
.tick.tiny{font-size:11px;letter-spacing:-0.03em;word-break:break-all}
.rmid{flex:1;min-width:0;display:block}
.rtop{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.rname{font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.badge{font-size:10.5px;font-weight:700;letter-spacing:0.07em;padding:3px 9px;border-radius:20px;white-space:nowrap}
.b-open{background:#dff2e7;color:var(--acc2)}
.b-est{border:1px dashed #c3ccc7;color:#7a837e}
.b-rights{background:#fbeed5;color:var(--warn)}
.b-past{background:#f0f2f1;color:#7a837e}
.ramt{display:block;font-size:14.5px;color:var(--ink2);margin-top:4px}
.rsub{display:block;font-size:13.5px;margin-top:3px;text-wrap:pretty}
.s-open{color:var(--acc);font-weight:600}.s-est{color:var(--mut2)}.s-past{color:var(--mut3)}.s-rights{color:var(--warn)}
.rright{flex:none;text-align:right;min-width:104px}
.rhl{display:block;font-size:24px;font-weight:600;letter-spacing:-0.02em;line-height:1.05}
.h-good{color:var(--acc)}.h-bad{color:var(--bad)}
.rnote2{display:block;font-size:11.5px;font-weight:600;margin-top:4px;white-space:nowrap}
.n-up{color:var(--acc)}.n-down{color:var(--bad)}.n-flat{color:var(--mut3)}
.pgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}
@media(max-width:700px){.pgrid{grid-template-columns:minmax(0,1fr);gap:14px}}
.ptitle{font-size:11px;letter-spacing:0.09em;color:var(--mut2);font-weight:600;margin-bottom:6px}
.frow,.hrow{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-bottom:1px solid #eef1ef;gap:14px}
.flabel{font-size:13.5px;color:#5d6862}
.fval{font-size:14px;font-weight:600;text-align:right}
.hkind{color:#5d6862;font-weight:400}
.hxd{font-size:12.5px;color:var(--mut3);white-space:nowrap}
.confwrap{margin-top:12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.confhead{display:flex;justify-content:space-between;font-size:13.5px;color:var(--ink2)}
.conftrack{margin-top:8px;height:6px;border-radius:5px;background:#eef1ef;overflow:hidden}
.conffill{height:100%;border-radius:5px;background:var(--acc)}
.ovnote{font-size:11.5px;color:var(--warn);margin-top:6px}
.rnote{margin-top:12px;background:#fdf7ea;border:1px solid #f0e2c4;border-radius:12px;padding:13px 15px;font-size:13.5px;color:#6b6350;line-height:1.55;text-wrap:pretty}
.cta{display:inline-block;margin-top:14px;font-size:13.5px;font-weight:600}
.foot{padding:13px 16px;border-top:1px solid var(--line2);font-size:12.5px;color:var(--mut2)}
.empty{padding:34px 16px;text-align:center;color:var(--mut2);font-size:14px}
.rail{position:sticky;top:20px;display:flex;flex-direction:column;gap:14px}
.adrow{border-top:1px solid var(--line2);padding:12px 16px}
.adrow .ad{border:0;border-radius:10px;background:#fafbfa}
.ad{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;padding:0}
.ad img{display:block;max-width:100%;height:auto}
.adlabel{font-size:10px;letter-spacing:0.1em;color:#a8b0ab;font-weight:600;padding:8px 12px 6px}
.ad-native{padding-bottom:14px}
.adnative{display:block;padding:0 14px}
.adhead{font-size:15px;font-weight:600;line-height:1.35;color:var(--ink)}
.adbody{font-size:13px;color:var(--mut);margin-top:5px;line-height:1.5}
.adcta{margin-top:10px;font-size:13px;font-weight:600;color:var(--acc)}
.adpx{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.promo{background:#10261c;color:#e8f2ec;border-radius:16px;padding:18px 20px}
.promo h2{margin:0;font-size:17px;font-weight:700;color:#fff}
.promo p{margin:7px 0 0;font-size:13.5px;line-height:1.55;color:#a9bdb2}
.promo a{display:inline-block;margin-top:12px;background:var(--acc);color:#fff;font-size:13.5px;font-weight:600;padding:9px 15px;border-radius:9px}
.promo a:hover{background:#1d8f58;color:#fff}
.mgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.mhead{font-size:10.5px;letter-spacing:0.08em;color:#4a544e;font-weight:700;text-align:center;padding-bottom:4px}
.mcell{min-height:96px;border:1px solid #dde5e0;border-radius:10px;padding:7px;background:#fff;min-width:0}
.mcell.pad{background:#fafbfa;border-style:dashed}
.mcell.today{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc) inset}
.mnum{font-size:11.5px;font-weight:600;color:#5d6862;margin-bottom:5px}
.mev{border-radius:7px;padding:3px 6px;font-size:10.5px;line-height:1.3;font-weight:600;margin-bottom:3px;overflow:hidden;display:block}
.mev-d{background:#e9f4ee;color:var(--acc2)}
.mev-r{background:#fbeed5;color:var(--warn)}
.mev-e{background:#f1f4f2;color:#7a837e}
.mnav{display:flex;align-items:center;justify-content:space-between;margin:14px 0}
.mnav b{font-size:17px}
.mnav button{width:32px;height:32px;border:1px solid #e2e7e4;border-radius:9px;background:#fff;cursor:pointer;color:#5d6862;font-size:16px;font-family:inherit}
.mnav button:hover{background:#f4f6f5}
.pagefoot{max-width:1360px;margin:0 auto;padding:0 20px 50px;font-size:12.5px;color:var(--mut2);line-height:1.6}
.pagefoot a{font-weight:600}
.sheet{position:fixed;inset:0;background:rgba(16,38,28,.55);display:flex;align-items:flex-end;justify-content:center;padding:14px;z-index:50}
.sheet[hidden]{display:none}
.sheetin{width:100%;max-width:380px;background:#fff;border-radius:20px;overflow:hidden}
.sheettop{display:flex;align-items:center;justify-content:space-between;padding:9px 13px;border-bottom:1px solid var(--line2)}
.sheettop button{width:26px;height:26px;border-radius:50%;background:#f1f4f2;border:0;cursor:pointer;color:#5d6862;font-size:15px}
@media(max-width:640px){
  .wrap{padding:18px 13px 44px}
  h1{font-size:23px}
  .row{padding:12px 13px;gap:10px;align-items:flex-start}
  .tick{width:42px;height:42px;border-radius:11px;font-size:12px}
  .tick.tiny{font-size:9.5px}
  .rname{font-size:13.5px}
  .ramt{font-size:13.5px}
  .rsub{font-size:12.5px}
  .rhl{font-size:19px}
  .rright{min-width:76px}
  .bar{padding:12px 13px;gap:6px}
  .srch{width:100%;order:9}
  .mcell{min-height:64px;padding:5px;border-radius:8px}
  .mev{font-size:9px;padding:2px 4px}
}
@media(prefers-reduced-motion:reduce){.caret{transition:none}}

/* ---- company pages -------------------------------------------------------
   Added when the site went from one page to one per company. The answer box is
   the important part: the question the search asked, answered in the first
   thing the eye lands on, in a sentence a person would say out loud. */
.crumb{font-size:12.5px;color:var(--mut2);margin-bottom:10px}
.crumb a{font-weight:600}
.answer{background:#fff;border:1px solid var(--line);border-left:4px solid var(--acc);border-radius:14px;padding:16px 18px;margin:14px 0 18px}
.answer.rights{border-left-color:var(--warn)}
.alab{font-size:10.5px;letter-spacing:.09em;color:var(--mut2);font-weight:700}
.atext{margin:7px 0 0;font-size:16.5px;line-height:1.5;text-wrap:pretty}
.afacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:14px}
.afacts div{background:#fafbfa;border:1px solid var(--line2);border-radius:10px;padding:9px 11px}
.afacts span{display:block;font-size:11px;color:var(--mut2);font-weight:600;letter-spacing:.04em}
.afacts b{display:block;font-size:15px;margin-top:2px}
.anote{margin:12px 0 0;font-size:13.5px;color:var(--mut);line-height:1.55;text-wrap:pretty}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:18px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 15px}
.kpi .n{font-size:10.5px;letter-spacing:.09em;color:var(--mut2);font-weight:600}
.kpi .v{font-size:22px;font-weight:600;margin-top:3px;letter-spacing:-.01em}
.kpi .s{font-size:11.5px;color:var(--mut3);margin-top:3px}
.card h2{margin:0;font-size:18px;font-weight:700;letter-spacing:-.01em}
.card{padding:18px 20px;margin-bottom:18px}
.htable{width:100%;border-collapse:collapse}
.htable th{text-align:left;font-size:10.5px;letter-spacing:.08em;color:var(--mut2);font-weight:600;padding:8px 6px;border-bottom:1px solid var(--line2)}
.htable td{padding:10px 6px;border-bottom:1px solid var(--line2);font-size:14px}
.htable tr:last-child td{border-bottom:0}
.htable .r{text-align:right}
.muted{color:var(--mut3)}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.tchip{display:inline-flex;gap:6px;align-items:baseline;border:1px solid var(--line);background:#fafbfa;border-radius:20px;padding:5px 12px;font-size:12.5px;color:var(--mut);max-width:100%}
.tchip b{color:var(--ink);font-size:12.5px}
.tchip:hover{border-color:var(--acc);background:#fff;color:var(--ink)}
.bigcta{margin:0 0 18px}
.bigcta a{display:inline-block;background:var(--acc);color:#fff;font-size:14.5px;font-weight:600;padding:11px 18px;border-radius:10px}
.bigcta a:hover{background:#0f5c37;color:#fff}
.cta2{margin-left:16px;font-weight:500;color:var(--mut)}
@media(max-width:640px){
  .atext{font-size:15px}
  .kpi .v{font-size:19px}
  .card{padding:15px 14px}
  .cta2{margin-left:0;display:block;margin-top:6px}
}
