:root{
  --ink:#222427;--muted:#777c83;--line:#e6e8ea;--panel:#f9fafb;
  --paper:#fafaf9;--surface:#fff;--focus:#3f4855;
  --status-not-implemented:#c85b61;--status-partial:#d5a238;
  --status-implemented:#429669;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--paper);color:var(--ink);font:14px/1.5 Inter,"Helvetica Neue",Arial,"Noto Sans SC",sans-serif;-webkit-font-smoothing:antialiased}
button,input,a{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
button:focus-visible,a:focus-visible,input:focus-visible,.graph-node:focus-visible{outline:2px solid #728ba0;outline-offset:3px}
.app{height:100dvh;min-height:580px;max-width:1920px;margin:0 auto;display:flex;flex-direction:column;background:var(--surface);overflow:hidden}
.topbar{display:flex;align-items:center;gap:30px;flex:none;min-height:63px;padding:0 28px;background:var(--surface);border-bottom:1px solid var(--line)}
.brand{display:inline-flex;align-items:center;gap:8px;flex:none;white-space:nowrap;font-weight:680;letter-spacing:-.45px;font-size:15px}
.brand-mark{font-size:22px;font-weight:500}.brand-light{color:#989da3;font-weight:430}
.tabs{display:flex;align-items:center;justify-content:center;gap:24px;margin-left:auto;white-space:nowrap;min-width:0;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{position:relative;display:block;background:none;border:0;border-bottom:2px solid transparent;font-weight:520;font-size:12.5px;color:#8c9096;padding:22px 2px 19px;line-height:1.25;white-space:nowrap}
.tab.active{color:#22282e;font-weight:640;border-bottom-color:#31363e}
.tab:not(.active):hover{color:#282d33}
.guide-link{font-size:12px;color:#747980;white-space:nowrap;border-bottom:1px solid #b4b7ba}
.workspace{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}
.toolbar{height:57px;flex:none;display:flex;justify-content:space-between;align-items:center;padding:7px 24px;gap:16px;border-bottom:1px solid var(--line);background:#fff}
.navigation{display:flex;min-width:0;align-items:center;gap:17px}
.overview-back{background:#f4f5f6;border:1px solid #e2e4e6;color:#4c525a;border-radius:7px;padding:7px 11px;font-size:12px;white-space:nowrap}
.overview-back:hover{background:#e9edf0}
.breadcrumb{min-width:0;display:flex;align-items:center;gap:9px;overflow:hidden;white-space:nowrap}
.crumb-current{font-size:13px;font-weight:620;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crumb-link{font-size:12px;color:#848b92;max-width:170px;overflow:hidden;text-overflow:ellipsis;border:0;background:none;white-space:nowrap;padding:3px 0}
.crumb-link:hover{color:#242a30}
.crumb-ellipsis,.crumb-divider{color:#b0b4b9;font-size:12px}
.tool-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;min-width:0}
.search-box{display:flex;align-items:center;width:200px;height:33px;border:1px solid #e2e5e8;border-radius:7px;padding:0 9px;background:#fafbfc;color:#a0a5ab;margin-right:6px}
.search-symbol{font-size:20px;line-height:1;margin-right:5px}
.search-box input{min-width:0;width:100%;border:0;background:none;outline:0;font-size:12px;color:#333a43}
.search-box input::placeholder{color:#a0a5ab}
.icon-button{height:32px;min-width:32px;border:1px solid transparent;border-radius:6px;background:none;padding:5px 8px;color:#697078;font-size:12px}
.icon-button:hover:not(:disabled){background:#f0f2f4;color:#22272b}
.icon-button:disabled{opacity:.28;cursor:default}
.icon-button#detailsToggle{padding:5px 10px}
.toolbar-separator{width:1px;height:19px;background:#e1e3e5;margin:0 6px}
.zoom-value{min-width:36px;text-align:center;color:#92989d;font-size:11px;font-variant-numeric:tabular-nums}
.is-hidden{display:none!important}
.visual-stage{position:relative;display:flex;flex:1;min-height:0;min-width:0;overflow:hidden}
.graph-panel{display:flex;flex-direction:column;position:relative;min-height:0;min-width:0;flex:1}
.canvas-wrap{display:flex;align-items:center;justify-content:center;position:relative;flex:1;
 overflow:auto;min-height:260px;min-width:0;outline:none;background:#fafafa;
 overscroll-behavior:contain;cursor:grab;touch-action:pan-x pan-y}
.canvas-wrap.is-dragging{cursor:grabbing;user-select:none}
#diagram{display:block;flex:none;margin:auto;max-width:none;max-height:none}
.canvas-wrap.in-focus{background-color:#fafafa}
.canvas-foot{min-height:39px;padding:9px 22px;border-top:1px solid #eceeef;background:#fff;display:flex;justify-content:space-between;gap:14px;align-items:center;font-size:11px;color:#969ba1}
.import-diff{cursor:pointer;color:#717882;text-decoration:underline;text-underline-offset:3px}
.import-diff input{width:1px;height:1px;position:absolute;opacity:0;pointer-events:none}
.drawer-top{height:44px;display:flex;align-items:center;justify-content:space-between;padding:0 17px;border-bottom:1px solid var(--line);font-size:13px;font-weight:620;letter-spacing:-.2px}
.drawer-top button{border:0;background:none;color:#858b91;font-size:21px;padding:2px 6px}
.sidebar{z-index:8;position:absolute;left:12px;top:12px;bottom:48px;width:246px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 10px 38px #343c4715;overflow:hidden}
.outline{padding:8px;overflow:auto;flex:1;min-height:0}
.outline-item{display:block;text-align:left;width:100%;background:none;border:0;border-radius:6px;font-size:11.8px;color:#5a6066;padding:8px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.outline-item:hover{background:#f3f5f6}
.outline-item.selected{background:#e9edf0;color:#262b2f;font-weight:630}
.detail{z-index:9;position:absolute;right:12px;top:12px;bottom:48px;width:310px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 10px 38px #343c4715;overflow:hidden}
.detail-body{padding:18px 18px 28px;overflow:auto;min-height:0}
.detail-title{margin:0 0 9px;font-size:19px;line-height:1.35;font-weight:660;letter-spacing:-.5px}
.detail-description{color:#555f68;font-size:12.5px;line-height:1.75;margin:12px 0}
.detail-status{display:flex;align-items:center;gap:9px;font-size:11.5px;color:#707780}
.detail-status-swatch{display:inline-block;width:6px;height:17px;border-radius:3px}
.context-section{padding-top:17px;margin-top:18px;border-top:1px solid var(--line)}
.context-section h4{font-size:11px;font-weight:650;letter-spacing:.2px;color:#858b91;margin:0 0 9px}
.context-section p{font-size:12px;line-height:1.7;color:#535b63;margin:0}
.context-link{display:block;text-align:left;width:100%;border:0;border-bottom:1px solid #f0f1f2;background:transparent;color:#4d5760;padding:8px 0;font-size:11.5px;line-height:1.55;overflow-wrap:anywhere}
.context-link:hover{text-decoration:underline;color:#181d21}
.signature{display:block;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;padding:10px 11px;border-radius:6px;background:#f3f5f6}
.empty-message{font-size:12px;padding:12px;color:#9ca1a6}
.edge-main{fill:none;stroke:#c2c8cf;stroke-width:1.7;stroke-linecap:round}
.graph-node{cursor:pointer}
.graph-node .node-surface{stroke:#d3d7db;stroke-width:1;filter:drop-shadow(0px 3px 5px rgba(42,49,56,.05))}
.graph-node:hover .node-surface{stroke:#7b858f;stroke-width:1.5}
.graph-node.node-selected .node-surface{stroke:#39434e;stroke-width:2;filter:drop-shadow(0px 7px 12px rgba(35,45,54,.13))}
.graph-node.node-added .node-surface,.graph-node.node-changed .node-surface{stroke:#5b9990;stroke-width:2}
.node-title{font-size:13.5px;font-weight:660;fill:#22282d;letter-spacing:-.15px}
.graph-node.node-selected .node-title{font-size:15px}
.node-description{font-size:11.8px;fill:#5c6570;letter-spacing:.05px}
.graph-node.node-selected .node-description{font-size:12.4px}
.node-status{stroke:none}
.child-count rect{fill:#eceff1;stroke:none}
.child-count text{fill:#7c8792;font-size:10px;font-weight:650}
.graph-node{animation:atlas-appear .25s ease both}
@keyframes atlas-appear{from{opacity:.3}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.graph-node{animation:none}*{scroll-behavior:auto!important}}
@media(max-width:1120px){
  .topbar{padding:0 17px;gap:16px}
  .tabs{gap:14px}
  .toolbar{padding:7px 13px}
  .search-box{width:145px}
  .icon-button#collapse,.icon-button#expand{display:none}
  .crumb-link{max-width:90px}
}
@media(max-width:730px){
  .app{min-height:480px}
  .topbar{min-height:61px;flex-wrap:wrap;gap:0;padding:10px 14px 0}
  .brand{width:100%;justify-content:center;height:25px;font-size:14px}
  .tabs{width:100%;gap:22px;justify-content:flex-start;margin:0;max-width:100%;height:38px}
  .tab{padding:11px 1px 9px;font-size:12px}
  .guide-link{display:none}
  .toolbar{height:auto;min-height:77px;flex-wrap:wrap;padding:8px 11px}
  .navigation{width:100%;height:23px}
  .breadcrumb{max-width:100%}
  .crumb-link{max-width:92px}
  .tool-actions{width:100%;justify-content:space-between}
  .search-box{width:min(44vw,210px)}
  .icon-button{min-width:27px;padding:3px 5px}
  .icon-button#detailsToggle{padding:3px 5px}
  .toolbar-separator{display:none}
  .zoom-value{font-size:10px}
  .detail{right:8px;left:8px;top:8px;bottom:46px;width:auto}
  .sidebar{left:8px;top:8px;bottom:46px;width:min(300px,calc(100% - 16px))}
  .canvas-foot{padding:9px 11px}
}


/* Unified three-state legend, pinned inside the canvas on all five views. */
.status-legend{position:absolute;left:20px;bottom:54px;z-index:3;display:flex;align-items:center;gap:14px;
 padding:10px 13px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:9px;
 box-shadow:0 3px 12px rgba(28,37,45,.05);pointer-events:none;backdrop-filter:blur(7px)}
.legend-item{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:560;white-space:nowrap;color:#606770}
.legend-swatch{display:block;width:6px;height:17px;border-radius:3px;flex-shrink:0}
.legend-swatch.not-implemented{background:var(--status-not-implemented)}
.legend-swatch.partial{background:var(--status-partial)}
.legend-swatch.implemented{background:var(--status-implemented)}
@media(max-width:730px){.status-legend{bottom:50px;left:8px;gap:10px;padding:8px 9px}
.legend-item{font-size:10px}.legend-swatch{height:14px}}

/* Only the existing green state is relevant outside Environment. */
.status-legend.implemented-only .legend-item:not(:last-child){display:none}


/* Inline node expansion: the card itself grows and its sub-tree reflows. */
.attribute-trigger{cursor:pointer}
.attribute-trigger .attr-hit{fill:#eaf1ee;stroke:#a9cabe;stroke-width:.7}
.attribute-trigger:hover .attr-hit{fill:#d9eae2;stroke:#6aa58d}
.attribute-trigger text{font-size:10.6px;font-weight:630;fill:#3e7861}
.node-expanded .node-surface{stroke:#6e9d88;stroke-width:1.6;filter:drop-shadow(0 7px 13px rgba(44,86,66,.11))}
.node-attributes-foreign{overflow:hidden}
.node-attributes-inner{height:100%;width:100%;overflow-y:auto;
  padding:9px 12px 15px;border-top:1px solid #dfe8e2;
  border-bottom:1px solid #e7ece9;border-radius:6px;
  background:rgba(255,255,255,.78);box-sizing:border-box;
  scrollbar-color:#c4d5ce transparent;scrollbar-width:thin}
.node-attribute-section{padding:12px 0;border-bottom:1px solid #e6ece9}
.node-attribute-section:first-child{padding-top:5px}
.node-attribute-section:last-child{border-bottom:0}
.node-attribute-heading{font:650 11px/1.45 Inter,"Noto Sans SC",sans-serif;
  letter-spacing:.35px;margin:0 0 7px;color:#597468}
.node-attribute-text{font:12px/1.8 Inter,"Noto Sans SC",sans-serif;color:#394843;
  margin:5px 0;overflow-wrap:anywhere}
.node-attribute-note{color:#788a82;font-size:10.5px;line-height:1.6;margin:8px 0 0}
.node-attribute-code{display:block;margin:6px 0;padding:10px 11px;border-radius:5px;
  background:#f3f6f4;color:#2c3831;overflow:auto;max-height:290px;
  white-space:pre;tab-size:4;
  font:10.8px/1.58 ui-monospace,SFMono-Regular,Consolas,monospace}
.node-attribute-signature{display:block;margin:6px 0;white-space:pre-wrap;
  overflow-wrap:anywhere;font:11.2px/1.65 ui-monospace,SFMono-Regular,Consolas,monospace;
  color:#293e32;padding:8px 9px;border-radius:5px;background:#edf3ef}
.node-parameter-list{display:grid;gap:7px;margin-top:6px}
.node-parameter-row{display:grid;grid-template-columns:minmax(80px,31%) minmax(0,1fr);
  gap:11px;align-items:start;padding:6px 0;border-bottom:1px solid #edf0ee}
.node-parameter-row:last-child{border-bottom:0}
.node-parameter-name{font:11px ui-monospace,SFMono-Regular,Consolas,monospace;
  color:#3b6d54;overflow-wrap:anywhere;padding:3px 0}
.node-parameter-meaning{font:11.7px/1.55 Inter,"Noto Sans SC",sans-serif;
  color:#344239;margin:0}
.node-parameter-extra{font:10.5px/1.5 ui-monospace,Consolas,monospace;color:#87958d;
  overflow-wrap:anywhere;margin:3px 0 0}
.node-method-details{margin:5px 0;border:1px solid #e0e7e3;border-radius:6px;background:#fbfcfb}
.node-method-summary{padding:9px 10px;cursor:pointer;font:11px/1.5 ui-monospace,Consolas,monospace;
  color:#324a3a;list-style-position:inside}
.node-method-summary:hover{background:#f1f7f3}
.node-method-details[open]>.node-method-summary{border-bottom:1px solid #e0e9e3;background:#f2f7f4}
.node-method-body{padding:5px 12px 14px}
.node-field-row{display:flex;flex-direction:column;gap:4px;margin:8px 0;padding:7px 9px;
  border:1px solid #e7eeea;border-radius:5px}
.node-field-assignment{font:10.6px/1.4 ui-monospace,Consolas,monospace;
  color:#78877d;white-space:pre-wrap;overflow-wrap:anywhere}
.node-attribute-link{display:inline-block;color:#3f8a68;text-decoration:underline;
  text-underline-offset:3px;font-size:11px;line-height:1.6;margin:5px 0 0;
  overflow-wrap:anywhere}
.node-attribute-formula{font:600 17px/1.6 "Cambria Math",Cambria,"Noto Serif",serif;
  border-radius:6px;background:#f0f6f2;padding:9px 12px;color:#29503d;
  white-space:nowrap;overflow-x:auto}
.attribute-diagram{display:block;width:100%;height:auto;max-width:415px;
  border-radius:6px;border:1px solid #dfe9e3;background:#f7faf8}
.attribute-diagram text{font-family:Inter,"Noto Sans SC",sans-serif;font-size:11px;fill:#34424c}
.attribute-diagram .diagram-box{fill:#fff;stroke:#c5d2d8}
.attribute-diagram .diagram-edge{fill:none;stroke:#7d9098;stroke-width:1.5}
.attribute-diagram .diagram-sum{fill:#deede8;stroke:#93b3a8}
@media(max-width:730px){
 .node-attribute-text{font-size:11.5px}
 .node-attribute-code{font-size:10px}
}

/* High-density atlas: fixed logical card size, readable scrollable branches. */
.canvas-wrap{scrollbar-gutter:stable;scrollbar-color:#c5cbd2 transparent}
.graph-node .node-surface{filter:drop-shadow(0px 5px 10px rgba(42,49,56,.065))}
.graph-node:hover .node-surface{filter:drop-shadow(0px 9px 16px rgba(42,49,56,.11))}
.edge-main{stroke:#b8c1ca;stroke-width:1.5}
.graph-node.node-selected .node-title{font-size:13.5px}
.graph-node.node-selected .node-description{font-size:11.8px}

/* Context-backed, independently readable explanations open inside every card. */
.node-term-row{display:grid;gap:3px;border-left:2px solid #cbd9d0;padding:5px 9px;margin:8px 0}
.node-term-link{display:inline-block;width:fit-content;font-weight:650;font-size:12px;color:#285e48;
  text-decoration:underline;text-decoration-color:#a8c6b7;text-underline-offset:3px}
.node-term-link:hover{color:#113e2d;text-decoration-color:currentColor}
.node-term-definition{font-size:11.8px;line-height:1.7;color:#53645b;margin:0;overflow-wrap:anywhere}
.child-count{cursor:pointer}
.child-count:hover rect{fill:#d2dfdb}
.graph-node.node-selected .node-surface{stroke:#456b5c;stroke-width:2}
.node-attributes-foreign{pointer-events:all}

/* Atlas review mode: exactly one compact control bar, the normal tree and Focus view. */
.atlas-review-bar{position:absolute;left:50%;bottom:48px;transform:translateX(-50%);
 z-index:5;display:flex;align-items:center;gap:10px;padding:9px 12px;
 border:1px solid #d9dce1;border-radius:12px;background:rgba(255,255,255,.98);
 box-shadow:0 8px 30px rgba(32,36,40,.13);white-space:nowrap}
.atlas-review-bar button{font-weight:650;border-radius:8px;height:43px;min-width:76px;
 border:1px solid #d7dce2;padding:0 16px;font-size:14px;cursor:pointer}
.atlas-review-bar button:disabled{opacity:.32;cursor:default}
.atlas-review-bar .review-arrow{font-size:29px;font-weight:400;min-width:45px;padding:0 6px;
 background:#f1f2f4;color:#2c343b;line-height:1}
.atlas-review-bar .review-count{font-size:15px;color:#20272d;font-weight:650;
 min-width:55px;text-align:center;font-variant-numeric:tabular-nums}
.atlas-review-bar .review-approve{background:#f8e2e5;color:#9c2f3e;border-color:#e9b7bf}
.atlas-review-bar .review-deny{background:#e6e8eb;color:#48525c;border-color:#cbd1d7}
.atlas-review-bar button.chosen{box-shadow:inset 0 0 0 2px currentColor}
.atlas-review-bar .review-message{font-size:13px;color:#65717c;min-width:104px;text-align:center}
.graph-node[data-review="unchecked"] .node-surface{stroke:#8255b5;stroke-width:2}
.graph-node[data-review="approved"] .node-surface{stroke:#bb4656;stroke-width:2}
.graph-node[data-review="denied"] .node-surface{stroke:#78818b;stroke-width:2}
/* Review never changes the card typography: normal Atlas node CSS applies. */
.atlas-review-bar .review-export{border:0;background:transparent;
 min-width:62px;padding:0 8px;color:#536a7f;font-weight:600;font-size:12px}
.atlas-review-bar .review-export:hover{background:#f0f2f4;color:#233e54}
.atlas-review-bar .review-message{max-width:160px;overflow:hidden;text-overflow:ellipsis}

@media(max-width:730px){
 .atlas-review-bar{gap:5px;bottom:45px;padding:7px;max-width:calc(100% - 12px)}
 .atlas-review-bar button{min-width:65px;height:39px;padding:0 9px;font-size:13px}
 .atlas-review-bar .review-arrow{min-width:34px;font-size:24px}
 .atlas-review-bar .review-count{min-width:46px}
 .atlas-review-bar .review-message{display:none}
 .atlas-review-bar .review-export{min-width:48px;padding:0 5px;font-size:11px}
}


/* Light scientific field: slow spatial movement, never in front of the nodes. */
@keyframes atlas-grid-drift{
  from{background-position:0 0,0 0,0 0,0 0,0 0}
  to{background-position:0 0,0 0,44px 44px,44px 44px,22px 22px}
}
@media(prefers-reduced-motion:reduce){
  .canvas-wrap{animation:none!important}
}

/* Atlas Review shares one compact bar and the real scientific graph. */
.atlas-review-bar{max-width:calc(100% - 22px);gap:8px}
.atlas-review-bar button kbd{font:600 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;
  margin-left:5px;opacity:.65;border:1px solid currentColor;border-radius:4px;padding:3px 4px}
.review-category{position:relative;flex:none;width:176px;min-width:0}
.atlas-review-bar .review-filter{display:flex;align-items:center;gap:6px;
  width:100%;height:43px;min-width:0;padding:0 11px;text-align:left;
  background:#f6f8fa;border-color:#d9dfe6;color:#303944}
.review-filter-label{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
  min-width:0;font-weight:650;font-size:13px}
.review-filter-caret{color:#6b747d;font-size:17px}
.review-filter-progress .review-ring{width:29px;height:29px}
.review-menu{position:absolute;bottom:calc(100% + 13px);left:0;z-index:15;
  width:min(590px,calc(100vw - 42px));max-height:min(64vh,540px);
  overflow:auto;padding:9px;background:rgba(255,255,255,.985);
  border:1px solid #d5dce5;border-radius:13px;
  box-shadow:0 15px 48px rgba(36,50,62,.17);
  backdrop-filter:blur(12px)}
.review-category-row{display:flex;align-items:center;gap:8px;min-height:43px;
  padding:4px 9px 4px 4px;border-radius:8px}
.review-category-row:hover{background:#f2f6f8}
.review-category-row.level-view{padding-left:19px}
.review-category-row.level-parent{padding-left:36px}
.review-category-row.level-node{padding-left:53px}
.atlas-review-bar .review-category-disclosure{border:0;background:transparent;
  width:20px;min-width:20px;height:31px;padding:0;font-size:18px;color:#72818e}
.review-category-spacer{width:20px;min-width:20px}
.atlas-review-bar .review-category-choice{border:0;background:transparent;
  width:auto;min-width:0;height:auto;flex:1;padding:7px 2px;text-align:left;
  font-size:12.5px;font-weight:560;color:#394650;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.atlas-review-bar .review-category-choice[aria-selected=true]{color:#195c7b;font-weight:750}
.review-category-children{display:block}
.review-ring{display:inline-grid;place-items:center;flex:none;
  width:30px;height:30px;border-radius:50%;padding:3px}
.review-ring-center{display:grid;place-items:center;width:100%;height:100%;
  border-radius:50%;background:#fff;font-size:10px;font-weight:700;color:#5f6b77;
  font-variant-numeric:tabular-nums}
.review-state-counts{display:inline-flex;align-items:center;justify-content:flex-end;
  gap:7px;flex:none;min-width:106px}
.review-count-chip{display:inline-flex;gap:3px;align-items:center;
  font-size:11.5px;font-weight:650;min-width:28px;
  color:#59646f;font-variant-numeric:tabular-nums}
.review-count-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none}
.review-count-dot.red{background:#bb4656}
.review-count-dot.gray{background:#78818b}
.review-count-dot.purple{background:#8255b5}
.review-nav{display:flex;align-items:center;gap:2px;flex:none}
.atlas-review-bar .review-nav .review-arrow{width:39px;min-width:39px;
  height:43px;padding:0 3px}
.atlas-review-bar .review-nav .review-skip{font-size:24px;color:#7950a3;
  background:#f1ecf8;border-color:#e5daf2}
.atlas-review-bar .review-nav .review-skip:not(:disabled):hover{background:#e6daf6}
.review-decisions{display:flex;align-items:center;gap:6px;flex:none}
.atlas-review-bar .review-decisions button{height:43px;min-width:0;padding:0 11px}
.atlas-review-bar .review-unchecked{background:#eadff8;color:#684494;border-color:#cebaea}
.atlas-review-bar .review-unchecked.chosen{box-shadow:inset 0 0 0 2px #8255b5}
.atlas-review-bar .review-export{min-width:57px;height:40px}
.atlas-review-bar .review-message{min-width:72px;max-width:130px;font-size:12px}
@media(max-width:1100px){
  .atlas-review-bar{gap:5px;padding:7px;bottom:44px}
  .review-category{width:144px}
  .atlas-review-bar .review-decisions button{padding:0 7px;font-size:12px}
  .atlas-review-bar .review-nav .review-arrow{min-width:34px;width:34px}
  .review-state-counts{min-width:97px;gap:4px}
}
@media(max-width:730px){
  .atlas-review-bar{left:8px;right:8px;bottom:43px;max-width:none;
    transform:none;flex-wrap:wrap;justify-content:center;gap:5px}
  .review-category{width:auto;flex:1 1 130px}
  .review-menu{left:0;width:min(540px,calc(100vw - 30px));
    max-height:min(52vh,430px)}
  .review-decisions{order:3;width:100%;justify-content:center}
  .review-nav{flex:none}
  .atlas-review-bar .review-nav .review-arrow{width:31px;min-width:31px}
  .atlas-review-bar .review-decisions button{flex:1;max-width:143px}
  .atlas-review-bar .review-count{min-width:43px;font-size:13px}
  .atlas-review-bar .review-message{display:none}
  .review-category-row.level-node{padding-left:31px}
  .review-category-row.level-parent{padding-left:23px}
  .review-category-row.level-view{padding-left:14px}
}

/* State surfaces have equal opacity regardless of category or depth. */
.graph-node .node-surface{filter:none;stroke-width:1.5}
.graph-node:hover .node-surface{filter:none;stroke-width:1.8}
.graph-node.node-selected .node-surface{filter:none;stroke-width:2.4;stroke:#252a2c}
.graph-node.node-expanded .node-surface{filter:none}
.graph-node.node-sibling-preview{opacity:.38}
.graph-node.node-sibling-preview:hover{opacity:.78}
.edge-sibling{fill:none;stroke:#aeb6b3;stroke-width:1.4;
 stroke-dasharray:5 6;pointer-events:none}
.canvas-wrap.is-dragging .graph-node{pointer-events:none}
@media(prefers-reduced-motion:reduce){
 .canvas-wrap,.graph-node{animation:none!important;scroll-behavior:auto!important}
}

/* Edge resistance: a short rubber-band return, never a color-depth effect. */
.canvas-wrap.is-bouncing #diagram{transition:transform .32s cubic-bezier(.2,.85,.2,1.13)}
@media(prefers-reduced-motion:reduce){.canvas-wrap.is-bouncing #diagram{transition:none}}

/* Shared status tint across card chrome and all expanded components. */
.graph-node .attr-hit{fill:rgba(var(--node-rgb),.13);stroke:rgba(var(--node-rgb),.48)}
.graph-node .attribute-trigger:hover .attr-hit{fill:rgba(var(--node-rgb),.23);stroke:var(--node-accent)}
.graph-node .attribute-trigger text,.graph-node .node-attribute-heading,
.graph-node .node-parameter-name,.graph-node .node-term-link,
.graph-node .node-attribute-link{color:var(--node-ink);fill:var(--node-ink)}
.graph-node .node-attributes-inner{border-color:rgba(var(--node-rgb),.35);background:rgba(var(--node-rgb),.045)}
.graph-node .node-attribute-section,.graph-node .node-parameter-row,
.graph-node .node-method-details,.graph-node .node-field-row,
.graph-node .node-term-row,.graph-node .attribute-diagram{border-color:rgba(var(--node-rgb),.22)}
.graph-node .node-attribute-code,.graph-node .node-attribute-signature,
.graph-node .node-attribute-formula,.graph-node .node-field-assignment,
.graph-node .node-method-summary,.graph-node .node-method-details,
.graph-node .node-method-details[open]>.node-method-summary{background:rgba(var(--node-rgb),.095)}
.graph-node .node-attribute-formula,.graph-node .node-attribute-signature{color:var(--node-ink)}
.graph-node .child-count rect{fill:rgba(var(--node-rgb),.17)}
.graph-node .child-count text{fill:var(--node-ink)}
.graph-node.node-selected .node-surface{stroke:var(--node-accent);filter:drop-shadow(0 12px 19px rgba(23,27,29,.18))}
.graph-node.node-sibling-preview{opacity:.32;filter:blur(.5px)}
.graph-node.node-sibling-preview:hover{opacity:.76;filter:none}
.graph-node.node-selected{opacity:1;filter:none}
.canvas-wrap.in-focus .graph-node:not(.node-selected):not(.node-sibling-preview){opacity:.63}
.canvas-wrap.in-focus .graph-node{transition:opacity .36s ease,filter .36s ease}
.edge-sibling{opacity:.53}
.graph-node .node-attributes-foreign{opacity:1}
@media(prefers-reduced-motion:reduce){
 .canvas-wrap.in-focus .graph-node,.graph-node{transition:none!important}
}

/* Atlas legibility pass: calm, equal-weight status tints; large navigation.
   Nodes retain status distinction without competing with their content. */
.graph-node .node-surface{stroke:rgba(var(--node-rgb),.38)}
.graph-node.node-selected .node-surface{
  stroke:var(--node-accent);
  filter:drop-shadow(0 9px 16px rgba(28,36,39,.11))
}
.graph-node .attr-hit{fill:rgba(var(--node-rgb),.075);stroke:rgba(var(--node-rgb),.26)}
.graph-node .attribute-trigger:hover .attr-hit{fill:rgba(var(--node-rgb),.12)}
.graph-node .node-attributes-inner{
  background:rgba(var(--node-rgb),.018);
  border-color:rgba(var(--node-rgb),.20)
}
.graph-node .node-attribute-section,.graph-node .node-parameter-row,
.graph-node .node-method-details,.graph-node .node-field-row,
.graph-node .node-term-row,.graph-node .attribute-diagram{
  border-color:rgba(var(--node-rgb),.15)
}
.graph-node .node-attribute-code,.graph-node .node-attribute-signature,
.graph-node .node-attribute-formula,.graph-node .node-field-assignment,
.graph-node .node-method-summary,.graph-node .node-method-details,
.graph-node .node-method-details[open]>.node-method-summary{
  background:rgba(var(--node-rgb),.050)
}
.graph-node .child-count rect{fill:rgba(var(--node-rgb),.10)}
.graph-node.node-sibling-preview{opacity:.40;filter:none}
.graph-node.node-sibling-preview:hover{opacity:.78}
.node-title,.graph-node.node-selected .node-title{font-size:14.2px}
.node-description,.graph-node.node-selected .node-description{font-size:12px}

/* Main navigation: readable even when the browser uses a high-density display. */
.topbar{min-height:72px;padding:0 30px;gap:24px}
.brand{font-size:19px;letter-spacing:-.4px}
.brand-mark{font-size:27px}
.tabs{gap:26px}
.tab{font-size:15.5px;padding:25px 2px 22px}
.guide-link{font-size:14px}
.toolbar{height:66px;padding:9px 26px}
.overview-back{font-size:14px;padding:9px 13px}
.crumb-current{font-size:15px}
.crumb-link{font-size:14px;max-width:215px}
.crumb-ellipsis,.crumb-divider{font-size:15px}
.search-box{height:39px;width:222px}
.search-box input{font-size:14px}
.search-symbol{font-size:23px}
.icon-button{height:38px;min-width:38px;font-size:15px;font-weight:600}
.zoom-value{font-size:14px;min-width:46px}
.toolbar-separator{height:23px}
.legend-item{font-size:12.5px}

/* Review controls are primary actions, not tiny toolbar metadata. */
.atlas-review-bar{gap:10px;padding:10px 13px;background:rgba(255,255,255,.985);
  box-shadow:0 6px 22px rgba(32,36,40,.09)}
.atlas-review-bar button{font-size:15px;font-weight:690;min-height:46px}
.review-category{width:205px}
.atlas-review-bar .review-filter{height:48px;padding:0 12px;background:#fbfbfc}
.review-filter-label{font-size:15px}
.review-filter-caret{font-size:23px}
.review-filter-progress .review-ring{width:34px;height:34px}
.atlas-review-bar .review-count{font-size:18px;min-width:66px}
.atlas-review-bar .review-nav .review-arrow{
  width:46px;min-width:46px;height:48px;font-size:34px;font-weight:550;
  background:#f7f8fa;color:#3b434b
}
.atlas-review-bar .review-nav .review-skip{
  font-size:30px;background:#f8f5fc;color:#8466a6;border-color:#ece5f5
}
.atlas-review-bar .review-nav .review-skip:not(:disabled):hover{background:#f3ecfa}
.atlas-review-bar .review-decisions button{height:48px;font-size:15px;padding:0 13px}
.atlas-review-bar .review-approve{
  background:#fcf2f3;color:#954d55;border-color:#f0dbdf
}
.atlas-review-bar .review-deny{
  background:#f6f7f8;color:#56616b;border-color:#e8eaed
}
.atlas-review-bar .review-unchecked{
  background:#f8f5fc;color:#765b98;border-color:#eae3f3
}
.atlas-review-bar button kbd{
  font-size:13px;opacity:.9;padding:3px 5px;border-radius:5px
}
.atlas-review-bar .review-message{font-size:14px}
.atlas-review-bar .review-export{font-size:14px;min-width:65px}
.review-category-row{min-height:48px}
.atlas-review-bar .review-category-choice{font-size:14px;font-weight:600}
.review-ring{width:34px;height:34px}
.review-ring-center{font-size:12px}
.review-count-chip{font-size:13px;min-width:31px}
.review-count-dot{height:11px;width:11px}
.review-count-dot.red{background:#c9848b}
.review-count-dot.gray{background:#a5adb5}
.review-count-dot.purple{background:#ab94c8}
.atlas-review-bar .review-category-disclosure{font-size:22px}
.review-menu{background:rgba(255,255,255,.995)}

/* Reduce at smaller widths without reverting to unreadably tiny controls. */
@media(max-width:1120px){
  .topbar{padding:0 18px;gap:16px}
  .tabs{gap:16px}
  .tab{font-size:14.5px}
  .toolbar{padding:8px 14px}
  .search-box{width:170px}
  .review-category{width:164px}
  .atlas-review-bar .review-decisions button{font-size:14px;padding:0 9px}
  .atlas-review-bar .review-nav .review-arrow{width:38px;min-width:38px;font-size:30px}
  .atlas-review-bar .review-count{font-size:16px;min-width:52px}
  .atlas-review-bar .review-message{font-size:12.5px}
}
@media(max-width:730px){
  .topbar{min-height:75px;padding:8px 12px 0}
  .brand{font-size:17px;height:26px}
  .brand-mark{font-size:24px}
  .tabs{gap:22px}
  .tab{font-size:14px;padding:10px 1px 9px}
  .toolbar{height:auto;min-height:86px;padding:8px 11px}
  .overview-back{font-size:13px}
  .crumb-current{font-size:14px}
  .crumb-link{font-size:13px}
  .tool-actions{gap:3px}
  .search-box{width:min(39vw,180px);height:36px}
  .search-box input{font-size:13px}
  .icon-button{height:34px;min-width:30px;font-size:14px;padding:3px 5px}
  .zoom-value{font-size:12px;min-width:37px}
  .atlas-review-bar{gap:6px;padding:8px}
  .review-category{flex:1 1 145px;width:auto}
  .atlas-review-bar .review-filter{height:44px}
  .review-filter-label{font-size:14px}
  .atlas-review-bar .review-nav .review-arrow{height:44px;width:34px;min-width:34px;font-size:27px}
  .atlas-review-bar .review-count{font-size:15px;min-width:42px}
  .atlas-review-bar .review-decisions button{height:44px;font-size:14px}
  .atlas-review-bar button kbd{font-size:12px}
  .atlas-review-bar .review-category-choice{font-size:13px}
  .legend-item{font-size:11.5px}
}


/* Atlas global locale selector: visible regardless of graph scroll or review mode. */
.atlas-language-switch{display:inline-flex;align-items:center;flex:none;margin-left:8px;padding:3px;background:#eef2f7;border:1px solid #9faec1;border-radius:10px;box-shadow:0 1px 5px #182c411a;white-space:nowrap}
.atlas-language-switch button{border:0;border-radius:7px;background:transparent;color:#394454;font-weight:650;padding:7px 12px;min-height:34px}
.atlas-language-switch button.active{background:#243d5e;color:#fff;box-shadow:0 1px 4px #142d4460}
.atlas-language-switch button:focus-visible{outline:2px solid #2769b0;outline-offset:3px}
@media(max-width:730px){.topbar{flex-wrap:wrap;gap:5px 10px;padding-bottom:7px}.atlas-language-switch{margin-left:auto;order:1}.tabs{order:3;flex-basis:100%;justify-content:flex-start;margin-left:0}.guide-link{order:2}.atlas-language-switch button{padding:5px 9px;min-height:32px}}

/* Pagination is interface state, never an Atlas node. */
.child-pager{display:flex;align-items:center;gap:6px;flex-shrink:0;
  font-size:12px;color:var(--muted,#5f6b72);white-space:nowrap}
.child-pager button{width:26px;height:26px;border:1px solid #d6dce0;
  border-radius:6px;background:transparent;color:inherit;cursor:pointer}
.child-pager button:disabled{opacity:.35;cursor:default}
.child-pager span{min-width:65px;text-align:center;font-variant-numeric:tabular-nums}
