/* ============================================================
   Eazler AI Lab — Editorial Article Theme
   Swiss-grid editorial system. No gradients. Light/Dark.
   ============================================================ */
:root{
  --font-sans:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Segoe UI",Roboto,"Noto Sans KR",sans-serif;
  --font-serif:"Fraunces",Georgia,"Times New Roman",serif;
  --font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --paper:#f6f5f0; --paper-2:#eeece4; --surface:#fffefb; --surface-2:#f2f0e9;
  --ink:#191b1f; --ink-2:#42464e; --muted:#71757d; --faint:#9b9ea5;
  --line:#e0ddd3; --line-2:#ebe8df; --line-strong:#c9c6ba;
  --accent:#1c46d6; --accent-ink:#16379f;
  --green:#1f8a5c; --orange:#c8722a; --purple:#6b54d6; --red:#c63b34; --teal:#1f8fa3;
  --maxw:960px;
}
[data-theme="dark"]{
  --paper:#0d0f13; --paper-2:#14161b; --surface:#14161b; --surface-2:#1a1d23;
  --ink:#edeef1; --ink-2:#bcc0c8; --muted:#868a93; --faint:#5a5f69;
  --line:#262a31; --line-2:#1d2027; --line-strong:#343943;
  --accent:#7d9bff; --accent-ink:#a9bdff;
  --green:#39c79a; --orange:#f2a35a; --purple:#a890ff; --red:#ff6b6b; --teal:#3fd0e0;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--font-sans);font-size:17px;line-height:1.78;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  word-break:keep-all;overflow-wrap:break-word;
  transition:background-color .4s ease,color .4s ease;
}
::selection{background:color-mix(in oklab,var(--accent) 26%,transparent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}

.wrap{max-width:var(--maxw);margin:0 auto;padding:clamp(30px,5vw,56px) clamp(18px,4vw,32px) 96px}

/* ---------- Typography ---------- */
h1{font-size:clamp(29px,4.6vw,46px);line-height:1.16;letter-spacing:-.03em;margin:0 0 18px;font-weight:800}
h2{font-size:clamp(21px,2.8vw,28px);line-height:1.25;letter-spacing:-.022em;margin:54px 0 18px;font-weight:750;
   border-top:1px solid var(--line);padding-top:30px}
h3{font-size:clamp(17px,2vw,20px);line-height:1.35;letter-spacing:-.015em;margin:30px 0 10px;font-weight:700}
h4{font-size:15px;margin:20px 0 8px;font-weight:700}
p{margin:13px 0;max-width:74ch}
b,strong{font-weight:700;color:var(--ink)}
a{color:var(--accent-ink);text-decoration:none;border-bottom:1px solid color-mix(in oklab,var(--accent) 35%,transparent)}
a:hover{border-bottom-color:var(--accent)}
ul,ol{padding-left:22px;max-width:74ch}
li{margin:7px 0}
hr{border:0;border-top:1px solid var(--line);margin:36px 0}
small,.small{font-size:13.5px;color:var(--muted);line-height:1.65}
.muted{color:var(--muted)}
sup{font-size:.7em}

/* ---------- Hero / header block ---------- */
.hero{padding:8px 0 28px;margin-bottom:8px;border:0;background:none;box-shadow:none;border-radius:0}
.hero h1{margin-top:18px}
.eyebrow,.badge{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-mono);font-size:12px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink);font-weight:500;
  padding:0 0 5px;border:0;border-bottom:1.5px solid var(--accent);border-radius:0;background:none}
.lead,.subtitle{font-size:clamp(16px,1.7vw,19px);line-height:1.7;color:var(--ink-2);max-width:70ch;margin:16px 0}
.hero .lead,.hero .subtitle{margin-top:18px}

.meta{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 6px}
.meta>span,.pill{display:inline-block;font-family:var(--font-mono);font-size:12px;letter-spacing:.01em;
  color:var(--ink-2);background:var(--surface);border:1px solid var(--line-strong);border-radius:0;padding:6px 11px}

/* ---------- TOC ---------- */
.toc{margin:26px 0 8px;border:0;background:none;padding:0}
.toc h2{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);font-weight:500;border:0;padding:0;margin:0 0 12px}
.toc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line)}
.toc-grid a{display:block;background:var(--surface);border:0;border-radius:0;padding:13px 16px;
  color:var(--ink-2);font-weight:600;font-size:14.5px;letter-spacing:-.01em}
