/* The ledger's own rules. Colour tokens (--bg --fg --muted --line --chip --accent --ok --warn --bad --c0..--c7) come from the vendored chrome
   stylesheet /assets/ir.css, which is linked AFTER this file so its :root wins. The site is white only: no dark variant anywhere. */
:root{color-scheme:light;--ctl:#767676}
*{box-sizing:border-box}html{font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--fg);background:#fff;-webkit-text-size-adjust:100%}
body{background:#fff;color:var(--fg);margin:0;max-width:1080px;padding:0 16px 48px;margin-inline:auto;overflow-wrap:break-word}
html>body{margin-inline:auto}            /* ir.css sets body{margin:0} after this file; the higher specificity keeps the column centred */
.ir-bar{margin:0 -16px}                  /* the chrome bar spans the full width of the body padding */
a:hover{text-decoration:underline}
.skip{position:absolute;left:-999px;top:0;background:var(--bg);color:var(--fg);padding:8px 12px;z-index:10}.skip:focus{left:8px}
header{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);position:relative}
header .brand{font-weight:700;font-size:1.15rem;color:var(--fg);text-decoration:none}
header nav{display:flex;flex-wrap:wrap;gap:2px 16px;align-items:center}
header nav>a,header nav summary{color:var(--fg);text-decoration:none;font-size:.97rem;padding:6px 0;cursor:pointer}header nav a:hover{text-decoration:underline}
header .lang{margin-left:auto;font-size:.95rem}
details.more{position:static}details.more summary{list-style:none}details.more summary::-webkit-details-marker{display:none}
details.more summary::after{content:"";display:inline-block;margin-left:6px;border:4px solid transparent;border-top-color:currentColor;vertical-align:-2px}
details.more[open] summary::after{border-top-color:transparent;border-bottom-color:currentColor;vertical-align:2px}
details.more .panel{position:absolute;right:0;top:100%;z-index:20;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 14px;margin-top:2px;box-shadow:0 6px 24px rgba(0,0,0,.18);display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:0 22px;min-width:300px}
details.more .panel a{color:var(--fg);text-decoration:none;padding:9px 0;font-size:.97rem}details.more .panel a:hover{text-decoration:underline}
.narrow{display:none}
h1{font-size:1.6rem;line-height:1.25;margin:22px 0 8px}h2{font-size:1.2rem;margin:28px 0 8px}h3{font-size:1rem;margin:18px 0 6px}
p.lead{font-size:1.08rem;margin:0 0 14px}.muted{color:var(--muted)}.small{font-size:.9rem}.bad{color:var(--bad)}
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px 0 14px;max-width:100%}
table{border-collapse:collapse;width:100%;font-size:.93rem;margin:0}th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:600;white-space:nowrap}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
tr.stale td,tr.unlisted td{color:var(--muted)}tr.stale td.bad,tr.stale .bad{color:var(--bad)}
.chip{display:inline-block;background:var(--chip);border-radius:4px;padding:1px 7px;font-size:.9rem;margin-right:4px;white-space:nowrap}
.chip.warn{color:var(--warn)}.chip.ok{color:var(--ok)}.chip.bad{color:var(--bad)}
.fact{font-size:1.15rem;margin:8px 0 2px}.fact strong{font-size:1.5rem}
.verify{font-size:.92rem;color:var(--muted);margin:0 0 16px;overflow-wrap:anywhere}.verify.bad{color:var(--bad)}
.notice{border:1px solid var(--line);border-left:4px solid var(--outline);border-radius:6px;padding:4px 14px;margin:12px 0;background:var(--chip)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));gap:14px}
.card{border:1px solid var(--line);border-radius:8px;padding:12px 14px;min-width:0}.card h3{margin:0 0 4px}.card .v{font-size:1.4rem;font-weight:700}
.up{color:var(--warn)}.down{color:var(--ok)}
svg.chart{width:100%;height:auto;max-width:640px;display:block;margin:6px 0 8px}
/* chart colours, dashes and markers are presentation attributes written by ledger/web/chart.py (PALETTE equals --c0..--c7 in the vendored ir.css, a test compares them); the classes are hooks */
svg .tick{font-size:13px}
svg.spark{width:100%;height:40px;display:block}
@media (max-width:640px){svg .tick{font-size:24px}}
ul.legend{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:.9rem}
svg.swl{display:inline-block;width:30px;height:12px;margin-right:6px;vertical-align:-1px}
.rangenav{display:flex;gap:6px;margin:6px 0;font-size:.9rem;align-items:center}.rangenav a{padding:3px 11px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--fg)}
.rangenav a[aria-current]{background:var(--fg);border-color:var(--fg);color:#fff}
pre,code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem}pre{background:var(--chip);padding:10px 12px;border-radius:6px;overflow:auto;max-width:100%}
code{overflow-wrap:anywhere}
footer{margin-top:40px;padding-top:14px;border-top:1px solid var(--line);font-size:.9rem;color:var(--muted)}footer strong{color:var(--fg)}
dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:4px 16px;margin:8px 0}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}
ol.rules li{margin-bottom:8px}
form.inline{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}form.inline input,form.inline select{padding:4px 6px;font:inherit;border:1px solid var(--ctl);border-radius:4px;background:#fff;color:var(--fg)}
.filters a{margin-right:10px}
@media (max-width:480px){html{font-size:15.5px}h1{font-size:1.4rem}dl{grid-template-columns:1fr;gap:0}dt{margin-top:6px}th,td{padding:5px 6px}}
@media (max-width:640px){
header nav{order:3;flex-basis:100%;flex-wrap:nowrap;justify-content:space-between;gap:0 8px}header nav .wide{display:none}.narrow{display:block}
details.more .panel{left:0;right:0;min-width:0}
}
@media (min-width:641px){.narrow{display:none!important}}
@media (max-width:760px){
table.stack,.stack tbody,.stack tr,.stack td{display:block;width:100%}
.stack thead{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.stack tr{border:1px solid var(--line);border-radius:8px;margin:0 0 10px;padding:4px 10px}
.stack td{display:flex;justify-content:space-between;align-items:baseline;gap:14px;border:0;padding:3px 0;text-align:right;white-space:normal;overflow-wrap:anywhere}
.stack td::before{content:attr(data-label);flex:none;max-width:45%;text-align:left;color:var(--muted);font-size:.9rem;font-weight:600;overflow-wrap:normal}
.stack td[data-empty]{display:none}
.stack td.num{white-space:normal}
.stack .cv{min-width:0;text-align:right}
}
.crumbs ol{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:2px 0;color:var(--muted)}.crumbs li+li::before{content:"›";margin:0 6px}.crumbs a{color:var(--muted)}
.cite pre{white-space:pre-wrap}.related li{margin-bottom:4px}
body.embed{max-width:none;padding:0;margin:0;background:#fff}
.embed-card{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--fg);text-decoration:none;max-width:420px}
.embed-card:hover{text-decoration:none;border-color:var(--outline)}
.embed-title{font-weight:600}.embed-value{font-size:1.6rem;font-weight:700;color:var(--fg)}.embed-value.bad{color:var(--bad)}
.embed-sub,.embed-foot{font-size:.9rem;color:var(--muted)}

/* home */
.hero h1{margin:16px 0 4px}.hero .lead{margin:0 0 10px}
form.search{display:flex;gap:8px;margin:8px 0 14px}
form.search input[type=search]{flex:1;min-width:0;padding:11px 12px;font:inherit;border:1px solid var(--ctl);border-radius:8px;background:var(--bg);color:var(--fg)}
form.search button,.btn{padding:11px 16px;font:inherit;border:1px solid var(--fg);border-radius:8px;background:var(--fg);color:#fff;cursor:pointer}
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:8px 0 14px}
@media (min-width:700px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}}
.tile{border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:0;display:flex;flex-direction:column;gap:2px}
.tile .tl{font-size:.9rem;color:var(--muted);margin:0;line-height:1.3}.tile .tl a{color:var(--muted);text-decoration:none}.tile .tl a:hover{text-decoration:underline}
.tile .tv{font-size:1.45rem;font-weight:700;line-height:1.2;overflow-wrap:anywhere}.tile .tv small{font-size:.9rem;font-weight:400;color:var(--muted)}
.tile .tm{font-size:.9rem;color:var(--muted);margin:0;line-height:1.35}.tile .tv.none{color:var(--muted)}
.notice.slim{padding:2px 12px;margin:8px 0}
.cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr));gap:12px}
.cats .card h3{margin:0 0 2px}.cats .card p{margin:4px 0 0}
.up2{color:var(--warn)}.dn2{color:var(--ok)}
.chips a{margin-right:6px}
/* grouped LLM list */
details.model{border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin:0 0 10px}
details.model>summary{cursor:pointer;list-style:none}details.model>summary::-webkit-details-marker{display:none}
details.model>summary::before{content:"▸";display:inline-block;margin-right:8px;color:var(--muted)}details.model[open]>summary::before{content:"▾"}
details.model .mname{font-weight:600}details.model .mnums{color:var(--muted);font-size:.92rem}
details.nested{margin:8px 0 2px}details.nested summary{cursor:pointer;color:var(--muted);font-size:.92rem}
.filterform{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:end;margin:8px 0 14px}
.filterform label{display:flex;flex-direction:column;font-size:.9rem;color:var(--muted);gap:2px}
.filterform input,.filterform select{padding:8px 10px;font:inherit;border:1px solid var(--ctl);border-radius:6px;background:var(--bg);color:var(--fg);width:9.5rem;max-width:100%}
.filterform input[type=search]{width:16rem}
.gaps{border-left:4px solid var(--warn);padding:2px 12px;margin:10px 0;background:var(--chip);border-radius:0 6px 6px 0}

