/* CI-AIGAF v1.0 publication — extends assets/styles.css tokens */
:root{--hdr-h:75px;--tabs-h:80px;--pub-stack:calc(var(--hdr-h) + var(--tabs-h))}
.pub-hero{padding-block:clamp(52px,7vw,84px) clamp(28px,4vw,44px)}
.pub-hero__top{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:20px}
.ver-badge{display:inline-flex;align-items:center;gap:.5em;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--teal-700);border:1px solid rgba(13,148,136,.35);background:rgba(13,148,136,.07);padding:.5em .9em;border-radius:100px;font-weight:600}
.pub-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.06;color:var(--navy-800);margin:0}
.pub-hero__full{font-family:var(--sans);font-weight:600;font-size:clamp(1.05rem,2vw,1.35rem);color:var(--navy-700);margin-top:14px;max-width:30ch;line-height:1.28}
.pub-hero__meta{display:flex;flex-wrap:wrap;gap:8px 10px;margin-top:22px;font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.pub-hero__meta span{border:1px solid var(--line);border-radius:100px;padding:.45em .85em;background:var(--white)}
.pub-prop{margin-top:30px;padding:22px 26px;border-radius:var(--radius-lg);background:var(--navy-800);color:#fff;max-width:52ch}
.pub-prop__k{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-300);margin:0}
.pub-prop p.q{font-family:var(--serif);font-size:clamp(1.3rem,2.4vw,1.75rem);line-height:1.25;margin:.35em 0 0}
.pub-hero__desc{margin-top:24px;max-width:64ch;font-size:1.08rem;color:var(--ink-2);line-height:1.7}
.pub-hero__cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.pub-limit{margin-top:32px;padding:18px 22px;border-left:3px solid var(--amber-500);background:rgba(245,158,11,.07);font-size:.88rem;color:var(--ink-2);line-height:1.6;max-width:78ch;border-radius:0 var(--radius) var(--radius) 0}

/* Tabs */
.pubtabs{position:sticky;top:var(--hdr-h);z-index:30;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-block:1px solid var(--line)}
.pubtabs__in{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter);display:flex;gap:6px;align-items:stretch;flex-wrap:wrap}
.pubtab{appearance:none;background:none;border:none;border-bottom:2px solid transparent;padding:16px 4px;margin-right:26px;font-family:var(--sans);font-size:.98rem;font-weight:600;color:var(--ink-3);cursor:pointer;text-decoration:none;display:inline-flex;flex-direction:column;gap:2px;min-height:48px;justify-content:center}
.pubtab span.sub{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;color:var(--ink-3)}
.pubtab:hover{color:var(--navy-800)}
.pubtab[aria-selected="true"],.pubtab.is-active{color:var(--navy-800);border-bottom-color:var(--teal-600)}
.pubtab:focus-visible{outline:2px solid var(--teal-600);outline-offset:2px}
.pubsearch{margin-left:auto;display:flex;align-items:center;gap:8px;padding-block:10px}
.pubsearch input{font-family:var(--sans);font-size:.88rem;padding:.55em .9em;border:1px solid var(--line-2);border-radius:100px;background:var(--white);color:var(--ink);min-width:190px;min-height:40px}
.pubsearch input:focus-visible{outline:2px solid var(--teal-600);outline-offset:1px}
.pubsearch .count{font-family:var(--mono);font-size:.7rem;color:var(--ink-3);white-space:nowrap}
mark.pub-hit{background:rgba(245,158,11,.35);color:inherit;border-radius:2px}
.panel-jump{padding:14px 0}

