/* Shared by every www.dhisha.app page: colour tokens (dark-first, matching the Dhisha app), base type,
   top bar with logo + menu, sign-in dialog, trial badge, locked cards. */
:root{
  --bg:#0a0e1a; --surface:#141929; --card:#1e2539; --ink:#e8eaf6; --muted:#9aa6c0; --line:#2a3350; --line-soft:#1f2740; --chart-line:#55618c;
  --accent:#e9c140; --accent-soft:#3a3218; --now:#7aa7ff; --now-soft:#1c2a4d; --up:#4fd18b; --down:#ff6b7d;
  --display:"Marcellus","Palatino Linotype",Georgia,serif; --body:"Source Sans 3","Segoe UI",system-ui,sans-serif; --mono:"JetBrains Mono",Consolas,monospace;
  --p-sun:#f08a4b; --p-moon:#b9c6e0; --p-mars:#f0687c; --p-mercury:#6cc98a; --p-jupiter:#f0c94a;
  --p-venus:#e98bd0; --p-saturn:#97a6f0; --p-rahu:#c4ae98; --p-ketu:#b8aa9c; color-scheme:dark;
}
@media (prefers-color-scheme: light){:root:not([data-theme="dark"]){
  --bg:#f3f4f8; --surface:#ffffff; --card:#f7f8fc; --ink:#1d2340; --muted:#5d6482; --line:#c9cde0; --line-soft:#e3e5ef; --chart-line:#aab1cb;
  --accent:#9a6a00; --accent-soft:#f6e7cc; --now:#2f6bd8; --now-soft:#dde7fb; --up:#1d8a4f; --down:#c62c43;
  --p-sun:#c0561a; --p-moon:#5a6c8c; --p-mars:#b3263a; --p-mercury:#2f8a4e; --p-jupiter:#a07800;
  --p-venus:#b04c94; --p-saturn:#3b4b8f; --p-rahu:#6b5a4a; --p-ketu:#7d6f63; color-scheme:light}}
:root[data-theme="light"]{
  --bg:#f3f4f8; --surface:#ffffff; --card:#f7f8fc; --ink:#1d2340; --muted:#5d6482; --line:#c9cde0; --line-soft:#e3e5ef; --chart-line:#aab1cb;
  --accent:#9a6a00; --accent-soft:#f6e7cc; --now:#2f6bd8; --now-soft:#dde7fb; --up:#1d8a4f; --down:#c62c43;
  --p-sun:#c0561a; --p-moon:#5a6c8c; --p-mars:#b3263a; --p-mercury:#2f8a4e; --p-jupiter:#a07800;
  --p-venus:#b04c94; --p-saturn:#3b4b8f; --p-rahu:#6b5a4a; --p-ketu:#7d6f63; color-scheme:light}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.5;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
a{color:var(--accent)}
.wrap{max-width:1180px;margin:0 auto;padding-inline:20px;padding-block:20px 56px;display:flex;flex-direction:column;gap:36px}
h1,h2,h3{font-family:var(--display);font-weight:400;text-wrap:balance;margin:0}
h1{font-size:clamp(28px,4vw,40px)} h2{font-size:24px} h3{font-size:18px;margin-bottom:8px}
.eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.topbar{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:16px}
.brand{font-family:var(--display);font-size:22px;color:var(--accent);text-decoration:none;letter-spacing:.04em}
footer{color:var(--muted);font-size:13px;display:flex;flex-direction:column;gap:6px;max-width:85ch;border-top:1px solid var(--line);padding-top:16px}
@media (prefers-reduced-motion: no-preference){.fade{animation:fade .25s ease-out}@keyframes fade{from{opacity:.4}to{opacity:1}}}

/* Top bar: logo + name, page menu, account */
.topbar{border-bottom:1px solid var(--line);padding-bottom:14px}
.brand{display:flex;align-items:center;gap:10px}
.brand img{width:36px;height:36px;border-radius:50%;display:block}
nav.menu{display:flex;gap:4px;flex-wrap:wrap;flex:1 1 auto}
nav.menu a{color:var(--muted);text-decoration:none;font-weight:600;padding:6px 12px;border-radius:99px;font-size:15px}
nav.menu a:hover{color:var(--ink);background:var(--line-soft)}
nav.menu a[aria-current="page"]{color:var(--ink);background:var(--accent-soft)}
@media (max-width:640px){nav.menu{order:3;flex-basis:100%}.acct{flex-wrap:nowrap;margin-left:auto}.acct .who{display:none}.acct .btn{padding:6px 11px}}
/* Account: sign-in / trial badge in the top bar, sign-in dialog, locked-chart card */
.acct{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn{border-radius:4px;padding:7px 14px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.btn.primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}
.btn.wide{width:100%;padding-block:10px}
.btn:disabled{opacity:.6;cursor:default}
.badge{font-size:12.5px;border:1px solid var(--line);border-radius:99px;padding:3px 10px;color:var(--muted);white-space:nowrap}
.badge.on{border-color:var(--up);color:var(--up)}
.badge.off{border-color:var(--down);color:var(--down)}
.who{font-size:13px;color:var(--muted);max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.acct .linkbtn,.notice .linkbtn,.lock .linkbtn,.state .linkbtn,dialog.auth .linkbtn{background:none;border:0;color:var(--accent);font:inherit;cursor:pointer;padding:0;text-decoration:underline}
.notice{border:1px solid var(--accent);background:var(--accent-soft);border-radius:6px;padding:10px 14px;font-size:14px}
dialog.auth{border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);padding:24px;width:min(400px,calc(100vw - 32px))}
dialog.auth::backdrop{background:rgba(5,8,16,.7)}
dialog.auth h2{margin:0 28px 4px 0}
dialog.auth form{display:flex;flex-direction:column;gap:10px;margin-top:14px}
dialog.auth label{font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:4px}
dialog.auth input{font:inherit;padding:9px 10px;border-radius:4px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}
dialog.auth .or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;margin-top:14px}
dialog.auth .or::before,dialog.auth .or::after{content:"";flex:1;border-top:1px solid var(--line)}
dialog.auth .err{color:var(--down);font-size:13.5px;min-height:1em}
dialog.auth .x{position:absolute;top:10px;right:12px;background:none;border:0;color:var(--muted);font-size:22px;cursor:pointer}
#gbtn[hidden],dialog.auth .or[hidden]{display:none}
#gbtn{display:flex;justify-content:center;margin-top:14px;min-height:40px}
.lock{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:28px 24px;max-width:560px;margin-block:32px;display:flex;flex-direction:column;gap:12px}
.lock .acts{display:flex;gap:8px;flex-wrap:wrap}

/* A dasha lord's houses: the house it sits in, circled, then the houses it rules ("rules 1, 6") */
.lh{display:inline-flex;align-items:center;gap:5px;color:var(--muted)}
.lh .s{display:inline-grid;place-items:center;width:19px;height:19px;border-radius:50%;border:1px solid var(--muted);color:var(--ink);font-size:10.5px;font-weight:600}

/* Vedic charts (vedic_chart.js) and the North / South toggle */
figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
figcaption .t{font-family:var(--body);font-weight:600;font-size:18px} figcaption .s{color:var(--muted);font-size:13px}
svg.chart{width:100%;height:auto;max-width:100%;display:block;background:var(--surface);border:1px solid var(--line);border-radius:4px}
svg.chart line,svg.chart rect.frame,svg.chart path.dia{stroke:var(--chart-line);stroke-width:1.4;fill:none}
svg.chart text{font-family:var(--body)}
svg.chart .sign{fill:var(--muted);font-size:12.5px;font-family:var(--mono)}
svg.chart .asc{fill:var(--accent);font-size:11.5px;font-weight:700;letter-spacing:.06em}
svg.chart .pl{font-size:13.5px;font-weight:700}
svg.chart .h1fill{fill:var(--accent-soft);stroke:none}
.toggle{display:inline-flex;border:1px solid var(--line);border-radius:4px;overflow:hidden}
.toggle button{background:var(--surface);color:var(--muted);border:0;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer}
.toggle button[aria-pressed="true"]{background:var(--accent-soft);color:var(--ink);font-weight:600}
svg.chart g.hz{cursor:pointer}
svg.chart g.hz .hit{fill:transparent;stroke:none}
svg.chart g.hz:hover .hit{fill:var(--line-soft);fill-opacity:.6}
svg.chart g.hz:focus{outline:none} svg.chart g.hz:focus-visible .hit{stroke:var(--now);stroke-width:2}
svg.chart .selfill{fill:var(--now-soft);stroke:var(--now);stroke-width:2}
svg.chart .flow{fill:none;stroke-linecap:round;pointer-events:none}
@media (prefers-reduced-motion: no-preference){svg.chart .flow{animation:flow 1.4s linear infinite}@keyframes flow{to{stroke-dashoffset:-24}}}
svg.chart .tr{font-size:11px;opacity:.85}
svg.chart .trline{stroke-width:1;opacity:.85}
svg.chart .tint{stroke:none;fill-opacity:.12}
svg.chart text{pointer-events:none}
