:root{--ink:#291c46;--muted:#625078;--line:#897697;--accent:#6630b5;--paper:#fff5db;--surface:#ffffff;--radius:28px;--space:32px;--shadow:5px 5px 0 var(--line);--accent-contrast:#ffffff;--font-body:system-ui,sans-serif;--font-heading:system-ui,sans-serif;}
/* Shared layout from finsite, aitools and trendtool; colors come from site config. */
.related a{display:inline-block;margin:0 20px 12px 0}
.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;background:var(--surface)}th,td{text-align:left;vertical-align:top;padding:12px;border:1px solid var(--line)}caption{text-align:left;font-weight:650;padding:12px 0}.ad{border:1px dashed var(--line);padding:20px;margin:24px 0;color:var(--muted)}form{display:grid;gap:16px;max-width:520px}input[type=email],button{font:inherit;padding:12px;border:1px solid var(--line);border-radius:6px}button{background:var(--accent);color:var(--accent-contrast);cursor:pointer}input:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.ranking{padding-left:2.5rem}.rank{padding:20px;margin:16px 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow-wrap:anywhere}.rank::marker{font-size:1.4rem;font-weight:750;color:var(--accent)}.rank h2{margin:0;font-size:1.4rem}.rank p:last-child{margin-bottom:0}
:root{color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--font-body)}a{color:var(--accent);text-underline-offset:3px}.wrap{max-width:1120px;margin:auto;padding:0 24px}header{border-bottom:1px solid var(--line)}.bar{display:flex;justify-content:space-between;align-items:center;padding-top:24px;padding-bottom:24px;gap:16px}.brand{font-weight:750;color:var(--ink);text-decoration:none}nav,.links{display:flex;gap:20px;flex-wrap:wrap}nav a[aria-current=page]{font-weight:750}main{min-height:60vh;padding-bottom:40px!important}.intro{padding:48px 0 24px;max-width:850px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;font-weight:750;color:var(--accent)}h1{font-size:clamp(2.4rem,6vw,4.4rem);line-height:1.08;letter-spacing:-.045em;margin:16px 0 24px}h2{line-height:1.2;font-size:1.65rem}.lead{font-size:1.2rem;color:var(--muted);max-width:750px}.panel{padding:var(--space);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.faq{padding:24px 0}details{padding:14px 0;border-bottom:1px solid var(--line)}summary{font-weight:650;cursor:pointer}footer{border-top:1px solid var(--line);padding-top:24px!important;padding-bottom:24px!important;color:var(--muted);font-size:.85rem}.skip{position:absolute;top:-100px;background:var(--surface);padding:12px}.skip:focus{top:8px}a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}@media(max-width:700px){.bar{align-items:flex-start;flex-direction:column}.intro{padding-top:30px}.panel{padding:18px}}

h1,h2,h3{font-family:var(--font-heading)}