.toc-grid a:hover{background:var(--surface-2);color:var(--ink)}
/* inline TOCs (anchors are direct children) become wrapped chips */
.toc>a{display:inline-block;margin:0 8px 8px 0;background:var(--surface);border:1px solid var(--line-strong);
  border-radius:0;padding:9px 13px;color:var(--ink-2);font-weight:600;font-size:14px;letter-spacing:-.01em}
.toc>a:hover{background:var(--surface-2);color:var(--ink)}

/* ---------- Cards / grids ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:20px 0}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid.three{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:20px 0}
.matrix{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:20px 0}
.card,.mini,.box{background:var(--surface);border:1px solid var(--line);border-radius:0;padding:20px 22px;
  box-shadow:none;display:flex;flex-direction:column}
.card h3,.mini h3,.box h3{margin-top:0}
.card>h2:first-child{margin-top:0}
.card h2{border-top:0;padding-top:0;margin-top:6px}
.card.wide{grid-column:1 / -1}
.card.wide>p .tag{margin-bottom:0}
.card p,.mini p,.box p{max-width:none}
.card>*:last-child,.mini>*:last-child,.box>*:last-child{margin-bottom:0}
.box strong{display:block;margin-bottom:6px;font-size:15.5px;letter-spacing:-.01em}
.mini.good,.card.good{border-left:3px solid var(--green)}
.mini.warn,.card.warn{border-left:3px solid var(--orange)}
.mini.danger,.card.danger{border-left:3px solid var(--red)}

/* 12-column system (agent-skills report): a .grid that holds .span-* children
   becomes a true 12-col grid so span-4/8/12 cards lay out in reading order
   instead of scattering across an auto-fit grid. */
.grid:has(> [class*="span-"]){grid-template-columns:repeat(12,minmax(0,1fr));align-items:start}
.span-4{grid-column:span 4}
.span-6{grid-column:span 6}
.span-8{grid-column:span 8}
.span-12{grid-column:span 12}
@media(max-width:760px){
  .grid:has(> [class*="span-"]){grid-template-columns:minmax(0,1fr)}
  .grid:has(> [class*="span-"]) > [class*="span-"]{grid-column:auto}
}

/* ---------- Tags ---------- */
.tag{--tagc:var(--accent);display:inline-block;align-self:flex-start;white-space:nowrap;font-family:var(--font-mono);
  font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px;padding:4px 9px;border-radius:0;
  background:color-mix(in oklab,var(--tagc) 14%,var(--surface));
  color:color-mix(in oklab,var(--tagc) 72%,var(--ink));
  border:1px solid color-mix(in oklab,var(--tagc) 32%,transparent)}
.tag.green{--tagc:var(--green)} .tag.orange{--tagc:var(--orange)}
.tag.purple{--tagc:var(--purple)} .tag.gray{--tagc:var(--muted)} .tag.red{--tagc:var(--red)}
.badge.green{--tagc:var(--green)}

/* ---------- Callouts ---------- */
.callout{--c:var(--accent);border:1px solid var(--line);border-left:3px solid var(--c);border-radius:0;
  background:color-mix(in oklab,var(--c) 7%,var(--surface));padding:16px 20px;margin:20px 0}
.callout>*:first-child{margin-top:0}.callout>*:last-child{margin-bottom:0}
.callout.warning,.callout.warn{--c:var(--orange)}
.callout.success,.callout.good{--c:var(--green)}
.callout.purplebox{--c:var(--purple)}
.callout.danger{--c:var(--red)}
.callout.note{--c:var(--accent)}
.callout.ok{--c:var(--green)}

/* ---------- Tables ---------- */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:0;background:var(--surface);margin:20px 0}
table{width:100%;border-collapse:collapse;min-width:640px;font-size:14.5px}
th,td{padding:13px 16px;border-bottom:1px solid var(--line-2);vertical-align:top;text-align:left;line-height:1.55}
thead th{background:var(--surface-2);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.04em;
  text-transform:uppercase;color:var(--muted);font-weight:500;border-bottom:1px solid var(--line-strong)}
tbody tr:last-child td{border-bottom:0}
td.score,.score td{font-weight:800;color:var(--ink);white-space:nowrap;font-family:var(--font-serif);font-size:17px}

/* div.score (marketing summary strip) */
div.score{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;margin:20px 0;
  background:var(--line);border:1px solid var(--line)}
div.score>div{background:var(--surface);padding:16px 18px;display:flex;flex-direction:column;gap:5px}
div.score>div>b{font-size:15px}
div.score>div>span{color:var(--muted);font-size:13.5px;line-height:1.55}

/* ---------- KPI / stats ---------- */
.kpi{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0;
  font-family:var(--font-serif);font-size:26px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}
