/* Shared by bhasini.com/api/ and the API landing pages that tools/Bhasini.SiteGen writes under /api/. */
body { margin: 0; font-family: 'Segoe UI', system-ui, sans-serif; background: #f4f1ea; color: #222; line-height: 1.6; }
main { max-width: 860px; margin: 0 auto; padding: 32px 16px 64px; }
h1 { color: #1f2a5c; margin-bottom: .2em; } h2 { color: #1f2a5c; margin-top: 2em; font-size: 1.2rem; }
a { color: #2d3a8c; }
.lead { font-size: 1.1rem; color: #4a5488; margin-top: 0; }
pre { background: #1f2a5c; color: #f4f1ea; padding: 14px 16px; border-radius: 8px; overflow-x: auto; font-size: .88rem; line-height: 1.5; }
code { font-family: Consolas, 'Cascadia Mono', monospace; }
p code, li code, td code { background: #e9e4d8; padding: .1em .35em; border-radius: 4px; }
.card { background: #fff; border-radius: 10px; padding: 18px 20px; box-shadow: 0 1px 2px rgba(31,42,92,.08); }
.grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.pack { display: flex; flex-direction: column; gap: 4px; }
.pack .price { font-size: 1.6rem; font-weight: 700; color: #1f2a5c; }
.pack .chars { color: #4a5488; }
.pack .note { font-size: .85rem; color: #6b6f80; flex: 1; }
label { display: block; font-size: .9rem; color: #4a5488; margin: 10px 0 4px; }
input[type=email], input[type=text], input[type=password] { width: 100%; box-sizing: border-box; padding: .6rem .7rem; border: 1px solid #d6d0c2; border-radius: 8px; font: inherit; background: #fff; }
input:focus { outline: 2px solid #f07b2b; outline-offset: 1px; }
button { font: inherit; font-weight: 600; padding: .6rem 1rem; border-radius: 8px; border: 0; cursor: pointer; background: #f07b2b; color: #fff; }
button:hover { background: #e2531f; }
button.secondary { background: #e9e4d8; color: #1f2a5c; }
button.secondary:hover { background: #ddd6c6; }
button:disabled { opacity: .6; cursor: wait; }
.row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin-top: 14px; }
.muted { color: #6b6f80; font-size: .9rem; }
.error { background: #fdecea; color: #8a1f11; padding: .6rem .8rem; border-radius: 8px; margin-top: 12px; }
.success { background: #e8f5ec; color: #1d5b33; padding: .6rem .8rem; border-radius: 8px; margin-top: 12px; }
.key { display: flex; gap: 8px; align-items: center; background: #1f2a5c; color: #fff; padding: 10px 12px; border-radius: 8px; word-break: break-all; font-family: Consolas, monospace; }
.key span { flex: 1; }
.balance { font-size: 2.2rem; font-weight: 700; color: #1f2a5c; line-height: 1.2; }
table { width: 100%; border-collapse: collapse; background: #fff; border-radius: 8px; overflow: hidden; font-size: .92rem; }
th, td { text-align: left; padding: .5rem .7rem; border-bottom: 1px solid #e3ded2; }
th { background: #faf8f3; font-size: .82rem; color: #6b6f80; }
td.num, th.num { text-align: right; }
.tabs { display: flex; gap: 6px; margin-bottom: 10px; }
.tabs button { background: transparent; color: #4a5488; padding: .4rem .8rem; }
.tabs button[aria-selected=true] { background: #1f2a5c; color: #fff; }
[hidden] { display: none !important; }
.native { font-family: 'Noto Sans', 'Nirmala UI', 'Segoe UI', system-ui, sans-serif; font-size: 1.1em; }
.cta { display: inline-block; padding: .65rem 1.1rem; border-radius: 8px; background: #f07b2b; color: #fff; font-weight: 600; text-decoration: none; }
.cta:hover { background: #e2531f; }
.link-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 6px 14px; padding: 0; list-style: none; }
details { background: #fff; border-radius: 8px; padding: .6rem .9rem; margin: 8px 0; }
summary { cursor: pointer; font-weight: 600; color: #1f2a5c; }
nav.crumbs { font-size: .9rem; }