:root{color-scheme:light}
/* Layout variants are selected independently through validated body classes. */
.header-compact .bar{padding-top:14px;padding-bottom:14px}
.header-masthead .bar{justify-content:center;text-align:center;padding-top:32px;padding-bottom:20px}
.header-masthead .brand{font:700 clamp(1.5rem,4vw,2.5rem)/1.2 var(--font-heading)}
.header-masthead>header{border-top:6px solid var(--ink);border-bottom:3px double var(--ink)}
.header-floating>header{margin:24px auto 0;max-width:1072px;background:var(--surface);border:2px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow)}
.nav-below .bar{flex-direction:column;align-items:flex-start}
.header-masthead.nav-below .bar{align-items:center}
.cards-outlined .panel,.cards-outlined .rank,.cards-outlined .card{border-top:3px solid var(--accent)}
.cards-elevated .panel,.cards-elevated .rank,.cards-elevated .card{box-shadow:var(--shadow);border:2px solid var(--line)}
.cards-ruled .panel,.cards-ruled .rank,.cards-ruled .card{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;padding-left:0;padding-right:0}
.home.home-dashboard .intro{max-width:none;padding:28px 0 16px;border-bottom:1px solid var(--line)}
.home.home-dashboard h1{font-size:clamp(1.8rem,4vw,3rem);letter-spacing:-.04em}
.home.home-dashboard .benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;list-style:none;padding:0}
.home.home-dashboard .benefits li{padding:18px;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--accent)}
.home.home-magazine main{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);column-gap:48px;align-items:start}
.home.home-magazine .intro{grid-column:1/-1;max-width:none;border-bottom:3px double var(--ink);margin-bottom:20px}
.home.home-magazine .intro h1{max-width:900px;font-size:clamp(2.6rem,7vw,5.5rem);letter-spacing:-.04em;font-weight:500}
.home.home-magazine .related{grid-column:1/-1;border-top:3px double var(--ink);margin-top:24px}
.home.home-magazine .ad,.home.home-magazine .affiliates{grid-column:1/-1}
.home.home-grid .intro{max-width:900px;margin:auto;text-align:center;padding-top:64px}
.home.home-grid .lead{margin-left:auto;margin-right:auto}
.home.home-grid .benefits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;padding:0;gap:24px}
.home.home-grid .benefits li{padding:var(--space);border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}
.home.home-list main{max-width:900px}
.home.home-list .intro{padding-top:40px}
.home.home-list h1{font-size:clamp(2rem,5vw,3rem);letter-spacing:-.05em}
.home.home-list .benefits{list-style:none;padding:0;counter-reset:benefit}
.home.home-list .benefits li{counter-increment:benefit;padding:18px 0;border-top:1px solid var(--line)}
.home.home-list .benefits li::before{content:counter(benefit,decimal-leading-zero) ' / ';color:var(--muted)}
/* Named themes own their common UI; the default preserves the legacy appearance. */
body:not(.theme-default){overflow-wrap:anywhere;--green:var(--accent);--lime:var(--accent);--card:var(--surface);--soft:var(--paper)}
/* Existing source-site cards and button links use the same theme tokens. */
:where(body:not(.theme-default)) .card{padding:var(--space);background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius)}
body:not(.theme-default) .button,body:not(.theme-default) .button:hover{background:var(--accent);color:var(--accent-contrast);border-radius:var(--radius)}
body:not(.theme-default)>header{background:var(--surface)}
body:not(.theme-default) .bar{height:auto}
body:not(.theme-default) .bar>*,body:not(.theme-default) main>*{min-width:0}
body:not(.theme-default) .wrap{width:100%}
body:not(.theme-default) nav a{padding:4px 0}
body:not(.theme-default) nav a[aria-current=page]{text-decoration-thickness:3px}
body:not(.theme-default) :is(input,textarea,select){font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-width:100%;padding:12px}
body:not(.theme-default) button{border-color:var(--accent);border-radius:var(--radius)}
body:not(.theme-default) :is(input,textarea,select,button,a,summary):focus-visible{outline:3px solid var(--accent);outline-offset:4px}
body:not(.theme-default) .skip{z-index:10}
@media(max-width:700px){
 .header-floating>header{margin:12px 12px 0}
 .header-masthead .bar{text-align:left;align-items:flex-start}
 .home.home-dashboard .benefits,.home.home-grid .benefits{grid-template-columns:1fr}
 .home.home-magazine main{display:block}
 .home.home-grid .intro{padding-top:36px;text-align:left}
 body:not(.theme-default) .bar{align-items:flex-start}
 body:not(.theme-default) .panel{padding:18px}
}
/* playful theme details. Layout choices live in theme.json. */
.theme-playful h1{letter-spacing:-.055em}
.theme-playful .eyebrow{display:inline-block;padding:6px 12px;background:var(--accent);color:var(--accent-contrast);border-radius:999px}
.theme-playful .related{padding:12px 0 24px}
.theme-playful .related a{padding:10px 16px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}

.theme-playful .eyebrow:empty{display:none}