/* Layout */
.pub-layout{display:grid;grid-template-columns:264px minmax(0,1fr);gap:56px;align-items:start;max-width:var(--maxw);margin:0 auto;padding:48px var(--gutter) 24px}
.pub-toc{position:sticky;top:calc(var(--pub-stack) + 16px);max-height:calc(100vh - var(--pub-stack) - 48px);overflow-y:auto;padding-right:8px;font-size:.86rem}
.pub-toc__title{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}
.pub-toc a{display:block;padding:.45em 0 .45em 12px;margin-left:-12px;color:var(--ink-2);border-left:2px solid transparent;transition:color .2s,border-color .2s;line-height:1.35}
.pub-toc a:hover{color:var(--navy-800)}
.pub-toc a.is-active{color:var(--teal-700);border-left-color:var(--teal-600);font-weight:600}
.pub-toc details{margin:2px 0 6px}
.pub-toc summary{cursor:pointer;padding:.45em 0 .45em 12px;margin-left:-12px;color:var(--ink-2);font-weight:600;list-style:none}
.pub-toc summary::-webkit-details-marker{display:none}
.pub-toc summary::before{content:"▸ ";color:var(--ink-3)}
.pub-toc details[open]>summary::before{content:"▾ "}
.pub-toc .toc-sub a{padding-left:26px;font-size:.94em;color:var(--ink-3)}
.pub-content{font-size:1.06rem;line-height:1.74;color:var(--ink);max-width:768px}
.pub-content .doc-part{padding-top:52px;border-top:1px solid var(--line);margin-top:52px}
.pub-content .doc-part:first-child{padding-top:0;border-top:none;margin-top:0}
.doc-h1{font-family:var(--serif);font-size:clamp(1.7rem,2.9vw,2.25rem);font-weight:500;color:var(--navy-800);line-height:1.16;margin:0 0 .7em;scroll-margin-top:calc(var(--pub-stack) + 20px)}
.doc-h2{font-family:var(--serif);font-size:1.36rem;font-weight:500;color:var(--navy-800);margin:2em 0 .55em;scroll-margin-top:calc(var(--pub-stack) + 20px)}
.doc-h2.practice-h{font-family:var(--sans);font-weight:700;font-size:1.16rem;letter-spacing:-.01em;padding-top:.35em;border-top:2px solid var(--navy-800);margin-top:2.4em}
.doc-h3{font-family:var(--sans);font-size:.8rem;font-weight:700;color:var(--navy-700);margin:1.7em 0 .5em;text-transform:uppercase;letter-spacing:.06em;scroll-margin-top:calc(var(--pub-stack) + 20px)}
.practice-sub{font-family:var(--mono);font-size:.78rem;line-height:1.5;color:var(--ink-3);margin-top:.35em}
.pub-content p{margin-top:1.05em}
.doc-lead{font-size:1.16rem;color:var(--ink-2);font-weight:300;line-height:1.62}
.doc-small{font-size:.86rem;color:var(--ink-3);line-height:1.6}
.pub-content .doc-list{padding-left:1.25em;margin-top:1em;display:flex;flex-direction:column;gap:.5em}
.kicker{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-700);margin:0 0 .8em;font-weight:600}
.backtop{margin-top:2.4em}
.backtop a{font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.backtop a:hover{color:var(--teal-700)}
ul.doc-list li.checkitem{list-style:none;position:relative;padding-left:34px;font-size:1.02rem}
ul.doc-list li.checkitem::before{content:"";position:absolute;left:0;top:.15em;width:20px;height:20px;border:2px solid var(--navy-700);border-radius:4px}
.pub-content ul.doc-list:has(li.checkitem){padding-left:0;gap:.8em}

/* Callouts */
.cb{margin-top:1.6em;padding:22px 24px;border-radius:var(--radius);border:1px solid var(--line)}
.cb__label{font-family:var(--mono);font-size:.67rem;letter-spacing:.11em;font-weight:700;text-transform:uppercase;margin:0}
.cb__body p{font-size:.98rem;color:var(--ink-2);margin-top:.55em}
.cb--framework{background:rgba(15,36,64,.04);border-color:rgba(15,36,64,.2)}
.cb--framework .cb__label{color:var(--navy-700)}
.cb--guidance{background:rgba(13,148,136,.05);border-color:rgba(13,148,136,.28)}
.cb--guidance .cb__label{color:var(--teal-700)}
.cb--takeaway{background:rgba(13,148,136,.05);border-color:rgba(13,148,136,.24);border-left-width:3px}
.cb--takeaway .cb__label{color:var(--teal-700)}
.cb--takeaway .cb__body p{color:var(--ink);font-size:1rem}
.cb--authority{background:var(--paper-2);border-color:var(--line-2);border-left:3px solid var(--navy-800)}
.cb--authority .cb__label{color:var(--navy-800)}
.cb--rule{background:var(--paper-2);border-color:var(--line-2)}
.cb--rule .cb__label{color:var(--navy-700)}
.cb--question{background:rgba(13,148,136,.08);border-color:rgba(13,148,136,.3)}
.cb--question .cb__label{color:var(--teal-700)}
.cb--question .cb__body p{font-family:var(--serif);font-size:1.14rem;color:var(--navy-800);line-height:1.4}
.cb--warning{background:rgba(220,38,38,.05);border-color:rgba(220,38,38,.26)}
.cb--warning .cb__label{color:#B91C1C}
.cb--warning .cb__label::before{content:"! ";font-weight:800}
.domain-band{margin-top:3em;padding:26px 28px;border-radius:var(--radius-lg);background:var(--gradient-brand);color:#fff}
.domain-band__k{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-300);margin:0}
.domain-band h3{font-family:var(--serif);font-weight:500;font-size:1.3rem;margin:.3em 0 0;color:#fff;line-height:1.25}
.domain-band p{color:rgba(255,255,255,.84);font-size:.95rem;margin-top:.6em}

/* Tables */
.tbl-wrap{position:relative;overflow-x:auto;margin-top:1.6em;border:1px solid var(--line);border-radius:var(--radius);background:var(--white)}
.tbl-wrap:focus-visible{outline:2px solid var(--teal-600);outline-offset:2px}
.tbl-wrap.is-scrollable::after{content:"Scroll →";position:sticky;right:0;bottom:0;float:right;font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);background:var(--paper-2);border:1px solid var(--line);border-radius:100px;padding:.3em .7em;margin:6px}
table.dtable{width:100%;border-collapse:collapse;font-size:.9rem;min-width:520px}
table.dtable caption{caption-side:top;text-align:left;font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding:12px 16px 0}
table.dtable thead th{background:var(--navy-800);color:#fff;text-align:left;padding:12px 16px;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;font-weight:500;vertical-align:top}
table.dtable td,table.dtable tbody th{padding:12px 16px;border-top:1px solid var(--line);color:var(--ink-2);vertical-align:top;line-height:1.5;text-align:left}
table.dtable tbody th{font-weight:600;color:var(--navy-700);min-width:120px}
table.dtable tbody tr:nth-child(even) td,table.dtable tbody tr:nth-child(even) th{background:var(--paper-2)}

/* Figures + lightbox */
.doc-fig{margin:1.8em 0 0}
.fig-btn{display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-2);cursor:zoom-in;position:relative;overflow:hidden}
.fig-btn:focus-visible{outline:2px solid var(--teal-600);outline-offset:2px}
.fig-btn img{display:block;width:100%;height:auto;object-fit:contain}
.fig-btn__hint{position:absolute;right:10px;bottom:10px;font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--navy-800);background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:100px;padding:.35em .75em;opacity:0;transition:opacity .2s}
.fig-btn:hover .fig-btn__hint,.fig-btn:focus-visible .fig-btn__hint{opacity:1}
.doc-fig figcaption{font-size:.84rem;color:var(--ink-3);margin-top:10px;line-height:1.5;display:flex;gap:10px;flex-wrap:wrap;align-items:baseline}
.figcap__t{flex:1 1 320px}
.fig-dl{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-700);white-space:nowrap}
.lightbox{position:fixed;inset:0;z-index:120;background:rgba(9,18,32,.94);display:none;flex-direction:column;padding:16px}
.lightbox[open]{display:flex}
.lightbox__bar{display:flex;justify-content:space-between;align-items:center;gap:16px;color:rgba(255,255,255,.86);font-size:.82rem;flex-wrap:wrap}
.lightbox__bar .lb-cap{font-family:var(--mono);font-size:.7rem;letter-spacing:.04em;max-width:70ch}
.lightbox__actions{display:flex;gap:10px;align-items:center}
.lb-btn{appearance:none;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.28);color:#fff;font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;padding:.6em 1em;border-radius:100px;cursor:pointer;min-height:44px}
.lb-btn:hover{background:rgba(255,255,255,.2)}
.lb-btn:focus-visible{outline:2px solid var(--teal-300);outline-offset:2px}
.lightbox__stage{flex:1;overflow:auto;display:grid;place-items:center;margin-top:12px}
.lightbox__stage img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .2s}
.lightbox.zoomed .lightbox__stage{place-items:start}
.lightbox.zoomed .lightbox__stage img{max-width:none;max-height:none;width:min(2400px,240vw);cursor:grab}

