@import url('/charlie-home-shell.css');
@import url('/charlie-cleanup.css');
@import url('/charlie-polish.css');
/* Compatibility with real routes that have no prototype. The reference tokens stay authoritative. */
:root { --font-body:var(--font); --font-heading:var(--font); --font-sans:var(--font); --font-mono:var(--mono); --color-bg:var(--bg); --color-text:var(--ink); --text:var(--ink); --text-muted:var(--ink-2); --muted:var(--ink-2); --border:var(--line); --surface:var(--bg); --surface-2:var(--bg-soft); --page-width:var(--page-max); color-scheme:light; }
:root[data-theme=dark] { color-scheme:dark; }
/* clip contains decorative paint without making body the sticky scroll container. */
body { padding:0; min-width:0; overflow-x:clip; }
button,input,select,textarea { font-family:var(--font); }
button { color:inherit; }
[hidden] { display:none !important; }
:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
:target { scroll-margin-top:calc(var(--header-h) + 20px); }
.app-shell { width:100%; max-width:none; margin:0; padding:0; min-height:100vh; display:block; background:var(--bg); color:var(--ink); }
.page { width:100%; max-width:var(--page-max); padding:36px var(--gutter) 72px; margin:0 auto; }
.page.harbor-home,.page:has(>.charlie-full),.page:has(>.charlie-index) { max-width:none; padding:0; }
.page>section,.docs-page,.account-page,.model-finder { max-width:none; }
.page-heading { font:800 clamp(2rem,1.5rem + 1.5vw,3rem)/1.12 var(--font); letter-spacing:-.035em; margin:0 0 16px; }
.site-header { width:100%; margin:0; padding:0; }
.charlie-header-host,.hub-header { position:sticky;top:env(safe-area-inset-top,0px);z-index:50; }
.charlie-header-host .site-header,.hub-header .site-header { position:relative; }
.site-header .bar { width:100%;padding-inline:var(--gutter); }
.site-header a.logo { color:var(--ink); }
.charlie-header-host>div { margin:0; }
.charlie-account-menu { position:absolute;right:calc(var(--gutter) + 170px);top:12px;background:var(--bg); }
.charlie-mobile-menu { display:none; }
.charlie-mobile-menu summary { list-style:none; }
.charlie-mobile-menu summary::-webkit-details-marker { display:none; }
.charlie-mobile-menu .mobile-nav { position:absolute;top:100%;left:0;right:0;max-height:calc(100dvh - var(--header-h));overflow:auto;box-shadow:var(--shadow); }
.site-footer { width:100%;max-width:none;padding:0;margin:0;background:var(--bg-soft);color:var(--ink); }
.site-footer .logo { font-size:inherit; }
.site-footer .legal { align-items:center; }
.charlie-footer .footer-about { --s:14px; }
.charlie-footer .footer-description { max-width:34ch;font-size:.93rem; }
.site-footer .craft-footer-details,.site-footer>.footer-appearance { max-width:var(--page-max);padding:14px var(--gutter);margin:0 auto; }
.machine-setting { display:none; }
.retro-button,.link-button,button.primary { display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:8px 16px;border:1px solid var(--line-strong);border-radius:10px;background:var(--bg);color:var(--ink);font:600 .95rem var(--font);text-decoration:none;cursor:pointer; }
.retro-button.primary,button.primary { background:var(--ink);color:var(--bg); }
.docs-page input,.docs-page select,.docs-page textarea { max-width:100%;background:var(--bg);color:var(--ink);border:1px solid var(--line-strong);border-radius:10px;padding:10px 12px; }
.docs-page:not(:has(.charlie-full,.charlie-index,.charlie-developers)) p { margin-block:12px; }
.docs-page:not(:has(.charlie-full,.charlie-index,.charlie-developers)) h2 { margin-block:32px 14px; }
.docs-page:not(:has(.charlie-full,.charlie-index,.charlie-developers)) h3 { margin-block:20px 8px; }
.docs-page:not(:has(.charlie-full,.charlie-index,.charlie-developers)) pre,.page pre { max-width:100%;overflow:auto;border-radius:10px;padding:16px;background:var(--bg-sunk);color:var(--ink); }
.docs-page table { width:100%;border-collapse:collapse; }
.docs-page th,.docs-page td { border-bottom:1px solid var(--line);padding:12px;text-align:left; }
.page>* { min-width:0; }
.hb-docs-hub,.hb-docs-nav { width:100%;max-width:none; }
.hb-docs-hub__article,.hb-docs-nav__main { min-width:0;max-width:none; }
.hb-consent { position:static;max-width:none;border-top:1px solid var(--line);background:var(--bg-soft);color:var(--ink);padding:12px var(--gutter); }
.hb-consent__inner { max-width:var(--page-max);margin:auto; }
.charlie-empty { padding:40px;border:1px dashed var(--line-strong);border-radius:16px;text-align:center;color:var(--ink-2); }
.charlie-state { padding:20px;border:1px solid var(--line);border-radius:12px; }
.charlie-state p { margin:8px 0 16px; }
.charlie-heading { font-size:clamp(2.25rem,1.4rem + 3vw,4.25rem);font-weight:800;letter-spacing:-.035em;margin-top:8px; }
.charlie-model-actions { display:flex;gap:8px;flex-wrap:wrap; }
.model-card .foot { flex-wrap:wrap; }
.model-card h3,.model-card .org { overflow-wrap:anywhere; }
.model-card .avatar { background:var(--accent);color:var(--accent-ink); }
.charlie-model-save { position:relative;z-index:1; }
.charlie-account .split .form { display:flex; }
.charlie-account .split .form>div { margin-block:auto; }
.charlie-library .tabs { display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:12px; }
@media(max-width:1040px) { .charlie-mobile-menu { display:block; } .charlie-account-menu { display:none; } }
@media(max-width:680px) { .page { padding-top:24px; } .site-footer .cols { gap:24px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important;animation-duration:.01ms !important;transition-duration:.01ms !important; } }
.page:has(.charlie-full) { max-width:none;padding:0; }
.page>.charlie-finder { max-width:var(--page-max);margin:auto; }
.charlie-models .page-head { padding-block:36px 24px;border-bottom:1px solid var(--line); }
.charlie-models .toolbar form { flex:1;flex-wrap:nowrap; }
.charlie-models .toolbar form .input { min-width:80px; }
.charlie-models .spacer { flex:0; }
.charlie-models .disclose>div,.charlie-library .disclose>section { padding:20px; }
.charlie-library progress { display:block;width:100%;margin-top:8px;accent-color:var(--accent); }
.charlie-account .identity-panel { margin:0;padding:0;border:0;background:transparent; }
.charlie-account .identity-signin>p:first-child { display:none; }
.charlie-account .identity-providers { display:grid;gap:10px; }
.charlie-account .identity-providers>a { width:100%;height:52px;font-size:1.02rem;border-radius:12px; }
.charlie-account .identity-primary { background:var(--ink);color:var(--bg); }
.charlie-account .identity-signin .subtle-note { font-size:.875rem;color:var(--ink-2); }
.docs-hub { display:grid;grid-template-columns:250px minmax(0,1fr);gap:clamp(24px,3vw,56px);align-items:start;max-width:none;margin:0; }
.docs-hub__sidebar { position:sticky;top:calc(var(--header-h) + 24px);max-height:calc(100vh - var(--header-h) - 48px);overflow:auto;border-right:1px solid var(--line);padding-right:16px; }
.docs-hub__nav-group>p { font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin:20px 0 6px; }
.docs-hub__sidebar ul { list-style:none;padding:0;margin:0; }
.docs-hub__sidebar a { display:block;text-decoration:none;padding:6px 10px;border-radius:7px;color:var(--ink-2);font-size:.92rem; }
.docs-hub__sidebar a[aria-current=page] { background:var(--accent-soft);color:var(--accent);font-weight:600; }
.docs-hub__main { max-width:none;min-width:0; }
.docs-hub__content { max-width:none; }
.docs-hub__search { margin-block:16px 24px; }
.docs-hub__search>div { display:flex;gap:8px; }
.docs-hub__search input { flex:1;min-width:0; }
.docs-hub__breadcrumbs ol { display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;font-size:.85rem;color:var(--ink-2); }
.docs-hub__breadcrumbs li+li::before { content:'/';margin-right:8px; }
.docs-hub__sections { display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:24px; }
@media(max-width:860px) { .docs-hub { grid-template-columns:minmax(0,1fr); } .docs-hub__sidebar { position:static;max-height:none;border-right:0;border-bottom:1px solid var(--line);padding-bottom:16px; } }
.charlie-help .topic[hidden] { display:none; }
.charlie-help .help-hero form .input { min-width:0; }
.charlie-docs .prose p { margin-block:12px; }
.charlie-docs .prose { min-width:0; }
.charlie-docs .prose pre.code,.charlie-developers pre.code { background:var(--code-bg);color:var(--code-ink); }
.charlie-download .dl-hero { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:center;padding-block:clamp(40px,6vw,96px); }
.charlie-download [data-desktop-offer] { margin-top:12px; }
.charlie-download .desktop-copy-field textarea { width:100%;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--bg-soft);color:var(--ink);font:.8rem/1.5 var(--mono); }
.charlie-download .desktop-copy-label { display:block;margin:12px 0 6px;font-size:.85rem;font-weight:600; }
.charlie-download .desktop-copy-field button { min-height:32px;border:1px solid var(--line-strong);border-radius:6px;background:var(--bg);color:var(--ink);padding:6px 10px; }
.charlie-download .desktop-check-body { overflow-wrap:anywhere; }
@media(max-width:900px) { .charlie-download .dl-hero { grid-template-columns:minmax(0,1fr); } }
.charlie-app .app nav>a { display:flex;justify-content:flex-start;padding:9px 12px;min-height:40px;border:0;border-radius:8px;font-size:.93rem;font-weight:500;color:var(--ink-2);text-decoration:none; }
.charlie-app .app nav>a[aria-current=page] { background:var(--bg);color:var(--ink);font-weight:700;box-shadow:var(--shadow); }
.charlie-onboard { width:min(1040px,calc(100% - 32px));max-height:calc(100dvh - 32px);border:0;border-radius:20px;padding:clamp(22px,3vw,40px);background:var(--bg);color:var(--ink);box-shadow:0 40px 120px rgba(0,0,0,.35); }
.charlie-onboard::backdrop { background:rgba(10,10,10,.45); }
.charlie-onboard .pick { cursor:pointer;border:2px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:10px;background:var(--bg);text-align:left;font:inherit;color:inherit;min-width:0;overflow-wrap:anywhere; }
.charlie-onboard .pick[aria-pressed=true] { border-color:var(--ink);box-shadow:0 0 0 1px var(--ink); }
.charlie-onboard .desc { color:var(--ink-2);font-size:.9rem; }
.charlie-onboard .sys { display:flex;gap:10px;flex-wrap:wrap;margin:16px 0 24px; }
.charlie-onboard .ob-foot { position:sticky;bottom:0;background:var(--bg);padding-block:14px 0;border-top:1px solid var(--line); }
.charlie-model .model-layout { display:grid;grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:'record record' 'content aside';gap:32px 40px;max-width:none; }
.charlie-model .model-record-slot { grid-area:record;max-width:none;margin:0;padding:0 0 24px;border-bottom:1px solid var(--line); }
.charlie-model .record { padding:24px 0 0;border:0;background:none; }
.charlie-model .rec-org { color:var(--ink-2);font-size:.875rem;text-decoration:none; }
.charlie-model .rec-title { font:800 clamp(2.25rem,1.4rem + 3vw,4.25rem)/1.12 var(--font);letter-spacing:-.035em;margin:8px 0 14px; }
.charlie-model .rec-desc { font-size:1.15rem;color:var(--ink-2);max-width:70ch;margin:16px 0; }
.charlie-model .rec-chips,.charlie-model .rec-tools { display:flex;flex-wrap:wrap;gap:8px;margin-top:16px; }
.charlie-model .rec-repo { display:flex;gap:8px;align-items:center;overflow-wrap:anywhere;font-size:.875rem;color:var(--ink-2); }
.charlie-model .model-content { grid-area:content;min-width:0;padding:0;max-width:none; }
.charlie-model .model-aside { grid-area:aside;min-width:0;align-self:start;position:sticky;top:calc(var(--header-h) + 24px); }
.charlie-model .dl { background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:24px;display:grid;gap:16px; }
.charlie-model .dl p { color:var(--ink-2);margin:0; }
.charlie-model .dl .btn { white-space:normal;height:auto;min-height:44px;text-align:center; }
.charlie-model .dl-pick { display:block;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--bg-soft);text-decoration:none; }
.charlie-model .dl-pick span span { display:block;overflow-wrap:anywhere; }
.charlie-model .btn-secondary { border:1px solid var(--line-strong);color:var(--ink);background:var(--bg); }
.charlie-model .model-content .panel { position:static;padding:0;border:0;background:var(--bg); }
.charlie-model .subtabs { display:flex;gap:4px;overflow:auto;border-bottom:1px solid var(--line);margin-bottom:24px; }
.charlie-model .model-tab { padding:12px 14px;white-space:nowrap;font:600 .95rem var(--font);color:var(--ink-2);text-decoration:none;border-bottom:2px solid transparent; }
.charlie-model .model-tab[aria-selected=true],.charlie-model .model-tab[aria-current=page] { color:var(--ink);border-bottom-color:var(--ink); }
.charlie-model .model-tab svg { display:none; }
.charlie-model .sec { margin-block:28px; }
.charlie-model .sec h2 { font-size:1.35rem;margin-bottom:12px; }
.charlie-model .toc { display:none; }
.charlie-model .small { font-size:.875rem;color:var(--ink-2); }
.charlie-model .sticky-dl { display:none; }
@media(max-width:980px) { .charlie-model .model-layout { grid-template-columns:minmax(0,1fr);grid-template-areas:'record' 'aside' 'content'; } .charlie-model .model-aside { position:static; } }
.run-app { width:100%;max-width:none;margin:0;background:var(--bg);color:var(--ink); }
.charlie-run-toolbar { padding:12px var(--gutter);max-width:var(--page-max);margin:auto;background:var(--bg-soft);border-bottom:1px solid var(--line); }
.run-main { width:100%;max-width:var(--page-max);margin:auto;padding-inline:var(--gutter); }