.kpi>.k,.kpi>div{flex:1 1 150px;background:var(--surface);border:1px solid var(--line);
  padding:16px 18px;display:flex;flex-direction:column;gap:6px}
.kpi .big{font-family:var(--font-serif);font-size:30px;font-weight:600;letter-spacing:-.02em;line-height:1;color:var(--ink)}
.kpi .cap{font-family:var(--font-sans);font-size:12.5px;font-weight:400;color:var(--muted);letter-spacing:0;line-height:1.45}
.kpi>div>b{font-family:var(--font-sans);font-size:15px;font-weight:700;letter-spacing:-.01em}
.kpi>div>span{font-family:var(--font-sans);font-size:13px;font-weight:400;color:var(--muted);line-height:1.5}

/* ---------- Benchmark bars ---------- */
.bench{display:grid;grid-template-columns:minmax(120px,210px) 1fr auto;gap:12px;align-items:center;margin:9px 0;font-size:13.5px}
.bench .lbl{color:var(--ink-2);font-weight:600;letter-spacing:-.01em}
.bench .bar{height:8px;background:var(--surface-2);border:1px solid var(--line);position:relative;overflow:hidden}
.bench .bar>span{display:block;height:100%;background:var(--accent)}
.bench .val{font-family:var(--font-mono);font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}

/* ---------- Timeline / flow / steps ---------- */
.timeline,.flow,.loop-diagram{margin:20px 0;display:flex;flex-direction:column;gap:1px;
  background:var(--line);border:1px solid var(--line)}
.timeline>div,.flow>div,.loop-diagram>div,.step{background:var(--surface);border:0;border-radius:0;padding:16px 20px;margin:0;box-shadow:none}
.step{display:grid;grid-template-columns:minmax(110px,150px) 1fr;gap:16px}
.step>strong,.step>b{color:var(--accent-ink);font-weight:700;font-size:14.5px;letter-spacing:-.01em;line-height:1.4}
.step>div{color:var(--ink-2)}
.loop-diagram .step,.flow .step{grid-template-columns:1fr}
.loop-diagram .step>strong,.flow .step>b{display:block;margin-bottom:4px}
.flow>div>br{display:none}
.flow>div>.small{display:block;margin-top:2px}
.flow>div>strong,.flow>div>b{color:var(--accent-ink);font-weight:700}

/* ---------- Code / formula / kbd ---------- */
code,.kbd,.code{font-family:var(--font-mono);font-size:.88em;background:var(--surface-2);
  border:1px solid var(--line);border-radius:0;padding:1px 6px;color:var(--accent-ink)}
.formula,pre{font-family:var(--font-mono);font-size:13px;line-height:1.7;background:var(--surface-2);
  border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:0;
  padding:16px 18px;margin:18px 0;white-space:pre-wrap;overflow-x:auto;color:var(--ink-2)}
.formula code,pre code{background:none;border:0;padding:0;color:inherit}

/* ---------- Sources / footer ---------- */
.source-list,.footnotes,.refs{font-size:14px;color:var(--ink-2)}
.source-list li,.refs li{margin-bottom:9px}

/* Documentation layout (sidebar TOC + main) */
.doc-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:30px;margin-top:8px}
.doc-layout>main{min-width:0}
.doc-layout>.toc{margin:0}
.doc-layout>.toc h3{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);font-weight:500;margin:0 0 10px;border:0;padding:0}
.doc-layout>.toc>a{display:block;margin:0;border:0;border-left:2px solid var(--line);background:none;
  border-radius:0;padding:6px 12px;font-size:13.5px;color:var(--ink-2)}
.doc-layout>.toc>a:hover{border-left-color:var(--accent);background:var(--surface-2);color:var(--ink)}
@media(min-width:920px){
  .doc-layout{grid-template-columns:228px minmax(0,1fr);gap:44px;align-items:start}
  .doc-layout>.toc{position:sticky;top:78px;max-height:calc(100vh - 100px);overflow:auto}
}
.footer{margin-top:54px;padding-top:24px;border-top:1px solid var(--line);
  font-family:var(--font-mono);font-size:12.5px;color:var(--faint);text-align:left}

/* ---------- Masthead (injected by report.js) ---------- */
.eaz-bar{position:fixed;top:0;left:0;height:2px;width:0;z-index:200;background:var(--accent)}
.eaz-mast{position:sticky;top:0;z-index:100;border-bottom:1px solid var(--line);
  background:color-mix(in oklab,var(--paper) 84%,transparent);
  backdrop-filter:saturate(150%) blur(14px);-webkit-backdrop-filter:saturate(150%) blur(14px)}
