/* D-69 / OE-D69-003 M-5 - Shared Qvix visual styles (qvix-visual.css).
   Theme tokens only. Contrast via --text/--text2/--border.
   OE-D69-006 M-1b: typography styles moderno | mano | estandar. */
.qv-slot{margin:8px 0;}
.qv-slot.qv-ok{margin:10px 0;}
.qv-card{
  margin:0;
  padding:12px 14px;
  background:var(--bg3);
  border:1px solid var(--border);
  border-radius:8px;
  color:var(--text);
}
.qv-title{
  font-size:13px;
  font-weight:600;
  color:var(--text);
  margin:0 0 10px;
}
.qv-source{
  font-size:11px;
  font-family:'DM Mono',ui-monospace,monospace;
  color:var(--text3);
  margin-top:8px;
}
.qv-data{margin-top:8px;font-size:12px;color:var(--text2);}
.qv-data summary{cursor:pointer;color:var(--accent);font-size:12px;}
.qv-data table{width:100%;border-collapse:collapse;margin-top:6px;}
.qv-data th,.qv-data td{
  border:1px solid var(--border);
  padding:4px 6px;
  text-align:left;
  color:var(--text2);
  font-size:11px;
}
.qv-data th{background:var(--bg4);color:var(--text);font-weight:600;}
.qv-tl{list-style:none;margin:0;padding:0;border-left:2px solid var(--border2);margin-left:6px;}
.qv-tl li{display:flex;gap:10px;padding:0 0 12px 14px;position:relative;}
.qv-tl li:last-child{padding-bottom:0;}
.qv-tl li::before{
  content:'';
  position:absolute;
  left:-5px;top:4px;
  width:8px;height:8px;border-radius:50%;
  background:var(--blue);
  border:2px solid var(--bg3);
}
.qv-when{
  flex:0 0 72px;
  font-size:11px;
  font-family:'DM Mono',ui-monospace,monospace;
  color:var(--text3);
  padding-top:1px;
}
.qv-tl-b{flex:1;min-width:0;}
.qv-tl-b strong{display:block;font-size:13px;color:var(--text);font-weight:600;}
.qv-detail{display:block;font-size:12px;color:var(--text2);margin-top:2px;line-height:1.45;}
.qv-chart{width:100%;overflow-x:auto;}
.qv-svg{width:100%;height:auto;display:block;max-width:560px;}
.qv-grid{stroke:var(--border);stroke-width:1;}
.qv-tick{fill:var(--text3);font-size:10px;font-family:'DM Mono',ui-monospace,monospace;}
.qv-val{fill:var(--text2);font-size:10px;font-family:'DM Mono',ui-monospace,monospace;}
.qv-line{fill:none;stroke-width:2;}
.qv-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;font-size:12px;color:var(--text2);}
.qv-lg{display:inline-flex;align-items:center;gap:5px;}
.qv-lg i{display:inline-block;width:10px;height:10px;border-radius:2px;}
.qv-node{fill:var(--bg2);stroke:var(--border2);stroke-width:1.5;}
.qv-nlabel{fill:var(--text);font-size:11px;font-family:system-ui,sans-serif;}
.qv-edge{fill:none;stroke:var(--text3);stroke-width:1.5;}
.qv-arrow{fill:var(--text3);}
.qv-elabel{fill:var(--text3);font-size:10px;font-family:'DM Mono',ui-monospace,monospace;}
@media (prefers-reduced-motion: reduce){
  .qv-card,.qv-slot,.qv-tl li::before{animation:none!important;transition:none!important;}
}

/* ── OE-D69-006 M-1b typography styles ───────────────────────────────── */
.qv-typebar{
  display:flex;flex-wrap:wrap;gap:6px;align-items:center;
  margin:0 0 8px;padding:0;
}
.qv-typebar button{
  font:inherit;font-size:11px;line-height:1.2;
  padding:4px 8px;border-radius:6px;cursor:pointer;
  border:1px solid var(--border);background:var(--bg2);color:var(--text2);
}
.qv-typebar button[aria-pressed="true"]{
  border-color:var(--accent);color:var(--accent);background:var(--bg3);
}
.qv-typebar .qv-type-std{
  margin-left:auto;color:var(--text3);
}