.charlie-model .m-title { display:flex;gap:18px;align-items:center;margin-top:14px; }
.charlie-model .m-title .avatar { width:64px;height:64px;font-size:1.3rem;border-radius:16px;background:var(--accent);color:var(--accent-ink); }
.charlie-model .model-source-details { margin-top:16px; }
.charlie-model .chip,.charlie-model .trust { display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:4px 9px;background:var(--bg-soft);font-size:.75rem;font-weight:600; }
.charlie-model .qf { display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:16px 0; }
.charlie-model .qf>div { padding:16px;border:1px solid var(--line);border-radius:12px; }
.charlie-model .qf dt { font-size:.875rem;color:var(--ink-2); }
.charlie-model .qf dd { font-size:1rem;font-weight:700;margin:4px 0 0;overflow-wrap:anywhere; }
.hc-document #help-content { width:100%;max-width:var(--page-max);margin:0 auto;padding:36px var(--gutter) 80px; }
.hc-document #help-content>h1 { max-width:24ch; }
.hc-document #help-content p,.hc-document #help-content li { max-width:80ch; }
.hc-document #help-content h2 { margin-top:32px; }
.hc-document #help-content p { margin-block:12px; }

html { padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);scroll-padding-top:env(safe-area-inset-top,0px); }
/* Older functional surfaces consume the same typography and semantic colors. */
:root { --font-display:var(--font);--font-code:var(--mono);--font-blackletter:"UnifrakturMaguntia",serif;--surface-alt:var(--bg-soft);--border-strong:var(--line-strong);--focus:var(--accent);--success:var(--ok);--warning:var(--warn);--craft-ink:var(--ink);--craft-muted:var(--ink-2);--craft-line:var(--line);--craft-accent:var(--ink);--craft-accent-hover:var(--ink-2);--craft-on-accent:var(--bg);--craft-tint:var(--bg-soft);--brand-ink:var(--ink);--brand-ink-2:var(--ink-2);--brand-muted:var(--ink-2);--brand-paper:var(--bg);--brand-wash:var(--bg-soft);--brand-line:var(--line);--brand-line-strong:var(--line-strong);--brand-on-accent:var(--bg);--ds-radius-card:var(--radius-lg);--ds-radius-inner:var(--radius);--ds-col:var(--page-max);--hb-border-strong:var(--line-strong);--hb-text-3:var(--ink-2);--hb-focus:var(--accent);--hb-radius-md:var(--radius);--hb-radius-lg:var(--radius-lg); }
.charlie-model { width:100%;max-width:none;margin:0;--accent:inherit;--ink:inherit;--header-h:inherit;--gutter:inherit; }
.charlie-run-toolbar { grid-template-columns:minmax(0,1fr) auto;position:static; }

