/* ---- chrome do app: canvas em página inteira, marca em pílula (campo "Marca"), abas em cápsula, seletor de tema, bloco Conectar;
   grades em módulos (span) para Biblioteca, Gráficos e Vega. Tudo via tokens --nx-* (sem hex aqui: os tokens sempre estão carregados). ---- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--nx-color-canvas);background-attachment:fixed;color:var(--nx-color-text);font-family:var(--nx-font-body)}
.page{width:100%;max-width:none;margin:0;padding:16px 24px 24px;display:flex;flex-direction:column;gap:14px}
.head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.head .brand{display:flex;align-items:center;gap:10px;margin-right:auto;font:300 28px/1 var(--nx-font-display);letter-spacing:-.02em;color:var(--nx-color-text)}
.brand-pill{display:inline-flex;align-items:center;height:40px;padding:0 4px 0 18px;border:1px solid var(--nx-color-text);border-radius:999px;font:400 17px var(--nx-font-body);color:var(--nx-color-text)}
.brand-pill input{border:0;outline:0;background:transparent;font:inherit;color:inherit;width:9ch;min-width:4ch;padding:0 14px 0 0}
.brand-pill input::placeholder{color:var(--nx-color-text-muted-canvas)}
.head .sub{font-size:12px;color:var(--nx-color-text-muted-canvas);margin-left:6px}
.tabs{display:flex;gap:2px;background:var(--nx-color-control);border-radius:999px;padding:3px;box-shadow:var(--nx-shadow-control);width:fit-content;flex-wrap:wrap}
.tabs button{border:0;cursor:pointer;border-radius:999px;padding:6px 14px;line-height:18px;font:400 13px var(--nx-font-body);background:transparent;color:var(--nx-color-on-control-muted);transition:background var(--nx-motion-base) var(--nx-ease-standard),color var(--nx-motion-base) var(--nx-ease-standard)}
.tabs button:hover{background:var(--nx-color-control-soft);color:var(--nx-color-on-control)}
.tabs button:focus-visible{outline:2px solid var(--nx-color-accent);outline-offset:1px}
.tabs button.on{background:var(--nx-color-strong);color:var(--nx-color-on-strong)}
.head select{appearance:none;-webkit-appearance:none;height:34px;padding:0 34px 0 16px;border:0;border-radius:999px;background:var(--nx-color-control) var(--nx-chevron-img) no-repeat right 14px center;color:var(--nx-color-on-control);font:400 13px var(--nx-font-body);box-shadow:var(--nx-shadow-control);cursor:pointer}
.head .cta{border:0;cursor:pointer;height:34px;padding:0 16px;border-radius:999px;background:var(--nx-color-strong);color:var(--nx-color-on-strong);font:400 13px var(--nx-font-body);box-shadow:var(--nx-shadow-control);display:inline-flex;align-items:center;gap:8px}
.head .cta:hover{background:var(--nx-color-strong-well)}

[hidden]{display:none!important}
.pane{display:none}
.pane.on{display:block}
.pane p.lead{margin:0 0 12px;font-size:13px;line-height:1.5;color:var(--nx-color-text-muted-canvas)}

/* Conectar: MCP / API / llms.txt para humanos e agentes */
.connect{background:var(--nx-color-surface);border-radius:var(--nx-radius-card);padding:20px 24px;color:var(--nx-color-text-on-surface);box-shadow:var(--nx-shadow-card);display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.connect h3{margin:0 0 6px;font:400 17px/1.2 var(--nx-font-display)}
.connect p{margin:0 0 8px;font-size:13px;line-height:1.5;color:var(--nx-color-text-muted)}
.connect pre{margin:0;font:11.5px/1.45 ui-monospace,Consolas,monospace;background:var(--nx-color-strong);color:var(--nx-color-on-strong);border-radius:14px;padding:12px 14px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
.connect .row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.connect .row button,.connect .row a{border:0;cursor:pointer;height:30px;padding:0 12px;border-radius:999px;background:var(--nx-color-control);color:var(--nx-color-on-control);font:400 12.5px var(--nx-font-body);box-shadow:var(--nx-shadow-control);text-decoration:none;display:inline-flex;align-items:center}
.connect .row button:hover,.connect .row a:hover{background:var(--nx-color-control-soft)}
.connect code{font:12px ui-monospace,Consolas,monospace;background:color-mix(in srgb,var(--nx-color-text-on-surface) 8%,transparent);border-radius:6px;padding:1px 5px}

/* Sheets e Mobile: os quadros (1180) do Claude Design, centralizados, um abaixo do outro */
.scroller{overflow:visible}
.scroller > section{padding:0!important}
.scroller > section > div{flex-wrap:wrap!important;justify-content:center!important}
.scroller > section > div:first-child{color:var(--nx-color-text)!important}   /* título da folha mobile fica no canvas da página */
.frame{flex:none;box-sizing:border-box;width:1180px;border-radius:var(--nx-radius-shell);background:var(--nx-color-canvas);padding:32px;color:var(--nx-color-text);box-shadow:var(--nx-shadow-shell);font-family:var(--nx-font-body);display:flex;flex-direction:column;gap:20px}
.frame-title{font:300 34px/1 var(--nx-font-display);letter-spacing:-.02em}
.frames{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap;justify-content:center}

/* Especificação */
.spec{display:grid;grid-template-columns:220px minmax(0,1fr);gap:12px;align-items:start}
.subtabs{margin-bottom:0}
.toc{position:sticky;top:24px;background:var(--nx-color-surface);border-radius:var(--nx-radius-card);padding:18px 16px;max-height:calc(100vh - 48px);overflow:auto;display:flex;flex-direction:column;gap:2px;color:var(--nx-color-text-on-surface)}
.toc .h{font-size:11px;color:var(--nx-color-text-muted);margin:0 6px 8px}
.toc a{display:block;text-decoration:none;border-radius:8px;line-height:1.3;color:inherit}
.toc a.l2{opacity:.72}
.md{background:var(--nx-color-surface);border-radius:var(--nx-radius-card);padding:32px 36px;min-height:60vh;overflow-wrap:anywhere;color:var(--nx-color-text-on-surface)}
.md h1{font:300 34px/1.1 var(--nx-font-display);letter-spacing:-.02em;margin:0 0 20px}
.md h2{font:400 22px/1.2 var(--nx-font-display);letter-spacing:-.01em;margin:40px 0 12px;padding-top:24px;border-top:1px dotted var(--nx-color-divider)}
.md h3{font:400 17px/1.3 var(--nx-font-display);margin:28px 0 8px}
.md h4{font:500 14px/1.3 var(--nx-font-display);margin:20px 0 6px}
.md p,.md li{font-size:14px;line-height:1.55}
.md ul,.md ol{padding-left:22px}
.md a{color:inherit}
.md code{font:12px ui-monospace,Consolas,monospace;background:color-mix(in srgb,var(--nx-color-text-on-surface) 8%,transparent);border-radius:6px;padding:1px 5px}
.md pre{background:var(--nx-color-strong);color:var(--nx-color-on-strong);border-radius:14px;padding:16px 18px;overflow:auto;font-size:12px;line-height:1.5}
.md pre code{background:transparent;color:inherit;padding:0}
.md table{border-collapse:collapse;width:100%;margin:12px 0 20px;font-size:13px}
.md th{text-align:left;font-weight:400;color:var(--nx-color-text-muted);padding:8px 10px;border-bottom:1px dotted var(--nx-color-divider)}
.md td{padding:8px 10px;vertical-align:top;line-height:1.45}
.md tr:nth-child(even) td{background:color-mix(in srgb,var(--nx-color-text-on-surface) 5%,transparent)}
.md td:first-child{white-space:nowrap}
.md .sw{display:inline-block;width:12px;height:12px;border-radius:999px;vertical-align:-2px;margin-right:5px;border:1px solid color-mix(in srgb,var(--nx-color-text-on-surface) 12%,transparent)}
.md hr{border:0;border-top:1px dotted var(--nx-color-divider);margin:32px 0}
.md strong{font-weight:500}
.md input[type=checkbox]{accent-color:var(--nx-color-strong);margin-right:6px}
.md blockquote{margin:12px 0;padding:10px 16px;border-left:3px solid var(--nx-color-accent);background:color-mix(in srgb,var(--nx-color-text-on-surface) 5%,transparent);border-radius:14px}

/* Tokens: cartões do sistema, código em cartão carvão */
details{background:var(--nx-color-surface);border-radius:var(--nx-radius-card);padding:14px 22px;margin-bottom:10px;color:var(--nx-color-text-on-surface)}
details summary{cursor:pointer;font:400 15px var(--nx-font-display);list-style:none;display:flex;align-items:center;gap:10px}
details summary::before{content:"";width:8px;height:8px;border-radius:999px;background:var(--nx-color-accent);flex:none}
details pre{font:12px/1.45 ui-monospace,Consolas,monospace;background:var(--nx-color-strong);color:var(--nx-color-on-strong);border-radius:14px;padding:14px 16px;overflow:auto;max-height:520px;margin:12px 0 4px}
footer{font-size:12px;color:var(--nx-color-text-muted-canvas);padding:8px 0 24px}
@media (max-width:900px){.spec{grid-template-columns:1fr}.toc{position:static;max-height:none}.page{padding:16px}}

/* Biblioteca / Gráficos / Vega: grade em módulos. Um cartão 1×1 é o módulo; span [c, r] no catálogo ocupa c colunas × r linhas (dense) */
.lib-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.lib-head .lead{margin:0;margin-right:auto}
.lib-search{display:flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:999px;background:var(--nx-color-control);box-shadow:var(--nx-shadow-control);color:var(--nx-color-on-control)}
.lib-search input{border:0;outline:0;background:transparent;font:400 14px var(--nx-font-body);color:var(--nx-color-on-control);width:200px}
.lib-search input::placeholder{color:var(--nx-color-on-control-muted)}
.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-auto-flow:dense;gap:16px;align-items:stretch;--nxc-h:250px}
.lib-card{background:var(--nx-color-surface);border-radius:var(--nx-radius-card);box-shadow:var(--nx-shadow-card);overflow:hidden;color:var(--nx-color-text-on-surface);display:flex;flex-direction:column;min-width:0;transition:box-shadow var(--nx-motion-base) var(--nx-ease-standard),transform var(--nx-motion-base) var(--nx-ease-standard)}
.lib-card:hover{box-shadow:var(--nx-shadow-float);transform:translateY(-2px)}
.lib-prev{position:relative;background:var(--nx-color-canvas);padding:16px;min-height:120px;flex:1;display:flex;align-items:flex-start;justify-content:center;overflow:hidden;color:var(--nx-color-text);font-family:var(--nx-font-body)}
.lib-card.tall{grid-row:span 2}
.lib-card.tall .lib-prev{flex:1;max-height:none;align-items:flex-start}
.lib-fit{position:relative;transform-origin:top left;flex:none;max-width:100%}
.lib-fit > *{margin:0!important}
.lib-body{padding:16px 20px 18px;display:flex;flex-direction:column;gap:6px;flex:0 0 auto}   /* o corpo tem altura natural; a prévia cresce para preencher o módulo */
.lib-title{font:400 17px/1.2 var(--nx-font-display)}
.lib-meta{font-size:12px;color:var(--nx-color-text-muted)}
.lib-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:8px}
.lib-actions button{border:0;cursor:pointer;height:32px;padding:0 14px;border-radius:999px;background:var(--nx-color-control);color:var(--nx-color-on-control);font:400 13px var(--nx-font-body);box-shadow:var(--nx-shadow-control);transition:background var(--nx-motion-fast) var(--nx-ease-standard)}
.lib-actions button:hover{background:var(--nx-color-control-soft)}
.lib-actions button:focus-visible{outline:2px solid var(--nx-color-accent);outline-offset:1px}
.lib-actions button.on{background:var(--nx-color-strong);color:var(--nx-color-on-strong)}
.lib-code{margin:8px 0 0;max-height:260px;overflow:auto;font:11px/1.45 ui-monospace,Consolas,monospace;background:var(--nx-color-strong);color:var(--nx-color-on-strong);border-radius:14px;padding:12px 14px;white-space:pre-wrap;overflow-wrap:anywhere}
/* spans só valem onde há colunas suficientes; abaixo disso o cartão volta ao módulo */
@media (max-width:1060px){.lib-grid > [style*="span 3"],.lib-grid > [style*="span 4"]{grid-column:span 2!important}}
@media (max-width:700px){.lib-grid > *{grid-column:span 1!important;grid-row:span 1!important}}
@media (min-width:1061px) and (max-width:1400px){.lib-grid > [style*="span 4"]{grid-column:span 3!important}}