/* moderno (default): Manrope + system fallback */
.qv-root[data-qv-type="moderno"] .qv-card,
.qv-root[data-qv-type="moderno"] .qv-suggested-sum,
.qv-root[data-qv-type="moderno"] .qv-nlabel{
  font-family:"Qvix Modern",system-ui,-apple-system,"Segoe UI",sans-serif;
}
.qv-root[data-qv-type="moderno"] .qv-when,
.qv-root[data-qv-type="moderno"] .qv-tick,
.qv-root[data-qv-type="moderno"] .qv-val,
.qv-root[data-qv-type="moderno"] .qv-elabel,
.qv-root[data-qv-type="moderno"] .qv-source,
.qv-root[data-qv-type="moderno"] .qv-provenance{
  font-family:"Qvix Modern",ui-monospace,monospace;
}

/* mano alzada: short labels only — never detail / data table / alt */
.qv-root[data-qv-type="mano"] .qv-title,
.qv-root[data-qv-type="mano"] .qv-suggested-label,
.qv-root[data-qv-type="mano"] .qv-tl-b strong{
  font-family:"Qvix Hand Title","Segoe Print","Bradley Hand","Chalkboard SE",cursive;
  font-weight:400;
  font-size:15px;
  letter-spacing:0.01em;
}
.qv-root[data-qv-type="mano"] .qv-when,
.qv-root[data-qv-type="mano"] .qv-nlabel,
.qv-root[data-qv-type="mano"] .qv-legend,
.qv-root[data-qv-type="mano"] .qv-lg{
  font-family:"Qvix Hand","Segoe Print","Bradley Hand","Chalkboard SE",cursive;
  font-size:14px;
}
.qv-root[data-qv-type="mano"] .qv-detail,
.qv-root[data-qv-type="mano"] .qv-data,
.qv-root[data-qv-type="mano"] .qv-data th,
.qv-root[data-qv-type="mano"] .qv-data td,
.qv-root[data-qv-type="mano"] .qv-source,
.qv-root[data-qv-type="mano"] .qv-provenance,
.qv-root[data-qv-type="mano"] .qv-tick,
.qv-root[data-qv-type="mano"] .qv-val,
.qv-root[data-qv-type="mano"] .qv-elabel{
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
}

/* estandar: force system stack (a11y escape hatch) */
.qv-root[data-qv-type="estandar"] .qv-card,
.qv-root[data-qv-type="estandar"] .qv-suggested-sum,
.qv-root[data-qv-type="estandar"] .qv-title,
.qv-root[data-qv-type="estandar"] .qv-when,
.qv-root[data-qv-type="estandar"] .qv-nlabel,
.qv-root[data-qv-type="estandar"] .qv-tl-b strong{
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
}

/* OE-D69-003 M-5 - suggested / collapsible visual_sections under the response. */
.qv-sections{margin:8px 0 4px;display:flex;flex-direction:column;gap:8px;}
.qv-suggested{
  margin:0;
  padding:0;
  background:var(--bg3);
  border:1px solid var(--border);
  border-radius:8px;
  color:var(--text);
}
.qv-suggested > .qv-card{border:0;border-radius:0 0 8px 8px;background:transparent;}
.qv-suggested-sum{
  cursor:pointer;
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  font-size:12px;
  color:var(--text2);
  border-bottom:1px solid transparent;
}
.qv-suggested[open] > .qv-suggested-sum{border-bottom-color:var(--border);}
.qv-suggested-sum::-webkit-details-marker{display:none;}
.qv-suggested-label{font-weight:600;color:var(--accent);}
.qv-provenance{
  font-size:11px;
  font-family:'DM Mono',ui-monospace,monospace;
  color:var(--text3);
  line-height:1.35;
}
@media (prefers-reduced-motion: reduce){
  .qv-suggested,.qv-sections{animation:none!important;transition:none!important;}
}