/* Shared wrappers must not inherit the retired 720/1120px page columns. */
.page { --page-col:var(--page-max); }
.page.harbor-home>div,.page:has(.charlie-full)>div { width:100%;max-width:none; }
.charlie-header,.charlie-footer { display:block; }
.charlie-header .bar { width:100%; }
.charlie-header .header-search { margin-left:auto; }
.charlie-models .model-card .top>.row,.charlie-index .model-card .top>.row { flex-wrap:nowrap;min-width:0; }
.model-card .top>.row>div:last-child { min-width:0; }
/* Small secondary labels need the existing darker token to meet WCAG AA. */
html :is(.subtle,.eyebrow,.header-search kbd,.model-card .org,.model-card .meta,.site-footer h4,.site-footer .legal,.docs-nav h5,.toc a,.crumbs,.crumbs a,.table th,.kv dt,.charlie-index .quick>span,.charlie-index .stats span,.charlie-models .filters h4,.charlie-library .lib-nav .n,.divider,.docs-hub__nav-group>p) { color:var(--ink-2); }

.charlie-model .record,.charlie-model .dl { box-shadow:none; }
.charlie-model .rec-id { display:block;min-width:0; }
.charlie-model .rec-tools { margin-top:16px; }
.charlie-model .record .disclose { margin-block:16px; }
.charlie-model .qf>div { display:block;min-width:0; }
.charlie-model .qf dd { text-align:left; }
.charlie-model .sec { display:block;min-height:0;padding:0;border:0; }
.charlie-model .sec p { margin-block:12px; }
.charlie-model .charlie-model-facts { grid-template-columns:repeat(4,minmax(0,1fr)); }
.charlie-file-row { display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line); }
.charlie-file-row code { overflow-wrap:anywhere; }
.charlie-model .model-information>.sec { padding-inline:16px; }
@media(max-width:680px) { .charlie-model .charlie-model-facts { grid-template-columns:repeat(2,minmax(0,1fr)); } .charlie-file-row { grid-template-columns:minmax(0,1fr) auto; } .charlie-file-row>span { grid-column:1; } .charlie-file-row>a { grid-column:2;grid-row:1 / 3; } }

