/* Atlas conceptual. Tipografía editorial; respeta modo oscuro y movimiento reducido. */
.cm-intro{padding-bottom:30px}
.cm-intro h1{max-width:18ch}
.cm-intro-links,.cm-entry{margin-top:16px!important;font:600 13px/1.65 var(--sans)}
.cm-intro-links{display:flex;align-items:center;gap:13px;flex-wrap:wrap}
.cm-intro-links a,.cm-entry a{color:var(--accent);text-decoration:underline;text-underline-offset:4px}
.cm-home-link{font-size:13px}
.cm-workspace{padding-bottom:70px;scroll-margin-top:calc(var(--header) + 16px)}
.cm-controls{display:grid;grid-template-columns:minmax(220px,1.6fr) minmax(180px,1fr);gap:20px;
  padding:24px 28px 18px;border:1px solid var(--line);background:var(--surface)}
.cm-controls label{font:600 12px/1.5 var(--sans);color:var(--muted)}
.cm-controls input,.cm-controls select{display:block;width:100%;margin-top:9px;padding:12px 14px;
  border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:2px;
  min-height:46px;font:400 15px/1.5 var(--sans)}
.cm-controls input:focus-visible,.cm-controls select:focus-visible{outline-offset:2px}
.cm-matches{padding:14px 18px;border:1px solid var(--line);border-top:0;display:flex;flex-wrap:wrap;gap:7px}
.cm-match-caption{width:100%;margin:0 0 5px;color:var(--muted);font-size:12px}
.cm-match-button,.cm-picks a{display:inline-block;border:1px solid var(--line);border-radius:28px;
  background:var(--paper);color:var(--ink);padding:7px 13px;font:500 12px/1.5 var(--sans);text-decoration:none}
.cm-match-button:hover,.cm-picks a:hover,.cm-match-button:focus-visible,.cm-picks a:focus-visible{
  border-color:var(--accent);background:var(--wash)}
.cm-picks{display:flex;align-items:center;flex-wrap:wrap;gap:9px;padding:21px 0 14px}
.cm-picks span{font:500 12px/1.5 var(--sans);color:var(--muted);margin-right:4px}
.cm-status{margin:0 0 14px!important;color:var(--muted);font:400 12px/1.6 var(--sans)}
.cm-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);
  border:1px solid var(--line);background:var(--surface)}
.cm-graph-pane{min-width:0;padding:19px 18px 20px;border-right:1px solid var(--line);
  background:radial-gradient(ellipse at 50% 43%,var(--wash),transparent 67%)}
.cm-graph{position:relative;width:100%;height:485px;min-width:0;isolation:isolate}
.cm-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:0}
.cm-line{stroke:var(--line);stroke-width:2;stroke-linecap:round}
.cm-line-declared{stroke:var(--accent);stroke-width:2.6}
.cm-line-reading{stroke:var(--muted);stroke-width:1.35;stroke-dasharray:6 7;opacity:.64}
.cm-node{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);
  display:flex;align-items:center;justify-content:center;min-height:45px;width:122px;max-width:30%;
  padding:9px 10px;border:1px solid var(--line);border-radius:10px;line-height:1.35;
  font:600 12px/1.35 var(--sans);text-align:center;color:var(--ink);background:var(--surface);
  box-shadow:0 7px 22px #251f2415;overflow-wrap:anywhere;cursor:pointer;text-decoration:none}