footer.module-footer{margin-top:40px}
/* umbrella pages (home, hubs, legal docs, status) */
.hero-ir h1{font-size:2rem;margin:28px 0 6px}.hero-ir .lead{max-width:46rem}
.modcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:14px;margin:18px 0}
.modcard{border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;min-width:0}
.modcard h2{margin:0;font-size:1.1rem}.modcard h2 a{color:var(--fg);text-decoration:none}.modcard h2 a:hover{text-decoration:underline}
.modcard .mv{font-size:1.6rem;font-weight:700;line-height:1.2;overflow-wrap:anywhere}.modcard .ml{color:var(--muted);font-size:.92rem}
.modcard .ms{font-size:.88rem;color:var(--muted)}.modcard .ms.updating{color:var(--warn)}
.modcard ul{list-style:none;margin:6px 0 0;padding:0}.modcard li{margin:0 0 8px}
.doc{max-width:46rem}.doc table{margin:10px 0}.doc blockquote{margin:12px 0;padding:2px 14px;border-left:4px solid var(--line);color:var(--muted)}
.doc .tw table th{white-space:normal}
.hubgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:12px}
.placeholder-flag{border:2px dashed var(--bad);color:var(--bad);padding:6px 12px;border-radius:6px;margin:12px 0}
.statusrow .ok{color:var(--ok)}.statusrow .bad{color:var(--bad)}.statusrow .warn{color:var(--warn)}