main:has(>.charlie-full,>.charlie-developers,>.charlie-help) { width:100%;max-width:none;margin:0;padding:0; }

.charlie-model-utilities { display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:16px; }
.charlie-model-utilities>* { margin:0; }

.charlie-models .filters nav.stack { display:grid;gap:10px; }
.charlie-models .filters nav.stack>* { margin:0; }

/* Existing guide and API routes share the same type, palette and accessible search controls. */
.docs-hub { --docs-bg:var(--bg);--docs-surface:var(--bg-soft);--docs-ink:var(--ink);--docs-muted:var(--ink-2);--docs-line:var(--line);--docs-accent:var(--accent);--docs-active:var(--accent-soft);font-family:var(--font);color:var(--ink); }
.hc-document,.help-centre { font-family:var(--font);color:var(--ink);background:var(--bg); }
.hc-document .help-centre { max-width:none;margin:0;padding:0;font:inherit; }
.docs-hub__search button,.hc-search button { background:var(--ink);color:var(--bg);border:1px solid var(--ink);border-radius:10px;padding:10px 18px;font:600 .95rem var(--font); }
.hb-explorer-intro { color:var(--ink-2); }
/* The reference's later !important base rule otherwise hides this mobile opener. */
@media(max-width:860px) { .charlie-docs .docs-toggle { display:inline-flex !important; } }