/* Reading progress + back to top */
.pub-progress{position:fixed;top:0;left:0;height:3px;background:var(--teal-600);width:0;z-index:200;transition:width .1s linear}
.to-top{position:fixed;right:20px;bottom:20px;z-index:60;width:48px;height:48px;border-radius:50%;border:1px solid var(--line-2);background:var(--white);color:var(--navy-800);font-size:1.1rem;display:none;place-items:center;cursor:pointer;box-shadow:0 6px 20px rgba(15,36,64,.14)}
.to-top.show{display:grid}
.to-top:focus-visible{outline:2px solid var(--teal-600);outline-offset:2px}

.pub-legal{margin:56px auto 0;max-width:var(--maxw);padding:0 var(--gutter)}
.pub-legal__in{padding:22px 24px;border-left:3px solid var(--line-2);background:var(--paper-2);font-size:.86rem;color:var(--ink-3);line-height:1.65}

.doc-fig,.domain-band,.pub-panel,.doc-part,.pub-content [id]{scroll-margin-top:calc(var(--pub-stack) + 20px)}
@media(max-width:1024px){
  .pub-layout{grid-template-columns:1fr;gap:28px;padding-top:32px}
  .pub-toc{position:static;max-height:none;border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;background:var(--paper-2)}
}
@media(max-width:700px){
  .pubsearch{margin-left:0;width:100%;padding-bottom:12px}
  .pubsearch input{flex:1;min-width:0}
  .pubtab{margin-right:18px;font-size:.92rem}
  .pub-content{font-size:1rem}
  .lightbox__bar .lb-cap{display:none}
}
@media (prefers-reduced-motion:reduce){.pub-progress,.lightbox__stage img{transition:none}}

@media print{
  .pubtabs,.pub-toc,.to-top,.pub-progress,.site-header,.mobile-nav,.footer-cta,.fig-btn__hint,.fig-dl,.backtop,.pub-hero__cta{display:none!important}
  .pub-panel[hidden]{display:block!important}
  .pub-layout{display:block;padding:0}
  .pub-content{max-width:none;font-size:10.5pt}
  .doc-part{break-before:auto;page-break-inside:auto}
  .doc-h1,.doc-h2,.doc-h3{break-after:avoid}
  .doc-fig,.cb,.tbl-wrap{break-inside:avoid}
  .tbl-wrap{overflow:visible}
  table.dtable{min-width:0;font-size:8.5pt}
  .domain-band,.pub-prop{background:#0f2440!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