.cm-node:hover:not(:disabled),.cm-node:focus-visible{border-color:var(--accent);background:var(--wash)}
.cm-node-neighbor[data-area="sonido"]{border-top:4px solid #579293}
.cm-node-neighbor[data-area="significado"]{border-top:4px solid #b17352}
.cm-node-neighbor[data-area="semiotica"]{border-top:4px solid #9b6993}
.cm-node-neighbor[data-area="mente"]{border-top:4px solid #6a80b1}
.cm-node-neighbor[data-area="gramatica"]{border-top:4px solid #81a06d}
.cm-node-neighbor[data-area="escritura"]{border-top:4px solid #a7846b}
.cm-node-neighbor[data-area="discurso"]{border-top:4px solid #a18086}
.cm-node-neighbor[data-area="fundamentos"]{border-top:4px solid #a96e7b}
.cm-node-neighbor[data-area="palabra"]{border-top:4px solid #63967f}
.cm-node-neighbor[data-area="ia"]{border-top:4px solid #7c739d}
.cm-node-neighbor[data-area="metodos"]{border-top:4px solid #868e71}
.cm-node.cm-central{width:154px;min-height:70px;background:var(--deep);color:var(--deep-text);
  border:2px solid var(--accent);border-radius:16px;box-shadow:var(--shadow);font-size:15px;cursor:default}
.cm-node.cm-central:disabled{opacity:1}
.cm-graph-note{font:400 12px/1.55 var(--sans);color:var(--muted);text-align:center;max-width:60ch;
  margin:0 auto 8px!important}
.cm-nojs{font-size:13px!important;color:var(--muted)}
.cm-detail{padding:35px 29px 28px;min-width:0}
.cm-detail>.eyebrow{color:var(--accent);font-size:10px}
.cm-detail h2{font:500 clamp(31px,3vw,42px)/1.2 var(--serif);margin:10px 0 7px}
.cm-detail h3{font:600 14px/1.4 var(--sans);margin:29px 0 12px;color:var(--ink)}
#cm-focus-area{font-size:12px;color:var(--accent);font-weight:600;margin:0 0 17px!important}
#cm-focus-definition{font:400 17px/1.55 var(--serif);margin:0 0 15px!important}
.cm-detail-actions{display:flex;gap:13px;flex-wrap:wrap;align-items:center;margin:20px 0 10px!important}
.cm-detail-actions a,.cm-detail-actions button{font:600 12px/1.4 var(--sans);color:var(--accent);
  padding:9px 0;background:transparent;text-decoration:underline;text-underline-offset:4px}
.cm-detail-actions a:hover,.cm-detail-actions button:hover{color:var(--ink)}
.cm-relation-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(120px,1.1fr);
  gap:8px;align-items:start;border-bottom:1px solid var(--line);padding:8px 0}
.cm-relation-link{font:600 13px/1.5 var(--sans);background:transparent;color:var(--ink);
  text-align:left;padding:0;text-decoration:underline;text-decoration-color:transparent;
  text-underline-offset:3px;overflow-wrap:anywhere}
.cm-relation-link:hover,.cm-relation-link:focus-visible{text-decoration-color:var(--accent);color:var(--accent)}
.cm-relation-label{font:400 11px/1.55 var(--sans);color:var(--muted)}
.cm-empty{font-size:13px;color:var(--muted)}
.cm-readings-list{padding-left:18px;margin:0;list-style:disc}
.cm-readings-list li{font:400 13px/1.5 var(--sans);margin:0 0 11px}
.cm-readings-list a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.cm-readings-list a:hover{color:var(--accent);text-decoration-color:var(--accent)}
.cm-more{padding:7px 0;font:600 12px/1.4 var(--sans);color:var(--accent);background:transparent;
  text-decoration:underline;text-underline-offset:4px}
.cm-directory{padding:10px 0 76px}
.cm-directory-head{max-width:760px;padding-bottom:22px;border-bottom:1px solid var(--line)}
.cm-directory-head .eyebrow{color:var(--accent)}
.cm-directory-head h2{font:500 clamp(32px,4vw,46px)/1.2 var(--serif);margin:8px 0 13px}
.cm-directory-head>p:last-child{font-size:14px;color:var(--muted);line-height:1.7}
.cm-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 30px;margin-top:27px}
.cm-directory-group{border:1px solid var(--line);background:var(--surface);padding:24px 25px;min-width:0}
.cm-directory-group h3{font:500 25px/1.2 var(--serif);padding-bottom:12px;border-bottom:1px solid var(--line);
  color:var(--ink)}
.cm-directory-group ul{display:grid;gap:7px;padding:14px 0 0;margin:0;list-style:none}
.cm-directory-group a{font:400 13px/1.5 var(--sans);color:var(--ink);text-decoration:underline;
  text-decoration-color:transparent;text-underline-offset:3px}
.cm-directory-group a:hover,.cm-directory-group a[aria-current=true]{text-decoration-color:var(--accent);
  color:var(--accent)}
.cm-method{font:400 13px/1.75 var(--sans);border-top:1px solid var(--line);
  margin:36px 0 0!important;padding:20px 0;color:var(--muted)}
.cm-method a{color:var(--accent);text-decoration:underline}
.cm-entry-term{margin:0 0 14px!important}
@media(max-width:1120px){
  .cm-layout{grid-template-columns:minmax(0,1.35fr) minmax(275px,1fr)}
  .cm-graph{height:430px}
  .cm-node{width:110px;font-size:11px}
  .cm-detail{padding:27px 20px}
  .cm-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:800px){
  .cm-layout{display:block}
  .cm-graph-pane{border-right:0;border-bottom:1px solid var(--line)}
  .cm-graph{max-width:690px;margin:auto;height:430px}
  .cm-detail{padding:29px 26px}
  .cm-node{width:120px;font-size:12px}
}
@media(max-width:620px){
  .cm-controls{grid-template-columns:1fr;padding:18px;gap:13px}
  .cm-picks{padding:16px 0 12px}
  .cm-graph{height:340px}
  .cm-node{width:87px;padding:6px;min-height:41px;font-size:10px;max-width:28%}
  .cm-node.cm-central{width:112px;min-height:59px;font-size:12px}
  .cm-graph-pane{padding:8px 4px 18px}
  .cm-directory-grid{grid-template-columns:1fr;gap:16px}
  .cm-directory-group{padding:20px}
  .cm-workspace{padding-bottom:50px}
}
@media(max-width:390px){
  .cm-graph{height:315px}
  .cm-node{width:75px;font-size:9px;line-height:1.3}
  .cm-node.cm-central{width:98px;font-size:12px}
  .cm-relation-row{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){.cm-node{transition:none!important}}
@media print{
  .cm-controls,.cm-picks,.cm-status,.cm-matches,.cm-graph-pane,.cm-detail-actions button,
  .cm-home-link{display:none!important}
  .cm-layout,.cm-directory-group{border:0;break-inside:avoid;background:none}
  .cm-detail{padding:12px 0}
  .cm-directory-grid{display:block}
  .cm-directory-group{padding:9px 0}
  .cm-directory-group ul{display:flex;gap:10px;flex-wrap:wrap}
  .cm-directory-group a{text-decoration:none}
}

/* Interactive controls appear only after the atlas JavaScript has initialized. */
html:not(.js) .cm-controls,html:not(.js) .cm-picks,html:not(.js) .cm-status{display:none!important}

/* En móvil el diagrama usa rótulos breves; el listado contiguo conserva los nombres completos. */
@media(max-width:620px){
  .cm-node-neighbor{display:block;white-space:nowrap;text-overflow:ellipsis;
    overflow:hidden;line-height:39px;height:41px;padding:0 5px}
}
