/* Local, bounded visual components inside assistant answers. */
.logicum-visual-card{--visual-border:var(--border-color,rgba(128,128,128,.24));--visual-muted:var(--text-secondary,#8f8b83);color:var(--text-primary,#27251f);background:var(--bg-secondary,var(--bg-color,#faf9f6));border:1px solid var(--visual-border);border-radius:16px;margin:18px 0 24px;overflow:hidden;width:100%;min-width:0;box-sizing:border-box;font-size:14px;line-height:1.5;text-align:left}
.logicum-visual-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px 14px;border-bottom:1px solid var(--visual-border)}
.logicum-visual-eyebrow{display:block;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--visual-muted);font-weight:600;margin-bottom:6px}
.logicum-visual-title{font-size:17px!important;font-weight:600!important;line-height:1.35!important;margin:0!important;letter-spacing:-.025em;text-wrap:balance;color:inherit!important}
.logicum-visual-description{padding:0 22px;margin:14px 0 0!important;color:var(--visual-muted);font-size:13px!important}
.logicum-visual-body{padding:18px 22px;min-width:0}
.logicum-visual-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.logicum-visual-field{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1;color:var(--visual-muted);font-size:11px;font-weight:500}
.logicum-visual-field:has(.logicum-visual-expression){flex:5}
.logicum-visual-card input,.logicum-visual-card select,.logicum-visual-card textarea{appearance:auto;color:var(--text-primary,#27251f);background:var(--bg-primary,transparent);border:1px solid var(--visual-border);border-radius:8px;font-family:inherit;font-size:14px;padding:9px 11px;box-sizing:border-box;min-width:0;width:100%}
.logicum-visual-card input[type=number]{min-width:76px}
.logicum-visual-expression{font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important;font-size:15px!important}
.logicum-visual-function-controls{gap:12px}
.logicum-visual-function-controls .logicum-visual-field{flex:1 1 260px}
.logicum-visual-function .logicum-visual-expression{font-size:24px!important;min-height:58px;padding:12px 15px}
.logicum-visual-function .logicum-visual-keyboard-toggle{min-height:58px}
.logicum-visual-keypad{display:flex;flex-wrap:wrap;gap:7px;margin:-4px 0 14px}
.logicum-visual-keypad[hidden]{display:none!important}
.logicum-visual-keypad .logicum-visual-key{min-width:42px;min-height:40px;font-size:16px;text-align:center}
.logicum-visual-card :is(input,select,textarea,button,summary,[tabindex]):focus-visible{outline:2px solid var(--accent-color,#b87922);outline-offset:3px}
.logicum-visual-button{border:1px solid var(--visual-border);border-radius:8px;background:transparent;color:inherit;font:inherit;font-size:12px;line-height:1.4;padding:9px 12px;cursor:pointer;white-space:nowrap;min-height:36px}
.logicum-visual-button:hover{background:rgba(128,128,128,.1)}
.logicum-visual-button.primary{background:var(--accent-color,#a66e20);border-color:var(--accent-color,#a66e20);color:white}
.logicum-visual-toolbar{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 12px}
.logicum-visual-toolbar .logicum-visual-button:first-child,.logicum-visual-toolbar .logicum-visual-button:nth-child(2){min-width:36px;font-size:18px;padding:4px 10px}
.logicum-visual-plot{position:relative;width:100%;overflow:hidden;background:var(--bg-primary,rgba(128,128,128,.03));border:1px solid var(--visual-border);border-radius:12px;min-width:0}
.logicum-visual-plot svg{display:block;width:100%;height:auto;max-height:500px;user-select:none}
.logicum-visual-function .logicum-visual-plot svg{cursor:grab;touch-action:none}
.logicum-visual-function .logicum-visual-plot svg.is-panning{cursor:grabbing}
.logicum-visual-card.is-expanded .logicum-visual-plot svg{min-height:420px;max-height:680px}
.logicum-visual-grid{stroke:var(--visual-border);stroke-width:.7}
.logicum-visual-axis{stroke:var(--visual-muted);stroke-width:1}
.logicum-visual-tick{fill:var(--visual-muted);font-size:11px;font-family:inherit}
.logicum-visual-axis-label{fill:var(--visual-muted);font-size:11px}
.logicum-visual-crosshair{stroke:var(--visual-muted);stroke-dasharray:3 4;stroke-width:1}
.logicum-visual-note{font-size:11px!important;color:var(--visual-muted);margin:10px 0!important;line-height:1.5!important}
.logicum-visual-readout{display:block;font:12px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text-primary,#27251f);min-height:22px;margin-top:10px;font-variant-numeric:tabular-nums}
.logicum-visual-error{color:var(--text-primary,#27251f);border-left:2px solid var(--accent-color,#b87922);padding-left:10px;margin:12px 0!important;font-size:12px!important}
.logicum-visual-error[hidden]{display:none!important}
.logicum-visual-footer{padding:12px 22px;border-top:1px solid var(--visual-border);display:flex;flex-wrap:wrap;gap:8px}
.logicum-visual-footer .logicum-visual-button{font-size:11px;color:var(--visual-muted);min-height:30px;padding:6px 10px}
.logicum-visual-legend{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.logicum-visual-legend button{padding:5px 10px;font-size:12px;min-height:32px}
.logicum-visual-legend button:before{content:'';display:inline-block;width:7px;height:7px;background:var(--series-color);border-radius:50%;margin-right:6px}
.logicum-visual-legend [aria-pressed=false]{opacity:.45}
.logicum-visual-table-details{margin-top:12px;font-size:12px}
.logicum-visual-table-details summary{cursor:pointer;color:var(--visual-muted);padding:6px 0}
.logicum-visual-table-scroll{overflow:auto;max-height:320px}
.logicum-visual-card table{width:100%;border-collapse:collapse;margin:8px 0!important;font-size:12px}
.logicum-visual-card th,.logicum-visual-card td{padding:8px 10px;border-bottom:1px solid var(--visual-border);text-align:left}
.logicum-visual-card td{font-variant-numeric:tabular-nums}
.logicum-visual-data-editor{display:block;margin:10px 0;font:12px ui-monospace,monospace!important;resize:vertical}
.logicum-visual-detail{padding:14px 16px;border:1px solid var(--visual-border);border-radius:10px;margin-top:12px;min-height:44px;font-size:13px}
.logicum-visual-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.logicum-visual-item{border:1px solid var(--visual-border);border-radius:8px;background:transparent;color:inherit;font:inherit;padding:10px 14px;text-align:left;cursor:pointer}
.logicum-visual-item.selected,.logicum-visual-item[aria-pressed=true]{border-color:var(--accent-color,#b87922);background:rgba(197,138,48,.08)}
.logicum-visual-result{display:block;font-size:24px;font-weight:600;padding:20px 0;letter-spacing:-.025em;font-variant-numeric:tabular-nums}
.logicum-visual-diagram-edge{stroke:var(--visual-muted);fill:none;stroke-width:1.5}
.logicum-visual-diagram-node{fill:var(--bg-primary,#faf9f6);stroke:var(--visual-border);stroke-width:1.5;cursor:pointer}
.logicum-visual-diagram-node.selected{stroke:var(--accent-color,#b87922)}
.logicum-visual-diagram-label{fill:var(--text-primary,#27251f);font-family:inherit;font-size:12px;pointer-events:none}
.logicum-visual-map-land{fill:var(--visual-border);stroke:var(--visual-muted);stroke-width:.6}
.logicum-visual-map-grid{stroke:var(--visual-border);stroke-width:.5;fill:none}
.logicum-visual-map-marker{fill:var(--accent-color,#b87922);stroke:var(--bg-primary,#faf9f6);stroke-width:1.5;cursor:pointer}
.logicum-visual-simulation-curve{fill:none;stroke:var(--accent-color,#b87922);stroke-width:2.5}
.message-text .logicum-visual-card mark{background:transparent!important;color:inherit!important}
@media(max-width:600px){.logicum-visual-header{padding:16px}.logicum-visual-body{padding:14px}.logicum-visual-description{padding:0 16px}.logicum-visual-footer{padding:10px 14px}.logicum-visual-title{font-size:15px!important}.logicum-visual-card.is-expanded .logicum-visual-plot svg{min-height:240px}.logicum-visual-controls{gap:8px}.logicum-visual-controls .logicum-visual-field{flex-basis:calc(50% - 8px)}.logicum-visual-field:has(.logicum-visual-expression){flex-basis:calc(100% - 88px)}.logicum-visual-card input,.logicum-visual-card select{min-height:40px}.logicum-visual-function .logicum-visual-plot svg{min-height:220px}.logicum-visual-card{border-radius:12px}}
@media(prefers-reduced-motion:reduce){.logicum-visual-card *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.logicum-visual-card[hidden]{display:none!important}
.logicum-visual-ranges{display:flex;flex:0 1 240px;width:240px;max-width:100%;gap:0;border:1px solid var(--visual-border);border-radius:9px;overflow:hidden;align-self:flex-end}
.logicum-visual-ranges .logicum-visual-button{flex:1 1 0;min-width:0;border:0;border-radius:0;padding:9px 5px;text-align:center;font-size:12px}
.logicum-visual-ranges .logicum-visual-button[aria-pressed=true]{background:var(--accent-color,#a66e20);color:var(--accent-text,#fff)}
.logicum-visual-provenance{display:flex;flex-wrap:wrap;gap:6px 14px;padding:0 22px 14px;color:var(--visual-muted);font-size:11px}
.logicum-visual-provenance a{color:inherit;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.logicum-visual-chart .logicum-visual-plot svg{cursor:crosshair}
@media(max-width:600px){.logicum-visual-ranges{flex-basis:100%;width:100%}.logicum-visual-provenance{padding:0 14px 12px}.logicum-visual-chart .logicum-visual-readout{overflow-wrap:anywhere}}

/* Formula calculators use bounded sliders and update every result as values move. */
.logicum-visual-calculator .logicum-visual-body{display:flex;flex-direction:column;gap:8px}
.logicum-visual-calculator .logicum-visual-controls{display:flex;flex-direction:column;align-items:stretch;gap:17px;margin:0 0 12px}
.logicum-visual-calculator .logicum-visual-slider{display:flex;flex-direction:column;gap:8px;min-width:0;color:var(--text-primary,#27251f);font-size:13px;font-weight:500}
.logicum-visual-slider-heading{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.logicum-visual-slider-label{min-width:0;overflow-wrap:anywhere}
.logicum-visual-slider-value{flex:0 0 auto;color:var(--text-secondary,#77736b);font-variant-numeric:tabular-nums;text-align:right}
.logicum-visual-calculator input.logicum-visual-slider-input[type=range]{appearance:none;-webkit-appearance:none;width:100%;min-height:24px;height:24px;padding:0;margin:0;border:0;border-radius:0;background:transparent;cursor:pointer;touch-action:pan-y}
.logicum-visual-calculator input.logicum-visual-slider-input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:999px;background:var(--border-color,rgba(128,128,128,.35))}
.logicum-visual-calculator input.logicum-visual-slider-input[type=range]::-moz-range-track{height:5px;border-radius:999px;background:var(--border-color,rgba(128,128,128,.35))}
.logicum-visual-calculator input.logicum-visual-slider-input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:17px;height:17px;margin-top:-6px;border:2px solid var(--bg-primary,#fff);border-radius:50%;background:var(--accent-color,#a66e20);box-shadow:0 0 0 1px var(--accent-color,#a66e20)}
.logicum-visual-calculator input.logicum-visual-slider-input[type=range]::-moz-range-thumb{width:14px;height:14px;border:2px solid var(--bg-primary,#fff);border-radius:50%;background:var(--accent-color,#a66e20);box-shadow:0 0 0 1px var(--accent-color,#a66e20)}
.logicum-visual-calculator-results{border-top:1px solid var(--visual-border);padding-top:2px}
.logicum-visual-calculator-output{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 0 3px}
.logicum-visual-calculator-label{color:var(--text-secondary,#77736b);font-size:13px;line-height:1.4}
.logicum-visual-calculator-value{color:var(--text-primary,#27251f);font-size:23px;font-weight:600;line-height:1.3;letter-spacing:-.025em;text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.logicum-visual-calculator-formula{display:flex;flex-wrap:wrap;gap:4px;color:var(--text-secondary,#77736b);font-size:11px;line-height:1.5;padding:0 0 11px}
.logicum-visual-calculator-formula code{font-size:11px;overflow-wrap:anywhere;white-space:normal}
.logicum-visual-calculator-editor{border-top:1px solid var(--visual-border);padding-top:10px}
.logicum-visual-calculator-editor summary{cursor:pointer;color:var(--text-secondary,#77736b);font-size:12px;padding:5px 0 10px}
.logicum-visual-calculator-editor .logicum-visual-field{margin:0 0 10px}
.logicum-visual-calculator-editor .logicum-visual-button{margin-top:2px}
.logicum-visual-calculator input.logicum-visual-slider-input[type=range]:focus-visible{outline:2px solid var(--accent-color,#b87922);outline-offset:4px;border-radius:6px}
@media(max-width:600px){.logicum-visual-calculator .logicum-visual-body{gap:4px}.logicum-visual-calculator .logicum-visual-controls{gap:14px}.logicum-visual-calculator-value{font-size:20px}.logicum-visual-calculator-output{gap:10px}}
.logicum-visual-card{--logicum-visual-accent:var(--accent-color,#b87922);--logicum-visual-node-fill:var(--bg-primary,var(--bg-secondary,#faf9f6))}
svg.logicum-visual-plot{display:block;height:auto;max-height:520px}
.logicum-visual-selected rect{stroke:var(--accent-color,#b87922);stroke-width:3}
.logicum-visual-timeline{list-style:none!important;margin:0!important;padding:0!important;flex-direction:column;gap:0;border-left:1px solid var(--visual-border)}
.logicum-visual-timeline-event{padding:0 0 12px 18px!important;margin:0!important;position:relative}
.logicum-visual-timeline-event:before{content:'';position:absolute;left:-4px;top:17px;width:7px;height:7px;border-radius:50%;background:var(--accent-color,#b87922)}
.logicum-visual-timeline-event button{display:flex;flex-direction:column;gap:4px;width:100%}
.logicum-visual-date{font-size:11px;color:var(--visual-muted)}
.logicum-visual-map-locations{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.logicum-visual-map-marker.logicum-visual-selected circle { stroke: var(--logicum-visual-accent); stroke-width: 3; fill: var(--text-primary); }

/* Graphs sit directly in the conversation flow and follow Logicum's active theme. */
.logicum-visual-card.logicum-visual-function,.logicum-visual-card.logicum-visual-chart{background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;margin:16px 0 22px;padding:0}
.logicum-visual-function .logicum-visual-header,.logicum-visual-chart .logicum-visual-header{padding:8px 0 12px;border:0}
.logicum-visual-function .logicum-visual-body,.logicum-visual-chart .logicum-visual-body{padding:8px 0;}
.logicum-visual-function .logicum-visual-footer,.logicum-visual-chart .logicum-visual-footer{padding:10px 0;border-top:1px solid var(--border-color,rgba(128,128,128,.2))}
.logicum-visual-function .logicum-visual-plot,.logicum-visual-chart .logicum-visual-plot{background:transparent;border:0;border-radius:0;overflow:visible}
.logicum-visual-function,.logicum-visual-chart{--logicum-chart-series-1:var(--accent-color,#b87922);--logicum-chart-series-2:#5685b2;--logicum-chart-series-3:#8c78bb;--logicum-chart-series-4:#548f7b}
.logicum-visual-function .logicum-visual-function-controls .logicum-visual-field:has(.logicum-visual-expression){flex:1 1 260px}
@media(max-width:600px){.logicum-visual-function .logicum-visual-expression{font-size:20px!important;min-height:52px}.logicum-visual-function .logicum-visual-keyboard-toggle{min-height:40px}}
[data-theme="dark"] .logicum-visual-function,[data-theme="dark"] .logicum-visual-chart,.dark .logicum-visual-function,.dark .logicum-visual-chart{--logicum-chart-series-2:#83b5e3;--logicum-chart-series-3:#b09ddd;--logicum-chart-series-4:#7fbea7}
.logicum-visual-tooltip{position:absolute;z-index:5;max-width:min(320px,calc(100% - 12px));padding:7px 10px;border:1px solid var(--border-color,rgba(128,128,128,.22));border-radius:9px;background:var(--logicum-visual-tooltip-background,#3b3936);color:var(--logicum-visual-tooltip-foreground,var(--text-primary,#f1efe9));box-shadow:0 4px 16px rgba(0,0,0,.15);font:inherit;font-size:12px;line-height:1.4;font-variant-numeric:tabular-nums;white-space:normal;pointer-events:none}
:is(html[data-theme="light"],body.light-mode) .logicum-visual-tooltip{background:#e5e2dc;color:#2c2925}
.logicum-visual-tooltip[hidden]{display:none!important}