/* Galeria Vega-Lite */
.vg-prev{align-items:center;flex:1;min-height:var(--nxc-h)}
.vg-view{transform-origin:top left}
.vg-wait{font-size:12px;color:var(--nx-color-text-muted-canvas)}
.vg-note{font-size:12px;line-height:1.4;color:var(--nx-color-text-on-surface);background:color-mix(in srgb,var(--nx-color-accent) 22%,transparent);border-radius:12px;padding:8px 12px;margin-top:6px}
.vg-link{border:0;cursor:pointer;display:inline-flex;align-items:center;height:32px;padding:0 14px;border-radius:999px;background:var(--nx-color-strong);color:var(--nx-color-on-strong);font:400 13px var(--nx-font-body);text-decoration:none}
#vg-filters{max-width:100%}
/* tooltip do Vega no estilo do DS (vega-tooltip usa #vg-tooltip-element) */
#vg-tooltip-element{background:var(--nx-color-strong)!important;color:var(--nx-color-on-strong)!important;border:0!important;border-radius:14px!important;padding:8px 12px!important;font:400 12px/1.4 var(--nx-font-body)!important;box-shadow:var(--nx-shadow-float)!important}
#vg-tooltip-element table tr td.key{color:var(--nx-color-on-strong-muted)!important;font-weight:400!important}
#vg-tooltip-element table tr td.value{color:var(--nx-color-on-strong)!important;font-weight:500!important}

/* Gráficos Nexaya (biblioteca nativa): cada gráfico dentro de um cartão do DS, preenchendo o módulo */
.nxc-prev{align-items:stretch;flex:1;min-height:var(--nxc-h)}
.nxc-view{width:100%;display:flex}
.nxc-card-inner{background:var(--nx-color-surface);border-radius:var(--nx-radius-card);padding:20px;color:var(--nx-color-text-on-surface);box-shadow:var(--nx-shadow-card);flex:1;display:flex;align-items:center;justify-content:center;min-width:0}
.nxc-card-inner svg{max-width:100%;max-height:100%}
.nxc-card-inner > div{width:100%}
.nxc-replay{position:absolute;right:26px;top:26px;width:30px;height:30px;border:0;border-radius:999px;background:var(--nx-color-control);color:var(--nx-color-on-control);box-shadow:var(--nx-shadow-control);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--nx-motion-fast) var(--nx-ease-standard),background var(--nx-motion-fast) var(--nx-ease-standard)}
.nxc-prev:hover .nxc-replay,.nxc-replay:focus-visible{opacity:1}
.nxc-replay:hover{background:var(--nx-color-control-soft)}