.eaz-mast-in{max-width:var(--maxw);margin:0 auto;padding:0 clamp(18px,4vw,32px);height:60px;
  display:flex;align-items:center;justify-content:space-between;gap:16px}
.eaz-brand{display:flex;align-items:center;gap:11px}
.eaz-mark{width:26px;height:26px;flex:none;background:var(--ink);position:relative;display:block}
.eaz-mark::before{content:"";position:absolute;left:5px;top:5px;width:8px;height:8px;background:var(--paper)}
.eaz-mark::after{content:"";position:absolute;right:5px;bottom:5px;width:4px;height:4px;background:var(--accent)}
.eaz-brand .nm{font-family:var(--font-sans);font-size:17px;font-weight:800;letter-spacing:-.025em;color:var(--ink);line-height:1.1}
.eaz-brand .nm span{font-weight:500;color:var(--ink-2)}
.eaz-brand .sb{font-family:var(--font-mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);line-height:1.05;margin-top:2px}
.eaz-back{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-size:13px;font-weight:600;color:var(--ink-2);
  border:0;padding:0}
.eaz-back svg{width:15px;height:15px}
.eaz-actions{display:flex;align-items:center;gap:10px}
.eaz-toggle{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line-strong);
  background:var(--surface);color:var(--ink-2);cursor:pointer;border-radius:0}
.eaz-toggle:hover{color:var(--ink);border-color:var(--ink)}
.eaz-toggle svg{width:16px;height:16px}
@media(max-width:560px){.eaz-brand .sb{display:none}.eaz-back span{display:none}}

/* ---------- Cross-report components (supplemental) ---------- */
/* TOC-sidebar + main: a .grid that wraps a <nav> table-of-contents and <main>
   (coding-agents, gbrain). The generic .grid is an equal auto-fit grid, which
   blows the sidebar up to half-width — turn this specific pattern into a proper
   narrow-sidebar documentation layout. */
.grid:has(> main){display:block;gap:0}
.grid:has(> main) > main{min-width:0}
.grid:has(> main) > nav h2{font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);font-weight:500;margin:0 0 12px;border:0;padding:0}
.grid:has(> main) > nav a{display:block;margin:0;border:0;border-left:2px solid var(--line);
  padding:6px 0 6px 12px;font-size:13px;line-height:1.5;color:var(--ink-2)}
.grid:has(> main) > nav a:hover{border-left-color:var(--accent);color:var(--ink)}
@media(min-width:880px){
  .grid:has(> main){display:grid;grid-template-columns:228px minmax(0,1fr);gap:44px;align-items:start}
  .grid:has(> main) > nav{position:sticky;top:78px;max-height:calc(100vh - 100px);overflow:auto}
}

/* trend card grid (coding-agents) */
.trendgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:18px 0}
.trend{background:var(--surface);border:1px solid var(--line);padding:15px 16px}
.trend b{display:block;font-weight:700;letter-spacing:-.01em;margin-bottom:6px;color:var(--ink)}
.trend .small{display:block}

/* status table cells (yes / maybe / no / accent) */
td.yes,td.good{color:var(--green);font-weight:600}
td.maybe,td.amber{color:var(--orange);font-weight:600}
td.no,td.danger{color:var(--red);font-weight:600}
td.accent{color:var(--accent-ink);font-weight:600}

/* amber tag variant */
.tag.amber{--tagc:var(--orange)}

/* section eyebrow label (agent-skills) */
.section-label{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent-ink);font-weight:500;margin:32px 0 12px}

/* checklist with box bullets (dev manual) */
.checklist{list-style:none;padding-left:2px;margin:14px 0}
.checklist li{position:relative;padding-left:26px;margin:7px 0}
.checklist li::before{content:"\2610";position:absolute;left:0;top:-1px;color:var(--accent);font-size:1.05em;line-height:inherit}

/* small notes / footnotes */
.toc-note{font-family:var(--font-sans);font-size:12.5px;color:var(--muted);margin-top:10px;line-height:1.6}
p.foot,.foot{font-size:13px;color:var(--muted)}
.pseudo-code{color:var(--ink-2)}

/* ---------- Print ---------- */
@media print{
  body{background:#fff;color:#111}
  .eaz-mast,.eaz-bar{display:none}
  .wrap{max-width:none;padding:0}
  .toc{display:none}
  a{color:#111;border:0}
  .card,.mini,.box,.table-wrap,.callout{break-inside:avoid}
}
