/* Element defaults + type roles. Kept deliberately small. */
*,*::before,*::after{box-sizing:border-box}
/* agentbooks is a LIGHT system. Declaring color-scheme keeps native UI — scrollbars, select
   popups, search clear buttons, autofill, spinners, date pickers — light even when the user's
   OS or browser prefers dark. Without this line a light page still shows dark browser chrome. */
:root{color-scheme:light}
html{-webkit-text-size-adjust:100%;background:var(--surface-page)}
body{margin:0;background:var(--surface-page);color:var(--text-primary);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);font-weight:var(--weight-regular);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4,h5,h6{margin:0;font-family:var(--font-sans);font-weight:var(--weight-semibold);color:var(--text-primary);text-wrap:balance}
h1{font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:var(--ls-h1)}
h2{font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2)}
h3{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3)}
h4{font-size:var(--fs-h4);line-height:var(--lh-h4);letter-spacing:var(--ls-h4)}
p{margin:0;text-wrap:pretty}
a{color:var(--text-link);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color var(--duration-fast) var(--ease-standard)}
a:hover{color:var(--text-link-hover)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-xs)}
hr{border:0;border-top:1px solid var(--border-default);margin:0}
code,kbd,pre,samp{font-family:var(--font-mono);font-size:var(--fs-code)}
::selection{background:var(--blue-200);color:var(--graphite-950)}
table{border-collapse:collapse;font-variant-numeric:tabular-nums}

/* Type roles */
.ab-display{font-family:var(--font-display);font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:var(--ls-display);font-weight:var(--weight-semibold)}
.ab-lead{font-size:var(--fs-lead);line-height:var(--lh-lead);color:var(--text-secondary);max-width:var(--measure-lead)}
.ab-body-lg{font-size:var(--fs-body-lg);line-height:var(--lh-body)}
.ab-body-sm{font-size:var(--fs-body-sm);line-height:1.55}
.ab-caption{font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--text-tertiary)}
.ab-label{font-size:var(--fs-label);line-height:var(--lh-tight);letter-spacing:var(--ls-label);text-transform:uppercase;font-weight:var(--weight-semibold);color:var(--text-tertiary)}
.ab-metadata{font-family:var(--font-mono);font-size:var(--fs-metadata);letter-spacing:var(--ls-metadata);color:var(--text-tertiary);text-transform:uppercase}
.ab-reading{font-family:var(--font-reading);font-size:var(--fs-body-lg);line-height:var(--lh-reading);max-width:var(--measure-reading)}
.ab-hairline-grid{background-image:linear-gradient(to right,var(--border-subtle) 1px,transparent 1px);background-size:80px 100%}