.hb-explorer-bar .hb-explorer-title { font:700 1rem/1.2 var(--font);letter-spacing:normal; }
.hb-explorer-intro a.hb-explorer-start { display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:10px;background:var(--ink);color:var(--bg);font-weight:600;text-decoration:none; }
#api-reference { background:var(--bg);color:var(--ink);font-family:var(--font); }

/* The renderer computes low-contrast tints internally; keep its controls and schema labels on shared tokens. */
#api-reference h5,#api-reference h5 span,#api-reference .property-name,#api-reference table td span,#api-reference [kind="additionalProperties"]>div { color:var(--ink-2); }
#api-reference button { color:var(--ink);background:var(--bg-soft);border-color:var(--line-strong); }
/* The legacy docs minimum must not stretch inline JSON fold controls across rows. */
#api-reference button.collapser { min-height:0; }
#api-reference button * { color:inherit; }
#api-reference [role="tab"] { color:var(--code-ink);background:var(--code-bg); }
#api-reference [role="tab"][aria-selected="true"] { color:var(--code-bg);background:var(--code-ink);box-shadow:inset 0 -2px var(--accent); }
#api-reference span[type="warning"] { color:var(--ink);background:var(--warn-soft); }
#api-reference .http-verb { color:var(--accent-ink);background:var(--accent); }

/* Redoc’s full-width mobile navigation must start at the viewport edge. */
#api-reference .menu-content { left:0;max-width:100vw; }

#api-reference code[data-api-template] { overflow-wrap:anywhere;white-space:normal; }

/* Keep Teach actions readable when document link styles join the shared shell. */
.teach-page a.teach-pill { background:var(--ink);color:var(--bg); }
.teach-page a.teach-pill-secondary { background:transparent;color:var(--ink);border-color:var(--ink); }
