/* A3 scoped Concept Map UI. Bootstrap-compatible classes may be supplied by Host; no runtime Bootstrap injection. */
[data-toantin-tool="concept_map"] {
  --cmap-bg: var(--bs-body-bg, #f7f9fc);
  --cmap-surface: var(--bs-body-bg, #ffffff);
  --cmap-border: var(--bs-border-color, #d7dee8);
  --cmap-text: var(--bs-body-color, #243447);
  --cmap-muted: var(--bs-secondary-color, #607086);
  --cmap-primary: var(--bs-primary, #0d6efd);
  --cmap-primary-soft: rgba(13,110,253,.12);
  --cmap-z-content: 1;
  --cmap-z-overlay: 20;
  --cmap-z-context: 40;
  --cmap-z-inspector: 60;
  box-sizing: border-box;
  position: relative;
  display: block;
  min-width: 0;
  min-height: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  font: inherit;
  color: var(--cmap-text);
  background: var(--cmap-bg);
}
[data-toantin-tool="concept_map"] *,
[data-toantin-tool="concept_map"] *::before,
[data-toantin-tool="concept_map"] *::after { box-sizing: border-box; }

[data-toantin-tool="concept_map"] .cmap-workspace-shell { position: relative; width: 100%; height: 100%; min-height: 320px; overflow: auto; background: var(--cmap-bg); }
[data-toantin-tool="concept_map"] .cmap-map-stage { position: relative; min-width: 100%; min-height: 100%; touch-action: none; }
[data-toantin-tool="concept_map"] .cmap-map-svg { display: block; width: 100%; min-width: 640px; min-height: 420px; background: var(--cmap-map-theme-bg, var(--cmap-surface)); }
[data-toantin-tool="concept_map"] .cmap-tree-edge { fill: none; vector-effect: non-scaling-stroke; }
[data-toantin-tool="concept_map"] .cmap-relation-edge { vector-effect: non-scaling-stroke; }
[data-toantin-tool="concept_map"] .cmap-node { cursor: grab; outline: none; }
[data-toantin-tool="concept_map"] .cmap-node.is-locked { cursor: not-allowed; opacity: .82; }
[data-toantin-tool="concept_map"] .cmap-node.is-pinned .cmap-node-box { stroke-dasharray: 5 3; }
[data-toantin-tool="concept_map"] .cmap-node:focus-visible .cmap-node-box,
[data-toantin-tool="concept_map"] .cmap-node.is-selected .cmap-node-box { stroke-width: 3; filter: drop-shadow(0 4px 10px rgba(13,110,253,.18)); }
[data-toantin-tool="concept_map"] .cmap-node-box { }
[data-toantin-tool="concept_map"] .cmap-node-text { pointer-events: none; }
[data-toantin-tool="concept_map"] .cmap-inline-handle circle { fill: var(--cmap-surface); stroke: var(--cmap-primary); stroke-width: 2; }
[data-toantin-tool="concept_map"] .cmap-inline-handle text { font-size: 22px; font-weight: 700; fill: var(--cmap-primary); pointer-events: none; }
[data-toantin-tool="concept_map"] .cmap-inline-handle,
[data-toantin-tool="concept_map"] .cmap-branch-length-handle { cursor: pointer; }
[data-toantin-tool="concept_map"] .cmap-branch-length-handle circle { fill: var(--cmap-primary-soft); stroke: var(--cmap-primary); stroke-width: 2; }
[data-toantin-tool="concept_map"] .cmap-collapse-badge,
[data-toantin-tool="concept_map"] .cmap-pin-badge { font-size: 11px; fill: var(--cmap-muted); }
[data-toantin-tool="concept_map"] .cmap-marquee { position: absolute; z-index: var(--cmap-z-overlay); border: 1px solid var(--cmap-primary); background: var(--cmap-primary-soft); pointer-events: none; }
[data-toantin-tool="concept_map"] .cmap-inline-editor { position: absolute; z-index: var(--cmap-z-context); min-height: 44px; border-radius: 10px; padding: 8px 10px; border: 2px solid var(--cmap-primary); background: var(--cmap-surface); color: var(--cmap-text); }

[data-toantin-tool="concept_map"] .cmap-outline-head { position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding: 8px 12px; background: var(--cmap-surface); border-bottom: 1px solid var(--cmap-border); }
[data-toantin-tool="concept_map"] .cmap-outline-head button,
[data-toantin-tool="concept_map"] .cmap-outline-toggle,
[data-toantin-tool="concept_map"] .cmap-outline-add { min-width: 44px; min-height: 44px; border: 1px solid var(--cmap-border); border-radius: 10px; background: var(--cmap-surface); color: var(--cmap-text); }
[data-toantin-tool="concept_map"] .cmap-outline-list { padding: 10px 12px 24px; }
[data-toantin-tool="concept_map"] .cmap-outline-row { display: grid; grid-template-columns: 44px minmax(140px, 1fr) 44px; align-items: center; gap: 8px; margin-left: min(calc(var(--cmap-depth) * 24px), 240px); min-height: 52px; }
[data-toantin-tool="concept_map"] .cmap-outline-input { width: 100%; min-height: 44px; border: 1px solid var(--cmap-border); border-radius: 10px; padding: 8px 10px; background: var(--cmap-surface); color: var(--cmap-text); }
[data-toantin-tool="concept_map"] .cmap-outline-input:focus-visible,
[data-toantin-tool="concept_map"] button:focus-visible { outline: 3px solid var(--cmap-primary-soft); outline-offset: 2px; }
[data-toantin-tool="concept_map"] .cmap-empty { padding: 24px; color: var(--cmap-muted); text-align: center; }

[data-toantin-tool="concept_map"] .cmap-context-toolbar { position: sticky; top: 8px; left: 50%; z-index: var(--cmap-z-context); display: flex; width: max-content; max-width: calc(100% - 24px); gap: 6px; align-items: center; margin: 8px auto -52px; padding: 6px; overflow-x: auto; border: 1px solid var(--cmap-border); border-radius: 14px; background: var(--cmap-surface); box-shadow: 0 8px 22px rgba(31,48,70,.12); }
[data-toantin-tool="concept_map"] .cmap-context-toolbar button { min-width: 44px; min-height: 44px; border: 1px solid var(--cmap-border); border-radius: 10px; padding: 7px 10px; background: var(--cmap-surface); color: var(--cmap-text); font: inherit; cursor: pointer; white-space: nowrap; }
[data-toantin-tool="concept_map"] .cmap-context-toolbar button:hover { background: var(--cmap-primary-soft); }
[data-toantin-tool="concept_map"] .cmap-context-toolbar button[aria-pressed="true"] { border-color: var(--cmap-primary); background: var(--cmap-primary-soft); }
[data-toantin-tool="concept_map"] .cmap-smart-guides { position: absolute; inset: 0; z-index: var(--cmap-z-overlay); pointer-events: none; overflow: hidden; }
[data-toantin-tool="concept_map"] .cmap-guide { position: absolute; display: block; border-color: var(--cmap-primary); border-style: dashed; opacity: .75; }
[data-toantin-tool="concept_map"] .cmap-guide-x { left: var(--guide-pos); top: 0; bottom: 0; border-left-width: 1px; }
[data-toantin-tool="concept_map"] .cmap-guide-y { top: var(--guide-pos); left: 0; right: 0; border-top-width: 1px; }
[data-toantin-tool="concept_map"] .cmap-shape-no-fill { fill: none; }

@media (max-width: 575.98px) {
  [data-toantin-tool="concept_map"] .cmap-map-svg { min-width: 520px; }
  [data-toantin-tool="concept_map"] .cmap-outline-row { margin-left: min(calc(var(--cmap-depth) * 14px), 112px); gap: 6px; }
  [data-toantin-tool="concept_map"] .cmap-context-toolbar { left: 8px; right: 8px; width: auto; margin-inline: 8px; justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  [data-toantin-tool="concept_map"] * { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* A4 Concept Map relation/focus/parking interaction — scoped only. */
[data-toantin-tool="concept_map"] .cmap-relation-edge,
[data-toantin-tool="concept_map"] .cmap-tree-edge { pointer-events: stroke; cursor: pointer; }
[data-toantin-tool="concept_map"] .cmap-relation-edge.is-selected,
[data-toantin-tool="concept_map"] .cmap-tree-edge.is-selected { stroke: var(--cmap-primary); stroke-width: 3; }
[data-toantin-tool="concept_map"] .cmap-edge-label rect { fill: var(--cmap-surface); stroke: var(--cmap-border); stroke-width: 1; opacity: .94; }
[data-toantin-tool="concept_map"] .cmap-edge-label text { font-size: 11px; font-weight: 650; fill: var(--cmap-text); pointer-events: none; }
[data-toantin-tool="concept_map"] .cmap-connect-handle { cursor: crosshair; }
[data-toantin-tool="concept_map"] .cmap-connect-handle circle { fill: var(--cmap-surface); stroke: #8b5cf6; stroke-width: 2; }
[data-toantin-tool="concept_map"] .cmap-connect-ghost { position: absolute; inset: 0; width: 100%; height: 100%; z-index: var(--cmap-z-overlay); pointer-events: none; overflow: visible; }
[data-toantin-tool="concept_map"] .cmap-connect-ghost line { stroke: #8b5cf6; stroke-width: 2; stroke-dasharray: 6 4; }
[data-toantin-tool="concept_map"] .cmap-focus-question rect { fill: color-mix(in srgb, var(--cmap-primary) 8%, var(--cmap-surface)); stroke: var(--cmap-primary); stroke-width: 1.2; }
[data-toantin-tool="concept_map"] .cmap-focus-question text { font-size: 13px; font-weight: 700; fill: var(--cmap-text); }
[data-toantin-tool="concept_map"] .cmap-map-svg marker path { fill: context-stroke; }

/* A5 enrichment/content rendering — scoped only. */
[data-toantin-tool="concept_map"] .cmap-boundary { cursor: pointer; }
[data-toantin-tool="concept_map"] .cmap-boundary.is-selected rect { stroke: var(--cmap-primary); stroke-width: 3; }
[data-toantin-tool="concept_map"] .cmap-boundary-title { font-size: 12px; font-weight: 700; fill: var(--cmap-muted); }
[data-toantin-tool="concept_map"] .cmap-summary,
[data-toantin-tool="concept_map"] .cmap-callout { cursor: pointer; }
[data-toantin-tool="concept_map"] .cmap-summary rect,
[data-toantin-tool="concept_map"] .cmap-callout rect { fill: var(--cmap-surface); stroke: var(--cmap-border); stroke-width: 1.5; }
[data-toantin-tool="concept_map"] .cmap-summary path,
[data-toantin-tool="concept_map"] .cmap-callout path { fill: none; stroke: var(--cmap-muted); stroke-width: 1.5; stroke-dasharray: 4 3; }
[data-toantin-tool="concept_map"] .cmap-summary text,
[data-toantin-tool="concept_map"] .cmap-callout text { font-size: 12px; font-weight: 650; fill: var(--cmap-text); }
[data-toantin-tool="concept_map"] .cmap-summary.is-selected rect,
[data-toantin-tool="concept_map"] .cmap-callout.is-selected rect { stroke: var(--cmap-primary); stroke-width: 3; }
[data-toantin-tool="concept_map"] .cmap-node.is-floating .cmap-node-box { stroke-dasharray: 7 4; }
[data-toantin-tool="concept_map"] .cmap-node.is-filter-dimmed { opacity: .22; }
[data-toantin-tool="concept_map"] .cmap-node.is-search-match .cmap-node-box { filter: drop-shadow(0 0 7px rgba(13,110,253,.32)); }
[data-toantin-tool="concept_map"] .cmap-content-badges,
[data-toantin-tool="concept_map"] .cmap-tag-badges { font-size: 9px; fill: var(--cmap-muted); pointer-events: none; }

/* A6 branch focus / Full Tool / Property Panel — scoped only. Host owns outer chrome. */
[data-toantin-tool="concept_map"] .is-focus-dimmed { opacity: .16; }
[data-toantin-tool="concept_map"] .cmap-full-tool { display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; width:100%; height:100%; min-height:420px; background:var(--cmap-bg); }
[data-toantin-tool="concept_map"] .cmap-full-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border-bottom:1px solid var(--cmap-border); background:var(--cmap-surface); }
[data-toantin-tool="concept_map"] .cmap-full-head > div { display:flex; align-items:baseline; gap:8px; min-width:0; }
[data-toantin-tool="concept_map"] .cmap-full-head span { color:var(--cmap-muted); font-size:.875em; }
[data-toantin-tool="concept_map"] .cmap-full-tabs { display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; }
[data-toantin-tool="concept_map"] .cmap-full-tabs button,
[data-toantin-tool="concept_map"] .cmap-breadcrumb button,
[data-toantin-tool="concept_map"] .cmap-mini-navigator button,
[data-toantin-tool="concept_map"] .cmap-template-grid button,
[data-toantin-tool="concept_map"] .cmap-object-index button,
[data-toantin-tool="concept_map"] .cmap-full-outline-row,
[data-toantin-tool="concept_map"] .cmap-full-relations button,
[data-toantin-tool="concept_map"] .cmap-recovery button { min-height:44px; border:1px solid var(--cmap-border); border-radius:10px; padding:8px 11px; background:var(--cmap-surface); color:var(--cmap-text); font:inherit; cursor:pointer; }
[data-toantin-tool="concept_map"] .cmap-full-tabs button[aria-pressed="true"] { border-color:var(--cmap-primary); background:var(--cmap-primary-soft); color:var(--cmap-primary); }
[data-toantin-tool="concept_map"] .cmap-breadcrumb { display:flex; align-items:center; gap:5px; min-height:48px; padding:5px 12px; overflow-x:auto; border-bottom:1px solid var(--cmap-border); background:var(--cmap-surface); }
[data-toantin-tool="concept_map"] .cmap-breadcrumb button { min-height:36px; padding:5px 9px; white-space:nowrap; }
[data-toantin-tool="concept_map"] .cmap-full-body { min-height:0; overflow:auto; padding:12px; }
[data-toantin-tool="concept_map"] .cmap-full-map { min-width:640px; min-height:440px; height:100%; }
[data-toantin-tool="concept_map"] .cmap-full-outline { display:grid; gap:6px; max-width:900px; margin:auto; }
[data-toantin-tool="concept_map"] .cmap-full-outline-row { display:block; width:100%; text-align:left; padding-left:calc(12px + min(var(--cmap-depth), 10) * 18px); }
[data-toantin-tool="concept_map"] .cmap-full-relations { display:grid; gap:8px; }
[data-toantin-tool="concept_map"] .cmap-full-relations button { display:grid; grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr); gap:10px; align-items:center; text-align:left; }
[data-toantin-tool="concept_map"] .cmap-template-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px; }
[data-toantin-tool="concept_map"] .cmap-template-grid article { padding:14px; border:1px solid var(--cmap-border); border-radius:14px; background:var(--cmap-surface); }
[data-toantin-tool="concept_map"] .cmap-template-grid p { color:var(--cmap-muted); min-height:2.8em; }
[data-toantin-tool="concept_map"] .cmap-object-index { display:grid; gap:6px; }
[data-toantin-tool="concept_map"] .cmap-object-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:8px; align-items:center; padding:6px; border-bottom:1px solid var(--cmap-border); }
[data-toantin-tool="concept_map"] .cmap-object-row > button:first-child { text-align:left; }
[data-toantin-tool="concept_map"] .cmap-object-row span { color:var(--cmap-muted); font-size:.875em; }
[data-toantin-tool="concept_map"] .cmap-mini-navigator { display:flex; align-items:center; gap:8px; min-height:50px; padding:7px 12px; border-top:1px solid var(--cmap-border); background:var(--cmap-surface); }
[data-toantin-tool="concept_map"] .cmap-mini-navigator span { color:var(--cmap-muted); margin-right:auto; }
[data-toantin-tool="concept_map"] .cmap-property-panel { height:100%; overflow:auto; padding:12px; background:var(--cmap-surface); }
[data-toantin-tool="concept_map"] .cmap-inspector-model > header { position:sticky; top:0; padding:8px 0 12px; background:var(--cmap-surface); z-index:1; }
[data-toantin-tool="concept_map"] .cmap-inspector-model dl { display:grid; gap:8px; margin:0; }
[data-toantin-tool="concept_map"] .cmap-inspector-model dl > div { display:grid; grid-template-columns:minmax(110px,.75fr) minmax(0,1.25fr); gap:10px; padding:8px 0; border-bottom:1px solid var(--cmap-border); }
[data-toantin-tool="concept_map"] .cmap-inspector-model dt { color:var(--cmap-muted); font-weight:650; }
[data-toantin-tool="concept_map"] .cmap-inspector-model dd { margin:0; overflow-wrap:anywhere; }
[data-toantin-tool="concept_map"] .cmap-recovery { display:grid; gap:6px; margin-top:18px; padding-top:14px; border-top:1px solid var(--cmap-border); }
[data-toantin-tool="concept_map"] .cmap-recovery button { text-align:left; }
@media (max-width: 767.98px) {
  [data-toantin-tool="concept_map"] .cmap-full-head { align-items:flex-start; flex-direction:column; }
  [data-toantin-tool="concept_map"] .cmap-full-tabs { width:100%; justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; }
  [data-toantin-tool="concept_map"] .cmap-full-tabs button { flex:0 0 auto; }
  [data-toantin-tool="concept_map"] .cmap-full-relations button { grid-template-columns:1fr; }
  [data-toantin-tool="concept_map"] .cmap-object-row { grid-template-columns:minmax(0,1fr) auto; }
  [data-toantin-tool="concept_map"] .cmap-object-row span { grid-column:1/-1; }
  [data-toantin-tool="concept_map"] .cmap-mini-navigator[data-compact="true"] { display:none; }
}

/* A7 Presentation / responsive / accessibility hardening — scoped only. */
[data-toantin-tool="concept_map"] .cmap-presentation { display:grid; grid-template-rows:auto minmax(0,1fr) auto; width:100%; height:100%; min-height:360px; background:var(--cmap-bg); color:var(--cmap-text); }
[data-toantin-tool="concept_map"] .cmap-presentation > header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border-bottom:1px solid var(--cmap-border); background:var(--cmap-surface); }
[data-toantin-tool="concept_map"] .cmap-presentation > header > div:first-child { display:grid; gap:2px; min-width:0; }
[data-toantin-tool="concept_map"] .cmap-presentation > header span,
[data-toantin-tool="concept_map"] .cmap-presentation > footer { color:var(--cmap-muted); font-size:.875rem; }
[data-toantin-tool="concept_map"] .cmap-presentation-actions { display:flex; flex-wrap:wrap; gap:6px; }
[data-toantin-tool="concept_map"] .cmap-presentation-actions button { min-width:44px; min-height:44px; border:1px solid var(--cmap-border); border-radius:10px; padding:8px 11px; background:var(--cmap-surface); color:var(--cmap-text); font:inherit; cursor:pointer; }
[data-toantin-tool="concept_map"] .cmap-presentation-actions button:disabled { opacity:.45; cursor:not-allowed; }
[data-toantin-tool="concept_map"] .cmap-presentation-stage { min-height:0; overflow:auto; padding:8px; }
[data-toantin-tool="concept_map"] .cmap-presentation-stage .cmap-map-svg { min-width:640px; min-height:420px; }
[data-toantin-tool="concept_map"] .cmap-presentation > footer { padding:8px 12px; border-top:1px solid var(--cmap-border); background:var(--cmap-surface); }
[data-toantin-tool="concept_map"] button:focus-visible,
[data-toantin-tool="concept_map"] [tabindex="0"]:focus-visible,
[data-toantin-tool="concept_map"] input:focus-visible { outline:3px solid color-mix(in srgb, var(--cmap-primary) 28%, transparent); outline-offset:2px; }
@media (pointer: coarse) {
  [data-toantin-tool="concept_map"] button,
  [data-toantin-tool="concept_map"] [role="button"],
  [data-toantin-tool="concept_map"] input { min-height:44px; }
}
@media (max-width: 767.98px) {
  [data-toantin-tool="concept_map"] .cmap-presentation > header { align-items:flex-start; flex-direction:column; }
  [data-toantin-tool="concept_map"] .cmap-presentation-actions { width:100%; overflow-x:auto; flex-wrap:nowrap; padding-bottom:2px; }
  [data-toantin-tool="concept_map"] .cmap-presentation-actions button { flex:0 0 auto; }
  [data-toantin-tool="concept_map"] .cmap-presentation > footer { font-size:.8rem; }
}

/* Post-A9 batch UX/branding patch: TOÁN TIN utility area is separate from contextual toolbar. */
[data-toantin-tool="concept_map"] .cmap-corner-nav { position:absolute; top:10px; left:10px; z-index:calc(var(--cmap-z-context) + 2); display:flex; align-items:center; gap:6px; height:44px; }
[data-toantin-tool="concept_map"] .cmap-home-trigger { width:44px; height:44px; min-width:44px; min-height:44px; display:grid; place-items:center; border:1px solid var(--cmap-border); border-radius:50%; background:var(--cmap-surface); color:var(--cmap-primary); box-shadow:0 8px 22px rgba(31,48,70,.12); text-decoration:none; cursor:pointer; }
[data-toantin-tool="concept_map"] .cmap-home-trigger:hover { background:var(--cmap-primary-soft); }
[data-toantin-tool="concept_map"] .cmap-home-trigger svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
[data-toantin-tool="concept_map"] .cmap-brand-mark { width:44px; height:44px; display:block; flex:0 0 44px; border-radius:12px; background:url("../../assets/branding/toantin-logo-round.png") center/contain no-repeat; filter:drop-shadow(0 5px 10px rgba(31,48,70,.12)); }

/* Post-A9 UX patch: one always-available Vietnamese Help icon + scoped help panel. */
[data-toantin-tool="concept_map"] .cmap-help-trigger { position:absolute; top:10px; right:10px; z-index:calc(var(--cmap-z-context) + 2); width:44px; height:44px; min-width:44px; min-height:44px; display:grid; place-items:center; padding:0; border:1px solid var(--cmap-border); border-radius:50%; background:var(--cmap-surface); color:var(--cmap-primary); box-shadow:0 8px 22px rgba(31,48,70,.14); font:700 20px/1 system-ui,-apple-system,"Segoe UI",sans-serif; cursor:pointer; }
[data-toantin-tool="concept_map"] .cmap-help-trigger:hover { background:var(--cmap-primary-soft); }
[data-toantin-tool="concept_map"] .cmap-reset-trigger { position:absolute; top:10px; right:62px; z-index:calc(var(--cmap-z-context) + 2); width:44px; height:44px; min-width:44px; min-height:44px; display:grid; place-items:center; padding:0; border:1px solid var(--cmap-border); border-radius:50%; background:var(--cmap-surface); color:var(--cmap-text); box-shadow:0 8px 22px rgba(31,48,70,.14); font:700 18px/1 system-ui,-apple-system,"Segoe UI",sans-serif; cursor:pointer; }
[data-toantin-tool="concept_map"] .cmap-reset-trigger:hover { background:color-mix(in srgb,#dc2626 9%,var(--cmap-surface)); color:#b91c1c; }
[data-toantin-tool="concept_map"] .cmap-help-panel { position:absolute; top:62px; right:10px; z-index:calc(var(--cmap-z-context) + 3); width:min(440px,calc(100% - 20px)); max-height:calc(100% - 76px); display:grid; grid-template-rows:auto minmax(0,1fr); overflow:hidden; border:1px solid var(--cmap-border); border-radius:16px; background:var(--cmap-surface); color:var(--cmap-text); box-shadow:0 18px 50px rgba(19,47,76,.2); }
[data-toantin-tool="concept_map"] .cmap-help-panel > header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border-bottom:1px solid var(--cmap-border); background:var(--cmap-surface); }
[data-toantin-tool="concept_map"] .cmap-help-panel > header > div { display:grid; gap:2px; }
[data-toantin-tool="concept_map"] .cmap-help-panel > header .cmap-help-heading { display:flex; align-items:center; gap:10px; min-width:0; }
[data-toantin-tool="concept_map"] .cmap-help-panel > header .cmap-help-heading > div { display:grid; gap:2px; min-width:0; }
[data-toantin-tool="concept_map"] .cmap-help-brand-logo { width:64px; height:44px; flex:0 0 64px; display:block; background:url("../../assets/branding/toantin-logo-full.png") center/contain no-repeat; }
[data-toantin-tool="concept_map"] .cmap-help-panel > header span { color:var(--cmap-muted); font-size:.8rem; }
[data-toantin-tool="concept_map"] .cmap-help-panel > header button { width:44px; height:44px; min-width:44px; min-height:44px; border:1px solid var(--cmap-border); border-radius:10px; background:var(--cmap-surface); color:var(--cmap-text); font:700 22px/1 inherit; cursor:pointer; }
[data-toantin-tool="concept_map"] .cmap-help-body { min-height:0; overflow:auto; padding:10px 12px 16px; }
[data-toantin-tool="concept_map"] .cmap-help-topic { border-bottom:1px solid var(--cmap-border); }
[data-toantin-tool="concept_map"] .cmap-help-topic > summary { min-height:44px; display:flex; align-items:center; padding:8px 2px; font-weight:700; cursor:pointer; }
[data-toantin-tool="concept_map"] .cmap-help-topic ul { margin:0 0 12px; padding-left:22px; color:var(--cmap-text); }
[data-toantin-tool="concept_map"] .cmap-help-topic li { margin:6px 0; line-height:1.45; }
@media (max-width:575.98px) {
  [data-toantin-tool="concept_map"] .cmap-corner-nav { top:8px; left:8px; }
  [data-toantin-tool="concept_map"] .cmap-brand-mark { display:none; }
  [data-toantin-tool="concept_map"] .cmap-help-trigger { top:8px; right:8px; }
  [data-toantin-tool="concept_map"] .cmap-reset-trigger { top:8px; right:60px; }
  [data-toantin-tool="concept_map"] .cmap-help-panel { top:60px; right:8px; width:calc(100% - 16px); max-height:calc(100% - 70px); }
}

/* Post-A9 UX patch 02: keep Help separate from contextual toolbar and make contextual actions visible. */
[data-toantin-tool="concept_map"] .cmap-context-toolbar {
  left: auto;
  max-width: calc(100% - 248px);
  margin-right: 120px;
  margin-left: 116px;
}
[data-toantin-tool="concept_map"] .cmap-context-panel {
  position: absolute;
  top: 72px;
  right: 68px;
  z-index: calc(var(--cmap-z-context) + 3);
  width: min(520px, calc(100% - 24px));
  max-height: calc(100% - 84px);
  margin: 0;
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--cmap-border);
  border-radius: 14px;
  background: var(--cmap-surface);
  box-shadow: 0 16px 42px rgba(31,48,70,.18);
}
[data-toantin-tool="concept_map"] .cmap-context-panel > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
  border-bottom: 1px solid var(--cmap-border);
}
[data-toantin-tool="concept_map"] .cmap-context-panel > header button,
[data-toantin-tool="concept_map"] .cmap-context-panel__choices button,
[data-toantin-tool="concept_map"] .cmap-label-add button {
  min-width: 44px;
  min-height: 44px;
  border: 1px solid var(--cmap-border);
  border-radius: 10px;
  background: var(--cmap-surface);
  color: var(--cmap-text);
  cursor: pointer;
}
[data-toantin-tool="concept_map"] .cmap-context-panel__choices {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 10px;
}
[data-toantin-tool="concept_map"] .cmap-context-panel__choices button[aria-pressed="true"] {
  border-color: var(--cmap-primary);
  background: var(--cmap-primary-soft);
}
[data-toantin-tool="concept_map"] .cmap-context-panel__empty { padding: 8px 2px; color: var(--cmap-muted); }
[data-toantin-tool="concept_map"] .cmap-label-add {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 8px;
  padding: 10px 10px 0;
}
[data-toantin-tool="concept_map"] .cmap-label-add input {
  min-width: 0;
  min-height: 44px;
  position: relative;
  z-index: 1;
  border: 1px solid var(--cmap-border);
  border-radius: 10px;
  padding: 8px 10px;
  background: var(--cmap-surface);
  color: var(--cmap-text);
  cursor: text;
  pointer-events: auto;
  user-select: text;
  touch-action: auto;
}
[data-toantin-tool="concept_map"] .cmap-color-palette { display:grid; grid-template-columns:repeat(auto-fit,minmax(44px,1fr)); gap:8px; padding:10px; }
[data-toantin-tool="concept_map"] .cmap-color-swatch { min-width:44px; min-height:44px; display:grid; place-items:center; padding:5px; border:2px solid transparent; border-radius:12px; background:var(--cmap-surface); cursor:pointer; }
[data-toantin-tool="concept_map"] .cmap-color-swatch > span { width:30px; height:30px; display:block; border-radius:9px; background:var(--cmap-swatch); box-shadow:inset 0 0 0 1px rgba(15,23,42,.16); }
[data-toantin-tool="concept_map"] .cmap-color-swatch[aria-pressed="true"] { border-color:var(--cmap-primary); background:var(--cmap-primary-soft); }
[data-toantin-tool="concept_map"] .cmap-color-custom-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:10px; padding:0 10px 12px; color:var(--cmap-text); }
[data-toantin-tool="concept_map"] .cmap-color-custom-row input[type="color"] { width:48px; height:44px; padding:3px; border:1px solid var(--cmap-border); border-radius:10px; background:var(--cmap-surface); cursor:pointer; }
[data-toantin-tool="concept_map"] .cmap-color-custom-row code { color:var(--cmap-muted); font-size:.78rem; }
[data-toantin-tool="concept_map"] .cmap-action-feedback {
  position: absolute;
  right: 14px;
  bottom: 14px;
  z-index: calc(var(--cmap-z-context) + 2);
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: min(420px, calc(100% - 28px));
  padding: 9px 10px 9px 12px;
  border: 1px solid var(--cmap-border);
  border-radius: 12px;
  background: var(--cmap-surface);
  color: var(--cmap-text);
  box-shadow: 0 10px 26px rgba(31,48,70,.16);
}
[data-toantin-tool="concept_map"] .cmap-action-feedback button {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--cmap-muted);
  cursor: pointer;
}
@media (max-width: 575.98px) {
  [data-toantin-tool="concept_map"] .cmap-context-toolbar {
    top: 60px;
    left: auto;
    max-width: calc(100% - 16px);
    margin: 60px 8px -52px;
  }
  [data-toantin-tool="concept_map"] .cmap-context-panel {
    top: 116px;
    right: 8px;
    width: calc(100% - 16px);
    max-height: calc(100% - 124px);
    margin: 0;
  }
}


/* Post-A9 Fix 04 — commercial-feel interaction pipeline + draggable floating popups. */
[data-toantin-tool="concept_map"] .cmap-floating-popup {
  contain: layout;
  isolation: isolate;
  transform: translateZ(0);
}
[data-toantin-tool="concept_map"] .cmap-floating-popup > header[data-popup-drag-handle] {
  cursor: move;
  cursor: grab;
  touch-action: none;
  user-select: none;
}
[data-toantin-tool="concept_map"] .cmap-floating-popup > header[data-popup-drag-handle]::before {
  content: "⋮⋮";
  display: inline-grid;
  place-items: center;
  width: 20px;
  min-width: 20px;
  color: var(--cmap-muted);
  font-weight: 800;
  letter-spacing: -3px;
  opacity: .72;
}
[data-toantin-tool="concept_map"] .cmap-floating-popup.is-popup-dragging {
  z-index: calc(var(--cmap-z-inspector) + 8);
  box-shadow: 0 24px 64px rgba(19,47,76,.24);
  will-change: left, top;
}
[data-toantin-tool="concept_map"] .cmap-floating-popup.is-popup-dragging > header[data-popup-drag-handle] { cursor: grabbing; }
[data-toantin-tool="concept_map"] .cmap-node.is-dragging {
  cursor: grabbing;
  pointer-events: none;
  opacity: .96;
  filter: drop-shadow(0 10px 18px rgba(13,110,253,.22));
  will-change: transform;
}
[data-toantin-tool="concept_map"] .cmap-node.is-drop-target .cmap-node-box {
  stroke: var(--cmap-primary);
  stroke-width: 3.5;
  filter: drop-shadow(0 0 9px rgba(13,110,253,.3));
}
[data-toantin-tool="concept_map"].is-node-dragging .cmap-map-svg,
[data-toantin-tool="concept_map"].is-panning .cmap-map-svg { cursor: grabbing; }
[data-toantin-tool="concept_map"].is-node-dragging .cmap-context-toolbar { pointer-events: none; opacity: .82; }


/* Post-A9 Fix 06 — persistent document actions and safe reset confirmation. */
[data-toantin-tool="concept_map"] .cmap-reset-panel__body { padding:14px; display:grid; gap:14px; }
[data-toantin-tool="concept_map"] .cmap-reset-panel__body p { margin:0; line-height:1.5; color:var(--cmap-text); }
[data-toantin-tool="concept_map"] .cmap-reset-panel__actions { display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
[data-toantin-tool="concept_map"] .cmap-reset-panel__actions button { min-height:44px; padding:8px 14px; border:1px solid var(--cmap-border); border-radius:10px; background:var(--cmap-surface); color:var(--cmap-text); cursor:pointer; }
[data-toantin-tool="concept_map"] .cmap-reset-panel__actions button.is-danger { border-color:#dc2626; background:#dc2626; color:#fff; }

/* V2.0 — commercial interaction, style inspector, connector editing, text autosize. */
[data-toantin-tool="concept_map"] .cmap-mode-switch {
  position:absolute;
  top:auto;
  bottom:10px;
  left:10px;
  z-index:calc(var(--cmap-z-context) + 2);
  display:flex;
  gap:4px;
  padding:4px;
  border:1px solid var(--cmap-border);
  border-radius:13px;
  background:color-mix(in srgb,var(--cmap-surface) 94%,transparent);
  box-shadow:0 8px 22px rgba(31,48,70,.12);
  backdrop-filter:blur(10px);
}
[data-toantin-tool="concept_map"] .cmap-mode-switch button {
  min-height:44px;
  min-width:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:7px 11px;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  color:var(--cmap-text);
  font:inherit;
  cursor:pointer;
  white-space:nowrap;
}
[data-toantin-tool="concept_map"] .cmap-mode-switch button[aria-pressed="true"] {
  border-color:var(--cmap-primary);
  background:var(--cmap-primary-soft);
  color:var(--cmap-primary);
  font-weight:750;
}
[data-toantin-tool="concept_map"] .cmap-workspace-shell:has(.cmap-mode-switch button[data-action="mode-pan"][aria-pressed="true"]) .cmap-map-svg { cursor:grab; }
[data-toantin-tool="concept_map"].is-panning .cmap-map-svg { cursor:grabbing; }
[data-toantin-tool="concept_map"] .cmap-workspace-shell:has(.cmap-mode-switch button[data-action="mode-select"][aria-pressed="true"]) .cmap-node { cursor:pointer; }

[data-toantin-tool="concept_map"] .cmap-style-inspector {
  width:min(620px,calc(100% - 28px));
  max-height:min(720px,calc(100% - 90px));
  overflow:auto;
}
[data-toantin-tool="concept_map"] .cmap-style-inspector > header > div { display:grid; gap:2px; min-width:0; }
[data-toantin-tool="concept_map"] .cmap-style-inspector > header small { color:var(--cmap-muted); font-weight:500; }
[data-toantin-tool="concept_map"] .cmap-style-presets {
  position:relative;
  z-index:1;
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  padding:10px;
  border-bottom:1px solid var(--cmap-border);
  background:color-mix(in srgb,var(--cmap-surface) 96%,transparent);
  backdrop-filter:blur(8px);
}
[data-toantin-tool="concept_map"] .cmap-style-presets button,
[data-toantin-tool="concept_map"] .cmap-style-footer button {
  min-height:40px;
  border:1px solid var(--cmap-border);
  border-radius:10px;
  padding:7px 11px;
  background:var(--cmap-surface);
  color:var(--cmap-text);
  cursor:pointer;
}
[data-toantin-tool="concept_map"] .cmap-style-presets button:hover,
[data-toantin-tool="concept_map"] .cmap-style-footer button:hover { background:var(--cmap-primary-soft); border-color:var(--cmap-primary); }
[data-toantin-tool="concept_map"] .cmap-style-section { padding:11px 12px 13px; border-bottom:1px solid var(--cmap-border); }
[data-toantin-tool="concept_map"] .cmap-style-section h4 { margin:0 0 10px; font-size:.92rem; font-weight:800; color:var(--cmap-text); }
[data-toantin-tool="concept_map"] .cmap-style-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 12px;
  padding:12px;
}
[data-toantin-tool="concept_map"] .cmap-style-section .cmap-style-grid { padding:0; }
[data-toantin-tool="concept_map"] .cmap-style-field { display:grid; gap:5px; min-width:0; }
[data-toantin-tool="concept_map"] .cmap-style-field > span { color:var(--cmap-muted); font-size:.78rem; font-weight:700; }
[data-toantin-tool="concept_map"] .cmap-style-field select,
[data-toantin-tool="concept_map"] .cmap-style-field input[type="number"],
[data-toantin-tool="concept_map"] .cmap-style-field input[type="text"],
[data-toantin-tool="concept_map"] .cmap-style-field input[type="color"] {
  width:100%;
  min-height:42px;
  border:1px solid var(--cmap-border);
  border-radius:9px;
  padding:6px 8px;
  background:var(--cmap-surface);
  color:var(--cmap-text);
  font:inherit;
}
[data-toantin-tool="concept_map"] .cmap-style-field input[type="color"] { padding:3px; cursor:pointer; }
[data-toantin-tool="concept_map"] .cmap-style-check { min-height:42px; display:flex; align-items:center; gap:8px; padding:8px 9px; border:1px solid var(--cmap-border); border-radius:9px; }
[data-toantin-tool="concept_map"] .cmap-style-check input { width:18px; height:18px; accent-color:var(--cmap-primary); }
[data-toantin-tool="concept_map"] .cmap-style-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:10px 12px 13px; color:var(--cmap-muted); font-size:.82rem; line-height:1.4; }

[data-toantin-tool="concept_map"] .cmap-connector-handle { cursor:move; pointer-events:all; }
[data-toantin-tool="concept_map"] .cmap-connector-anchor-handle { fill:var(--cmap-surface); stroke:var(--cmap-primary); stroke-width:2.25; vector-effect:non-scaling-stroke; cursor:move; pointer-events:all; }
[data-toantin-tool="concept_map"] .cmap-connector-control-handle { fill:#fff7ed; stroke:#f97316; stroke-width:2.25; vector-effect:non-scaling-stroke; cursor:move; pointer-events:all; }
[data-toantin-tool="concept_map"] .cmap-connector-anchor-handle:hover,
[data-toantin-tool="concept_map"] .cmap-connector-control-handle:hover { filter:drop-shadow(0 0 5px rgba(13,110,253,.45)); }
[data-toantin-tool="concept_map"] .cmap-node.is-central .cmap-node-box { filter:drop-shadow(0 7px 14px rgba(15,23,42,.20)); }
[data-toantin-tool="concept_map"] .cmap-node.is-central .cmap-node-text { letter-spacing:.01em; }

[data-toantin-tool="concept_map"] textarea.cmap-inline-editor {
  display:block;
  max-width:min(520px,calc(100% - 32px));
  max-height:360px;
  resize:none;
  overflow:auto;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  line-height:1.35;
  font:inherit;
}

@media (max-width: 767.98px) {
  [data-toantin-tool="concept_map"] .cmap-mode-switch { left:8px; top:auto; bottom:8px; }
  [data-toantin-tool="concept_map"] .cmap-mode-switch button span { display:none; }
  [data-toantin-tool="concept_map"] .cmap-style-grid { grid-template-columns:1fr; }
  [data-toantin-tool="concept_map"] .cmap-style-inspector { width:calc(100% - 16px); max-height:calc(100% - 124px); }
}
@media (pointer:coarse) {
  [data-toantin-tool="concept_map"] .cmap-mode-switch button,
  [data-toantin-tool="concept_map"] .cmap-style-presets button,
  [data-toantin-tool="concept_map"] .cmap-style-footer button,
  [data-toantin-tool="concept_map"] .cmap-style-field select,
  [data-toantin-tool="concept_map"] .cmap-style-field input { min-height:44px; }
  [data-toantin-tool="concept_map"] .cmap-connector-anchor-handle { cursor:move; }
}

/* V2.0 property-panel qualification patch — 3-column inspector, 8-way resize, teaching dock. */
[data-toantin-tool="concept_map"] .cmap-style-inspector {
  width:min(780px,calc(100% - 28px));
  height:min(690px,calc(100% - 90px));
  min-width:520px;
  min-height:360px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
[data-toantin-tool="concept_map"] .cmap-style-inspector > header,
[data-toantin-tool="concept_map"] .cmap-style-presets,
[data-toantin-tool="concept_map"] .cmap-property-table-head,
[data-toantin-tool="concept_map"] .cmap-style-footer { flex:0 0 auto; }
[data-toantin-tool="concept_map"] .cmap-property-table-head {
  display:grid;
  grid-template-columns:minmax(130px,.9fr) minmax(210px,1.35fr) minmax(130px,.8fr);
  gap:10px;
  padding:9px 12px;
  border-top:1px solid var(--cmap-border);
  border-bottom:1px solid var(--cmap-border);
  background:color-mix(in srgb,var(--cmap-surface) 94%,#edf4ff 6%);
  color:var(--cmap-text);
  font-size:.79rem;
  font-weight:800;
  position:relative;
  z-index:3;
}
[data-toantin-tool="concept_map"] .cmap-property-table-wrap {
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
[data-toantin-tool="concept_map"] .cmap-style-inspector .cmap-style-section { padding:0; }
[data-toantin-tool="concept_map"] .cmap-style-inspector .cmap-style-section h4 {
  margin:0;
  padding:9px 12px;
  border-bottom:1px solid var(--cmap-border);
  background:color-mix(in srgb,var(--cmap-surface) 97%,var(--cmap-primary-soft) 3%);
}
[data-toantin-tool="concept_map"] .cmap-style-inspector .cmap-style-grid { display:block; padding:0; }
[data-toantin-tool="concept_map"] .cmap-property-row {
  display:grid;
  grid-template-columns:minmax(130px,.9fr) minmax(210px,1.35fr) minmax(130px,.8fr);
  gap:10px;
  align-items:center;
  min-height:52px;
  padding:7px 12px;
  border-bottom:1px solid color-mix(in srgb,var(--cmap-border) 76%,transparent);
}
[data-toantin-tool="concept_map"] .cmap-property-row:hover { background:color-mix(in srgb,var(--cmap-primary-soft) 32%,transparent); }
[data-toantin-tool="concept_map"] .cmap-property-name { color:var(--cmap-text); font-weight:720; line-height:1.25; }
[data-toantin-tool="concept_map"] .cmap-property-control { min-width:0; }
[data-toantin-tool="concept_map"] .cmap-property-control > input,
[data-toantin-tool="concept_map"] .cmap-property-control > select,
[data-toantin-tool="concept_map"] .cmap-property-control .cmap-style-check { width:100%; }
[data-toantin-tool="concept_map"] .cmap-property-control input[type="number"],
[data-toantin-tool="concept_map"] .cmap-property-control input[type="text"],
[data-toantin-tool="concept_map"] .cmap-property-control input[type="color"],
[data-toantin-tool="concept_map"] .cmap-property-control select {
  box-sizing:border-box;
  min-height:40px;
  border:1px solid var(--cmap-border);
  border-radius:9px;
  background:var(--cmap-surface);
  color:var(--cmap-text);
  padding:6px 8px;
  font:inherit;
}
[data-toantin-tool="concept_map"] .cmap-property-control input[type="color"] { padding:3px; cursor:pointer; }
[data-toantin-tool="concept_map"] .cmap-property-apply { display:flex; justify-content:center; }
[data-toantin-tool="concept_map"] .cmap-apply-all { display:inline-flex; align-items:center; gap:7px; min-height:36px; padding:5px 8px; border:1px solid var(--cmap-border); border-radius:999px; cursor:pointer; user-select:none; background:var(--cmap-surface); }
[data-toantin-tool="concept_map"] .cmap-apply-all input { width:17px; height:17px; accent-color:var(--cmap-primary); }
[data-toantin-tool="concept_map"] .cmap-apply-all span { font-size:.76rem; font-weight:700; color:var(--cmap-muted); }
[data-toantin-tool="concept_map"] .cmap-apply-all-na { color:var(--cmap-muted); opacity:.55; }

[data-toantin-tool="concept_map"] .cmap-popup-resize { position:absolute; z-index:8; pointer-events:auto; }
[data-toantin-tool="concept_map"] .cmap-popup-resize-n { top:-5px; left:12px; right:12px; height:10px; cursor:n-resize; }
[data-toantin-tool="concept_map"] .cmap-popup-resize-s { bottom:-5px; left:12px; right:12px; height:10px; cursor:s-resize; }
[data-toantin-tool="concept_map"] .cmap-popup-resize-e { right:-5px; top:12px; bottom:12px; width:10px; cursor:e-resize; }
[data-toantin-tool="concept_map"] .cmap-popup-resize-w { left:-5px; top:12px; bottom:12px; width:10px; cursor:w-resize; }
[data-toantin-tool="concept_map"] .cmap-popup-resize-ne,
[data-toantin-tool="concept_map"] .cmap-popup-resize-nw,
[data-toantin-tool="concept_map"] .cmap-popup-resize-se,
[data-toantin-tool="concept_map"] .cmap-popup-resize-sw { width:18px; height:18px; }
[data-toantin-tool="concept_map"] .cmap-popup-resize-ne { top:-7px; right:-7px; cursor:ne-resize; }
[data-toantin-tool="concept_map"] .cmap-popup-resize-nw { top:-7px; left:-7px; cursor:nw-resize; }
[data-toantin-tool="concept_map"] .cmap-popup-resize-se { bottom:-7px; right:-7px; cursor:se-resize; }
[data-toantin-tool="concept_map"] .cmap-popup-resize-sw { bottom:-7px; left:-7px; cursor:sw-resize; }
[data-toantin-tool="concept_map"] .cmap-resizable-popup.is-popup-resizing { user-select:none; z-index:calc(var(--cmap-z-inspector) + 9); }

[data-toantin-tool="concept_map"] .cmap-teaching-dock {
  position:absolute;
  left:12px;
  bottom:12px;
  z-index:calc(var(--cmap-z-context) + 3);
  display:flex;
  align-items:flex-end;
  gap:8px;
}
[data-toantin-tool="concept_map"] .cmap-mode-switch {
  position:static;
  display:flex;
  gap:6px;
  padding:6px;
  border-radius:18px;
  background:color-mix(in srgb,var(--cmap-surface) 78%,transparent);
  border:1px solid color-mix(in srgb,var(--cmap-border) 70%,transparent);
  box-shadow:0 9px 22px rgba(15,23,42,.16), inset 0 1px 0 rgba(255,255,255,.65);
  backdrop-filter:blur(10px);
  opacity:.78;
}
[data-toantin-tool="concept_map"] .cmap-mode-switch:hover { opacity:1; }
[data-toantin-tool="concept_map"] .cmap-mode-switch button {
  width:52px;
  height:52px;
  min-width:52px;
  min-height:52px;
  padding:0;
  border-radius:15px;
  background:linear-gradient(145deg,#ffffff,#e6edf8);
  border:1px solid #cdd8e7;
  box-shadow:0 4px 9px rgba(31,48,70,.16), inset 0 1px 1px #fff;
  color:#4b5f78;
}
[data-toantin-tool="concept_map"] .cmap-mode-switch button svg { width:27px; height:27px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
[data-toantin-tool="concept_map"] .cmap-mode-switch button[aria-pressed="true"] { color:var(--cmap-primary); background:linear-gradient(145deg,#eff6ff,#dbeafe); border-color:var(--cmap-primary); box-shadow:0 4px 10px rgba(37,99,235,.18), inset 0 1px 0 #fff; }
[data-toantin-tool="concept_map"] .cmap-pen-options {
  display:flex;
  align-items:center;
  gap:6px;
  padding:7px;
  border:1px solid var(--cmap-border);
  border-radius:14px;
  background:color-mix(in srgb,var(--cmap-surface) 95%,transparent);
  box-shadow:0 8px 18px rgba(15,23,42,.12);
}
[data-toantin-tool="concept_map"] .cmap-pen-options input[type="color"] { width:42px; height:42px; padding:3px; border:1px solid var(--cmap-border); border-radius:10px; background:var(--cmap-surface); }
[data-toantin-tool="concept_map"] .cmap-pen-options select,
[data-toantin-tool="concept_map"] .cmap-pen-options button { min-height:42px; border:1px solid var(--cmap-border); border-radius:10px; background:var(--cmap-surface); color:var(--cmap-text); padding:6px 9px; }
[data-toantin-tool="concept_map"] .cmap-workspace-shell:has(.cmap-mode-switch button[data-action="mode-draw"][aria-pressed="true"]) .cmap-map-svg { cursor:crosshair; }
[data-toantin-tool="concept_map"] .cmap-ink-stroke { pointer-events:none; }
[data-toantin-tool="concept_map"] .cmap-ink-stroke.is-preview { opacity:.88; }
[data-toantin-tool="concept_map"] .cmap-edge-hit { fill:none; stroke:transparent; stroke-width:16; pointer-events:stroke; cursor:pointer; }
[data-toantin-tool="concept_map"] .cmap-tree-edge.is-selected,
[data-toantin-tool="concept_map"] .cmap-relation-edge.is-selected { filter:drop-shadow(0 0 4px rgba(37,99,235,.45)); }

@media (max-width: 767.98px) {
  [data-toantin-tool="concept_map"] .cmap-style-inspector { min-width:0; min-height:320px; width:calc(100% - 16px); height:min(620px,calc(100% - 118px)); }
  [data-toantin-tool="concept_map"] .cmap-property-table-head,
  [data-toantin-tool="concept_map"] .cmap-property-row { grid-template-columns:minmax(96px,.8fr) minmax(150px,1.3fr) minmax(94px,.72fr); gap:7px; }
  [data-toantin-tool="concept_map"] .cmap-apply-all span { display:none; }
  [data-toantin-tool="concept_map"] .cmap-teaching-dock { left:8px; bottom:8px; }
  [data-toantin-tool="concept_map"] .cmap-mode-switch button { width:48px; height:48px; min-width:48px; min-height:48px; }
}

/* V2.0 Fix 03 — contextual quick-property toolbar. Basic, low-risk properties stay one click away;
   Apply-All remains inside the detailed Inspector to prevent accidental broad changes. */
[data-toantin-tool="concept_map"] .cmap-quick-toolbar {
  gap:5px;
  padding:5px 7px;
  overflow-x:auto;
  scrollbar-width:thin;
}
[data-toantin-tool="concept_map"] .cmap-quick-toolbar .cmap-quick-icon,
[data-toantin-tool="concept_map"] .cmap-quick-toolbar .cmap-quick-color {
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:42px;
  height:42px;
  min-width:42px;
  min-height:42px;
  padding:0;
  border:1px solid var(--cmap-border);
  border-radius:10px;
  background:var(--cmap-surface);
  color:var(--cmap-text);
  cursor:pointer;
  user-select:none;
}
[data-toantin-tool="concept_map"] .cmap-quick-toolbar .cmap-quick-icon:hover,
[data-toantin-tool="concept_map"] .cmap-quick-toolbar .cmap-quick-color:hover {
  border-color:var(--cmap-primary);
  background:var(--cmap-primary-soft);
}
[data-toantin-tool="concept_map"] .cmap-quick-toolbar .cmap-quick-icon[aria-pressed="true"] {
  border-color:var(--cmap-primary);
  background:var(--cmap-primary-soft);
}
[data-toantin-tool="concept_map"] .cmap-quick-toolbar .cmap-quick-icon > span,
[data-toantin-tool="concept_map"] .cmap-quick-toolbar .cmap-quick-icon > strong,
[data-toantin-tool="concept_map"] .cmap-quick-toolbar .cmap-quick-color > span {
  font-size:19px;
  line-height:1;
  pointer-events:none;
}
[data-toantin-tool="concept_map"] .cmap-quick-toolbar .cmap-quick-icon > small {
  position:absolute;
  right:3px;
  bottom:2px;
  padding:0 2px;
  border-radius:4px;
  background:var(--cmap-surface);
  color:var(--cmap-muted);
  font-size:8px;
  font-weight:800;
  line-height:1.15;
  pointer-events:none;
}
[data-toantin-tool="concept_map"] .cmap-quick-color > span {
  color:var(--cmap-primary);
  text-shadow:0 0 0 var(--cmap-text);
}
[data-toantin-tool="concept_map"] .cmap-quick-color input[type="color"] {
  position:absolute;
  inset:4px;
  width:34px;
  height:34px;
  padding:0;
  border:0;
  border-radius:8px;
  opacity:.22;
  cursor:pointer;
}
[data-toantin-tool="concept_map"] .cmap-quick-count {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  min-width:28px;
  height:28px;
  padding:0 7px;
  border-radius:999px;
  background:var(--cmap-primary-soft);
  color:var(--cmap-primary);
  font-size:11px;
  font-weight:800;
}
[data-toantin-tool="concept_map"] .cmap-rule-status {
  display:inline-flex;
  align-items:center;
  margin-left:6px;
  padding:2px 7px;
  border:1px solid var(--cmap-border);
  border-radius:999px;
  background:var(--cmap-primary-soft);
  color:var(--cmap-primary);
  font-size:.72rem;
  font-weight:800;
  white-space:nowrap;
}
@media (pointer:coarse) {
  [data-toantin-tool="concept_map"] .cmap-quick-toolbar .cmap-quick-icon,
  [data-toantin-tool="concept_map"] .cmap-quick-toolbar .cmap-quick-color {
    width:44px;
    height:44px;
    min-width:44px;
    min-height:44px;
  }
}

/* V2.0 Fix04 — one interaction-mode truth source for cursor + dock state. */
[data-toantin-tool="concept_map"][data-cmap-interaction-mode="select"] .cmap-map-svg,
[data-toantin-tool="concept_map"][data-cmap-interaction-mode="select"] .cmap-node { cursor:default; }
[data-toantin-tool="concept_map"][data-cmap-interaction-mode="pan"] .cmap-map-svg,
[data-toantin-tool="concept_map"][data-cmap-interaction-mode="pan"] .cmap-node { cursor:grab; }
[data-toantin-tool="concept_map"][data-cmap-interaction-mode="draw"] .cmap-map-svg { cursor:crosshair; }
[data-toantin-tool="concept_map"].is-panning .cmap-map-svg,
[data-toantin-tool="concept_map"].is-panning .cmap-node { cursor:grabbing; }

/* Fix 05 — square swatch color system */
[data-toantin-tool="concept_map"] .cmap-color-palette { display:grid; grid-template-columns:repeat(auto-fit,minmax(44px,1fr)); gap:8px; padding:10px; }
[data-toantin-tool="concept_map"] .cmap-color-swatch,
[data-toantin-tool="concept_map"] .cmap-color-picker__swatch {
  min-width:32px;
  min-height:32px;
  display:grid;
  place-items:center;
  padding:4px;
  border:1px solid var(--cmap-border);
  border-radius:10px;
  background:var(--cmap-surface);
  cursor:pointer;
}
[data-toantin-tool="concept_map"] .cmap-color-swatch > span,
[data-toantin-tool="concept_map"] .cmap-color-picker__swatch > span {
  width:100%;
  height:22px;
  display:block;
  border-radius:4px;
  background:var(--cmap-swatch);
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.16);
}
[data-toantin-tool="concept_map"] .cmap-color-swatch[aria-pressed="true"],
[data-toantin-tool="concept_map"] .cmap-color-picker__swatch[aria-pressed="true"] {
  border-color:var(--cmap-primary);
  background:var(--cmap-primary-soft);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--cmap-primary) 28%, transparent);
}
[data-toantin-tool="concept_map"] .cmap-color-picker { display:grid; gap:8px; }
[data-toantin-tool="concept_map"] .cmap-color-picker__swatches { display:grid; grid-template-columns:repeat(auto-fit,minmax(32px,1fr)); gap:6px; }
[data-toantin-tool="concept_map"] .cmap-color-picker__footer { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
[data-toantin-tool="concept_map"] .cmap-color-picker__custom {
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:36px;
  padding:4px 8px;
  border:1px dashed var(--cmap-border);
  border-radius:10px;
  background:color-mix(in srgb, var(--cmap-surface) 94%, var(--cmap-primary-soft));
}
[data-toantin-tool="concept_map"] .cmap-color-picker__custom > span { font-size:.78rem; color:var(--cmap-muted); }
[data-toantin-tool="concept_map"] .cmap-color-picker__custom input[type="color"] { width:44px; height:30px; padding:0; border:0; border-radius:8px; background:transparent; cursor:pointer; }
[data-toantin-tool="concept_map"] .cmap-color-picker__footer code,
[data-toantin-tool="concept_map"] .cmap-color-custom-row code { color:var(--cmap-muted); font-size:.78rem; }
[data-toantin-tool="concept_map"] .cmap-quick-color-menu { position:relative; flex:0 0 auto; }
[data-toantin-tool="concept_map"] .cmap-quick-color-menu > summary {
  list-style:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  min-width:42px;
  min-height:42px;
  padding:0;
  border:1px solid var(--cmap-border);
  border-radius:10px;
  background:var(--cmap-surface);
  color:var(--cmap-text);
  cursor:pointer;
  user-select:none;
}
[data-toantin-tool="concept_map"] .cmap-quick-color-menu > summary::-webkit-details-marker { display:none; }
[data-toantin-tool="concept_map"] .cmap-quick-color-menu > summary:hover,
[data-toantin-tool="concept_map"] .cmap-quick-color-menu[open] > summary { border-color:var(--cmap-primary); background:var(--cmap-primary-soft); }
[data-toantin-tool="concept_map"] .cmap-quick-color-chip { width:22px; height:22px; display:block; border-radius:6px; background:var(--cmap-swatch); box-shadow:inset 0 0 0 1px rgba(15,23,42,.18); }
[data-toantin-tool="concept_map"] .cmap-quick-color-popover {
  position:absolute;
  left:0;
  top:calc(100% + 6px);
  z-index:calc(var(--cmap-z-context) + 4);
  width:min(250px, calc(100vw - 40px));
  display:grid;
  gap:8px;
  padding:10px;
  border:1px solid var(--cmap-border);
  border-radius:12px;
  background:var(--cmap-surface);
  box-shadow:0 14px 36px rgba(15,23,42,.18);
}
[data-toantin-tool="concept_map"] .cmap-quick-color-menu:not([open]) .cmap-quick-color-popover { display:none; }
[data-toantin-tool="concept_map"] .cmap-pen-options { gap:8px; }
[data-toantin-tool="concept_map"] .cmap-pen-options .cmap-quick-color-menu > summary,
[data-toantin-tool="concept_map"] .cmap-pen-options select,
[data-toantin-tool="concept_map"] .cmap-pen-options button { min-height:42px; }
[data-toantin-tool="concept_map"] .cmap-property-control .cmap-color-picker { width:100%; }
[data-toantin-tool="concept_map"] .cmap-property-control .cmap-color-picker__swatches { grid-template-columns:repeat(auto-fit,minmax(28px,1fr)); }


/* Fix 06 — professional toolbar color trigger */
[data-toantin-tool="concept_map"] .cmap-quick-color-menu > summary {
  gap:3px;
  width:48px;
  height:42px;
  min-width:48px;
  min-height:42px;
  padding:4px 3px 3px;
  grid-template-rows:auto auto;
  grid-template-columns:1fr auto;
}
[data-toantin-tool="concept_map"] .cmap-quick-color-trigger {
  display:grid;
  align-items:center;
  justify-items:center;
}
[data-toantin-tool="concept_map"] .cmap-quick-color-trigger__icon {
  grid-column:1 / span 2;
  font-weight:800;
  line-height:1;
  font-size:17px;
  color:var(--cmap-text);
}
[data-toantin-tool="concept_map"] .cmap-quick-color-trigger__icon--text {
  font-family: Georgia, 'Times New Roman', serif;
  font-size:20px;
}
[data-toantin-tool="concept_map"] .cmap-quick-color-trigger__icon--fill {
  font-size:18px;
}
[data-toantin-tool="concept_map"] .cmap-quick-color-trigger__icon--stroke {
  font-size:16px;
  transform:translateY(1px);
}
[data-toantin-tool="concept_map"] .cmap-quick-color-chip {
  width:22px;
  height:5px;
  display:block;
  align-self:end;
  justify-self:center;
  border-radius:999px;
  background:var(--cmap-swatch);
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.12);
}
[data-toantin-tool="concept_map"] .cmap-quick-color-caret {
  align-self:end;
  justify-self:end;
  font-size:10px;
  color:var(--cmap-muted);
  transform:translateY(1px);
}
[data-toantin-tool="concept_map"] .cmap-quick-color-popover { width:min(280px, calc(100vw - 40px)); }
[data-toantin-tool="concept_map"] .cmap-quick-color-popover__title {
  font-size:.82rem;
  font-weight:700;
  color:var(--cmap-text);
}
[data-toantin-tool="concept_map"] .cmap-quick-color-popover .cmap-color-picker__swatches { grid-template-columns:repeat(6,minmax(32px,1fr)); }
[data-toantin-tool="concept_map"] .cmap-context-toolbar .cmap-quick-color-menu[open] > summary,
[data-toantin-tool="concept_map"] .cmap-teaching-dock .cmap-quick-color-menu[open] > summary {
  border-color:var(--cmap-primary);
  background:linear-gradient(180deg,#f8fbff,#eef4ff);
}
[data-toantin-tool="concept_map"] .cmap-pen-color-menu > summary { width:52px; min-width:52px; }

/* Fix 07 — portal color flyout: rendered outside scrollable Quick Toolbar so it cannot be clipped. */
[data-toantin-tool="concept_map"] .cmap-quick-toolbar .cmap-quick-color-trigger,
[data-toantin-tool="concept_map"] .cmap-teaching-dock .cmap-quick-color-trigger {
  position:relative;
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-rows:minmax(20px,1fr) 6px;
  align-items:center;
  justify-items:center;
  width:48px;
  height:42px;
  min-width:48px;
  min-height:42px;
  padding:3px 4px 4px;
  border:1px solid var(--cmap-border);
  border-radius:10px;
  background:var(--cmap-surface);
  color:var(--cmap-text);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7);
  cursor:pointer;
}
[data-toantin-tool="concept_map"] .cmap-quick-toolbar .cmap-quick-color-trigger:hover,
[data-toantin-tool="concept_map"] .cmap-teaching-dock .cmap-quick-color-trigger:hover {
  border-color:var(--cmap-primary);
  background:var(--cmap-primary-soft);
}
[data-toantin-tool="concept_map"] .cmap-quick-color-trigger__icon {
  grid-column:1 / span 2;
  display:grid;
  place-items:center;
  width:25px;
  height:24px;
  color:var(--cmap-text);
}
[data-toantin-tool="concept_map"] .cmap-quick-color-trigger__icon svg {
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
[data-toantin-tool="concept_map"] .cmap-quick-color-trigger__icon--text svg { stroke-width:2; }
[data-toantin-tool="concept_map"] .cmap-quick-color-chip {
  grid-column:1;
  grid-row:2;
  width:26px;
  height:5px;
  border-radius:2px;
  background:var(--cmap-swatch);
  box-shadow:inset 0 0 0 1px rgba(15,23,42,.12);
}
[data-toantin-tool="concept_map"] .cmap-quick-color-caret {
  grid-column:2;
  grid-row:2;
  align-self:center;
  justify-self:end;
  font-size:9px;
  line-height:1;
  color:var(--cmap-muted);
}
[data-toantin-tool="concept_map"] .cmap-color-flyout {
  position:absolute;
  left:var(--cmap-color-flyout-x, 8px);
  top:var(--cmap-color-flyout-y, 58px);
  z-index:calc(var(--cmap-z-inspector) + 12);
  width:min(300px,calc(100% - 16px));
  max-height:min(430px,calc(100% - 16px));
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--cmap-border) 82%,var(--cmap-primary));
  border-radius:12px;
  background:var(--cmap-surface);
  color:var(--cmap-text);
  box-shadow:0 18px 44px rgba(15,23,42,.22),0 3px 10px rgba(15,23,42,.12);
  isolation:isolate;
}
[data-toantin-tool="concept_map"] .cmap-color-flyout > header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-height:42px;
  padding:8px 10px 7px 12px;
  border-bottom:1px solid var(--cmap-border);
  background:linear-gradient(180deg,#ffffff,#f8fbff);
}
[data-toantin-tool="concept_map"] .cmap-color-flyout > header strong { font-size:.9rem; font-weight:750; }
[data-toantin-tool="concept_map"] .cmap-color-flyout > header button {
  width:32px;
  height:32px;
  min-width:32px;
  min-height:32px;
  padding:0;
  border:1px solid transparent;
  border-radius:8px;
  background:transparent;
  color:var(--cmap-muted);
  font:700 20px/1 inherit;
  cursor:pointer;
}
[data-toantin-tool="concept_map"] .cmap-color-flyout > header button:hover { border-color:var(--cmap-border); background:var(--cmap-primary-soft); color:var(--cmap-text); }
[data-toantin-tool="concept_map"] .cmap-color-flyout__body { min-height:0; overflow:auto; padding:10px 12px 12px; }
[data-toantin-tool="concept_map"] .cmap-color-flyout__body section + section { margin-top:12px; padding-top:10px; border-top:1px solid var(--cmap-border); }
[data-toantin-tool="concept_map"] .cmap-color-flyout__body h4 { margin:0 0 8px; font-size:.8rem; font-weight:750; color:var(--cmap-text); }
[data-toantin-tool="concept_map"] .cmap-color-flyout__grid { display:grid; gap:5px; }
[data-toantin-tool="concept_map"] .cmap-color-flyout__grid--theme { grid-template-columns:repeat(6,minmax(34px,1fr)); }
[data-toantin-tool="concept_map"] .cmap-color-flyout__grid--standard { grid-template-columns:repeat(10,minmax(20px,1fr)); }
[data-toantin-tool="concept_map"] .cmap-color-flyout .cmap-color-picker__swatch {
  min-width:0;
  width:100%;
  height:34px;
  min-height:34px;
  padding:3px;
  border-radius:7px;
}
[data-toantin-tool="concept_map"] .cmap-color-flyout__grid--standard .cmap-color-picker__swatch { height:30px; min-height:30px; padding:2px; border-radius:5px; }
[data-toantin-tool="concept_map"] .cmap-color-flyout .cmap-color-picker__swatch > span { height:100%; min-height:22px; border-radius:4px; }
[data-toantin-tool="concept_map"] .cmap-color-flyout__custom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid var(--cmap-border);
}
[data-toantin-tool="concept_map"] .cmap-color-flyout__custom label {
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:36px;
  padding:5px 8px;
  border-radius:8px;
  cursor:pointer;
}
[data-toantin-tool="concept_map"] .cmap-color-flyout__custom label:hover { background:var(--cmap-primary-soft); }
[data-toantin-tool="concept_map"] .cmap-color-flyout__custom input[type="color"] {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  cursor:pointer;
}
[data-toantin-tool="concept_map"] .cmap-color-more-icon { font-size:16px; color:var(--cmap-primary); }
[data-toantin-tool="concept_map"] .cmap-color-flyout__custom code { color:var(--cmap-muted); font-size:.75rem; }
@media (max-width:575.98px) {
  [data-toantin-tool="concept_map"] .cmap-color-flyout { width:min(292px,calc(100% - 16px)); }
  [data-toantin-tool="concept_map"] .cmap-color-flyout__grid--theme { grid-template-columns:repeat(6,minmax(30px,1fr)); }
}

/* Fix 08 — unified export dropdown (PNG/SVG/HTML5) */
[data-toantin-tool="concept_map"] .cmap-export-trigger {
  position:absolute;
  top:10px;
  right:114px;
  z-index:calc(var(--cmap-z-context) + 2);
  min-width:82px;
  height:44px;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  border:1px solid var(--cmap-border);
  border-radius:999px;
  background:var(--cmap-surface);
  color:var(--cmap-text);
  box-shadow:0 8px 22px rgba(31,48,70,.14);
  font:700 14px/1 system-ui,-apple-system,"Segoe UI",sans-serif;
  cursor:pointer;
}
[data-toantin-tool="concept_map"] .cmap-export-trigger:hover,
[data-toantin-tool="concept_map"] .cmap-export-trigger[aria-expanded="true"] { background:var(--cmap-primary-soft); border-color:color-mix(in srgb,var(--cmap-primary) 30%, var(--cmap-border)); color:var(--cmap-primary); }
[data-toantin-tool="concept_map"] .cmap-export-menu {
  position:absolute;
  top:62px;
  right:114px;
  z-index:calc(var(--cmap-z-context) + 4);
  width:min(360px,calc(100% - 24px));
  display:grid;
  gap:0;
  border:1px solid var(--cmap-border);
  border-radius:16px;
  background:var(--cmap-surface);
  box-shadow:0 18px 50px rgba(19,47,76,.2);
  overflow:hidden;
}
[data-toantin-tool="concept_map"] .cmap-export-menu > header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border-bottom:1px solid var(--cmap-border);
}
[data-toantin-tool="concept_map"] .cmap-export-menu > header button {
  width:40px;
  height:40px;
  min-width:40px;
  min-height:40px;
  border:1px solid var(--cmap-border);
  border-radius:10px;
  background:var(--cmap-surface);
  color:var(--cmap-text);
  font:700 22px/1 inherit;
  cursor:pointer;
}
[data-toantin-tool="concept_map"] .cmap-export-menu__list { display:grid; gap:0; padding:8px; }
[data-toantin-tool="concept_map"] .cmap-export-menu__item {
  width:100%;
  display:grid;
  gap:4px;
  justify-items:start;
  text-align:left;
  padding:11px 12px;
  border:1px solid transparent;
  border-radius:12px;
  background:transparent;
  color:var(--cmap-text);
  cursor:pointer;
}
[data-toantin-tool="concept_map"] .cmap-export-menu__item + .cmap-export-menu__item { margin-top:4px; }
[data-toantin-tool="concept_map"] .cmap-export-menu__item:hover { background:var(--cmap-primary-soft); border-color:color-mix(in srgb,var(--cmap-primary) 22%, var(--cmap-border)); }
[data-toantin-tool="concept_map"] .cmap-export-menu__item strong { font-size:.96rem; }
[data-toantin-tool="concept_map"] .cmap-export-menu__item small { color:var(--cmap-muted); font-size:.8rem; }
@media (max-width:575.98px) {
  [data-toantin-tool="concept_map"] .cmap-export-trigger { top:8px; right:112px; min-width:76px; padding-inline:12px; }
  [data-toantin-tool="concept_map"] .cmap-export-menu { top:60px; right:8px; width:calc(100% - 16px); }
}
