:root { color-scheme: dark; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: #10151a; color: #e6e8e9; }
    * { box-sizing: border-box; }
    [hidden] { display: none !important; }
    body { margin: 0; }
    button, input { font: inherit; }
    button { cursor: pointer; border: 1px solid #3b454d; border-radius: 8px; background: #252e35; color: #e6e8e9; padding: 9px 12px; }
    button:hover { background: #35424c; }
    button[aria-pressed="true"] { border-color: #a9c8c2; background: #344c4b; }
    button:focus-visible, input:focus-visible { outline: 2px solid #b8d8d1; outline-offset: 3px; }
    button:disabled { opacity: .45; cursor: default; }
    header { padding: 20px 26px; border-bottom: 1px solid #30383f; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
    h1 { margin: 3px 0 0; font-size: 21px; font-weight: 550; letter-spacing: .06em; }
    .eyebrow { color: #a4c0ba; font-size: 11px; letter-spacing: .18em; }
    .badge { font-size: 12px; color: #c9ba97; border: 1px solid #635740; border-radius: 20px; padding: 7px 11px; white-space: nowrap; }
    main { display: grid; grid-template-columns: minmax(0, 1fr) 330px; min-height: 500px; height: calc(100dvh - 178px); }
    .stage { position: relative; min-width: 0; min-height: 440px; background: radial-gradient(ellipse at 50% 45%, #29333b, #12191f 72%); overflow: hidden; }
    canvas { display: block; width: 100%; height: 100%; touch-action: none; }
    .stage-top { position: absolute; z-index: 1; top: 18px; left: 20px; right: 20px; pointer-events: none; }
    .stage-top strong { font-size: 13px; font-weight: 500; }
    .stage-top p { margin: 7px 0; font-size: 12px; color: #aeb9c0; line-height: 1.6; }
    .view-buttons { position: absolute; bottom: 20px; left: 20px; right: 20px; display: flex; gap: 7px; flex-wrap: wrap; }
    .view-buttons button { background: #1b242dd9; font-size: 12px; }
    #load-status { position: absolute; left: 20px; top: 110px; font-size: 13px; color: #d3c39d; max-width: calc(100% - 40px); }
    aside { background: #181f25; border-left: 1px solid #30383f; padding: 21px 18px; overflow: auto; }
    h2 { font-size: 13px; font-weight: 550; margin: 0 0 12px; color: #b8c7ce; }
    .layers { display: flex; flex-wrap: wrap; gap: 6px; }
    .layers button { font-size: 12px; padding: 8px 11px; }
    .opacity { display: block; margin: 16px 0 22px; font-size: 12px; color: #b7c1c7; }
    .opacity input { width: 100%; margin: 11px 0 0; accent-color: #a4c0ba; }
    .selection { border-top: 1px solid #354049; border-bottom: 1px solid #354049; padding: 18px 0; margin-bottom: 20px; }
    #selected-name { overflow-wrap: anywhere; font-size: 15px; line-height: 1.5; margin: 0 0 8px; }
    #selected-id { font-family: ui-monospace, monospace; color: #a5beb7; font-size: 12px; }
    .muted { color: #8f9ca6; font-size: 12px; line-height: 1.7; }
    .selection-actions { display: flex; gap: 7px; margin-top: 13px; }
    .selection-actions button { font-size: 12px; }
    #structures { display: grid; gap: 5px; max-height: 260px; overflow: auto; padding: 2px; }
    #structures button { text-align: left; font-size: 12px; padding: 8px; line-height: 1.45; background: #20292f; }
    #structures small { display: block; color: #8eaaa3; font-size: 10px; margin-top: 3px; }
    #search { width: 100%; padding: 10px; margin-bottom: 10px; border: 1px solid #3b454d; border-radius: 8px; background: #10181e; color: #e6e8e9; }
    #content-card { margin-top: 16px; }
    #content-card dt { color: #b8c7ce; margin-top: 10px; }
    #content-card dd { margin: 4px 0; color: #d0d7dc; }
    #content-card a { color: #a9c8c2; }
    .review-warning { color: #edc27e; border: 1px solid #796039; padding: 8px; border-radius: 6px; }
    #related { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 12px; }
    .missing { margin-top: 18px; color: #c0ab81; font-size: 12px; line-height: 1.7; }
    footer { border-top: 1px solid #30383f; padding: 14px 26px; font-size: 11px; color: #8f9ca6; line-height: 1.8; }
    footer a { color: #a9c8c2; }
    #panel-toggle { display: none; }
    @media (max-width: 740px) {
      header { padding: 14px 16px; flex-wrap: wrap; gap: 10px; }
      h1 { font-size: 18px; }
      .badge { font-size: 10px; }
      #panel-toggle { display: inline-block; font-size: 12px; padding: 7px 10px; }
      main { display: block; height: auto; min-height: 0; }
      .stage { height: 65dvh; min-height: 410px; }
      aside { border-left: 0; border-top: 1px solid #30383f; }
      body.panel-closed #panel { display: none; }
      footer { padding: 13px 16px; }
      #structures { max-height: 190px; }
    }

/* BA-002: two independent views, shared quiet atlas shell. */
:root { background: #10171d; color: #e8edf0; }
header { padding: 18px 26px 14px; background: #151e25; }
h1 { font-size: 24px; letter-spacing: .08em; }
header .eyebrow { letter-spacing: .22em; font-size: 10px; }
.workspace-tabs { display: flex; gap: 8px; align-items: center; padding: 12px 26px; border-bottom: 1px solid #303e47; background: #151e25; }
.workspace-tabs button { border-color: transparent; background: transparent; padding: 10px 19px; }
.workspace-tabs button[aria-pressed="true"] { background: #2a4244; color: #d3eee8; border-color: #587871; }
.workspace-tabs span { color: #8faaa8; font-size: 12px; margin-left: auto; }
#anatomy-view { height: calc(100dvh - 245px); }
#panel { padding: 22px 18px; }
.selection-actions { flex-wrap: wrap; gap: 5px; }
.selection-actions button { padding: 8px 10px; }
.category-filters { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 10px; }
.category-filters button { padding: 6px 9px; font-size: 11px; }
#structures { max-height: 285px; }
#structures button { padding: 11px 10px; }
#content-card dd { line-height: 1.8; }
#content-card details { margin-top: 12px; }
#content-card summary { color: #a9c8c2; cursor: pointer; }
.relation-item { display: grid; gap: 5px; max-width: 100%; margin-bottom: 6px; }
.relation-item button { font-size: 11px; line-height: 1.6; text-align: left; }
.relation-item a { font-size: 10px; margin-left: 4px; }
.evidence-note { padding: 10px 12px; border-left: 2px solid #bcaa7b; background: #222d33; line-height: 1.8; }
#acupoint-view { padding: 30px 26px 40px; max-width: 1400px; margin: 0 auto; }
.acupoint-intro { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.acupoint-intro h2 { font-size: 24px; color: #e0e9e9; margin: 10px 0; font-weight: 500; letter-spacing: .05em; }
.acupoint-intro p { color: #a8b7bf; font-size: 13px; line-height: 1.8; max-width: 720px; margin-bottom: 0; }
.acupoint-controls { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin: 27px 0 18px; }
#meridian-filters { display: flex; flex-wrap: wrap; gap: 7px; }
#meridian-filters button { font-size: 12px; padding: 10px 13px; }
.point-search-label { display: grid; gap: 7px; font-size: 11px; color: #a6b8be; min-width: 230px; }
#point-search { border: 1px solid #394952; border-radius: 8px; padding: 11px 12px; background: #182229; color: #e6e8e9; width: 100%; }
#acupoint-status { color: #b5c6c8; font-size: 12px; line-height: 1.7; }
.acupoint-layout { display: grid; grid-template-columns: minmax(0, 1fr) 370px; gap: 20px; align-items: start; }
.route-panel, .point-panel { background: #182229; border: 1px solid #34434c; border-radius: 14px; padding: 24px; }
.route-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.route-heading h3 { margin: 0; font-size: 18px; font-weight: 500; }
#point-count { color: #92ada9; font-size: 12px; }
#route-direction { display: inline-block; margin: 18px 0 0; color: #cce2d9; font-size: 13px; background: #29403f; border-radius: 5px; padding: 8px 12px; line-height: 1.7; }
.diagram-key { color: #a4b5bd; font-size: 11px; margin: 20px 0; }
#point-flow { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; }
#point-flow li { position: relative; padding-left: 36px; padding-bottom: 26px; }
#point-flow li:not(:last-child)::before { content: ''; position: absolute; top: 31px; left: 13px; bottom: 3px; border-left: 1px solid #657c78; }
#point-flow li:not(:last-child)::after { content: '↓'; position: absolute; left: 8px; bottom: 5px; font-size: 16px; color: #8aaba4; background: #182229; }
#point-flow .node-number { position: absolute; top: 13px; left: 0; width: 27px; height: 27px; border: 1px solid #77948c; border-radius: 50%; display: grid; place-items: center; color: #bdd5cf; font-size: 10px; }
#point-flow button { width: 100%; text-align: left; display: flex; gap: 12px; justify-content: space-between; align-items: center; padding: 13px 15px; border-radius: 9px; background: #202e36; }
.node-name { display: grid; gap: 5px; }
.node-name strong { font-size: 15px; font-weight: 500; }
.node-name small { font-size: 11px; color: #8facb3; }
.region-tag { white-space: nowrap; background: #2d4147; color: #c3d9d7; border-radius: 20px; padding: 4px 9px; font-size: 10px; }
#route-source { line-height: 1.8; border-top: 1px solid #34434c; padding-top: 15px; }
#route-source a, #point-detail a { color: #b1d4c8; }
.point-panel { position: sticky; top: 20px; }
#point-title { margin: 12px 0 20px; font-size: 23px; font-weight: 500; line-height: 1.5; }
#point-detail dl { margin: 20px 0; }
#point-detail dt { color: #88aaa5; font-size: 11px; margin-top: 20px; letter-spacing: .05em; }
#point-detail dd { color: #d7e1e5; font-size: 14px; margin: 8px 0 0; line-height: 1.9; overflow-wrap: anywhere; }
#point-detail p { font-size: 12px; line-height: 1.9; }
.compare-button { margin-top: 20px; width: 100%; color: #c8e4da; background: #2a4140; }
footer { background: #121b22; }
@media (max-width: 960px) { .acupoint-layout { grid-template-columns: minmax(0, 1fr) 320px; } .acupoint-controls { align-items: stretch; flex-direction: column; } }
@media (max-width: 740px) {
  header { padding: 16px; }
  h1 { font-size: 22px; }
  .workspace-tabs { padding: 10px 16px; gap: 5px; }
  .workspace-tabs button { padding: 9px 12px; font-size: 13px; }
  .workspace-tabs span { font-size: 10px; }
  #anatomy-view { height: auto; }
  .stage { height: 64dvh; min-height: 420px; }
  .stage-top { top: 15px; left: 16px; }
  .view-buttons { bottom: 15px; left: 16px; right: 16px; gap: 5px; }
  .view-buttons button { font-size: 11px; padding: 8px 10px; }
  #acupoint-view { padding: 24px 16px; }
  .acupoint-intro { display: block; }
  .acupoint-intro .badge { display: inline-block; margin-top: 14px; }
  .acupoint-intro h2 { font-size: 21px; }
  .acupoint-layout { display: block; }
  .route-panel, .point-panel { padding: 18px; border-radius: 10px; }
  .point-panel { margin-top: 18px; position: static; }
  #point-flow button { padding: 12px 10px; }
  #point-flow li { padding-left: 34px; }
  #structures { max-height: 240px; }
}

.atlas-toolbar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:12px 24px; border-bottom:1px solid #384048; }
.atlas-toolbar label {font-size:12px;color:#bacac8;display:flex;gap:8px;align-items:center}
select { font:inherit; color:#e1ebe8; background:#243438; border:1px solid #506166; border-radius:7px; padding:9px; max-width:100%; }
.atlas-toolbar button {font-size:12px;padding:8px 10px}
#anchor-summary {font-size:11px;color:#9fb0ad;margin-left:auto}
#point-labels {position:absolute;inset:0;pointer-events:none;overflow:hidden}
.point-label {position:absolute;left:0;top:0;pointer-events:auto;border-radius:5px;padding:4px 7px;font-size:11px;white-space:nowrap;background:#14242be8;border:1px solid var(--point-color);color:#eef4ee;transform:translate(10px,-50%)}
.point-label[aria-pressed="true"] {background:#405652;border-color:#fff;z-index:3;font-weight:600}
.point-inspector {border-bottom:1px solid #3d4b50;padding-bottom:18px;margin-bottom:18px}
#point-select {width:100%;font-size:13px}
#point-card h3 {margin:18px 0 8px;font-size:20px}
#point-card p {font-size:12px;line-height:1.8}
#point-card dl {font-size:12px;line-height:1.8}
#point-card dt {color:#9fbeb7;margin-top:12px}
#point-card dd {margin:4px 0}
#point-card a {color:#a6d5c8}
#point-card details {font-size:11px;margin:12px 0;overflow-wrap:anywhere;line-height:1.8}
.point-status {display:inline-block;padding:5px 8px;border-radius:5px;background:#3b382c;color:#e1c48f;font-size:11px}
.point-actions {display:flex;gap:6px;flex-wrap:wrap}
.point-actions button {font-size:12px}
.relation-list {display:flex;flex-wrap:wrap;gap:5px}
.relation-list button {font-size:11px;text-align:left;padding:6px 8px}
.relation-list .unavailable {color:#8a969b;font-size:11px}
#anatomy-details>summary {cursor:pointer;font-size:13px;color:#c7d6d1;margin-bottom:18px}
.stage-top {max-width:310px}
#anatomy-view {height:calc(100dvh - 215px);min-height:500px}
@media (max-width:740px) { .atlas-toolbar {padding:10px 16px;gap:6px} #anchor-summary {margin-left:0;width:100%} #anatomy-view {height:auto;min-height:0} .stage-top {max-width:260px} .point-label{font-size:10px;padding:4px} }
#point-card h3:not(:first-child) {font-size:14px;color:#c1d0ca}
.point-relation {font-size:12px;text-align:left;padding:7px 9px;margin:2px 3px 3px 0}
.candidate-status {display:inline-block;padding:4px 8px;border-radius:5px;background:#3b382c;color:#e1c48f}
#point-card .relation-description {font-size:11px;color:#afc2bc;margin-top:4px}

.point-actions {margin-top:10px}

#landmark-labels {position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3}
.landmark-label {position:absolute;transform:translateX(-50%);max-width:170px;padding:4px 6px;border:1px solid #8ce8d1;border-radius:4px;background:#12332fec;color:#c4fff0;font-size:10px;line-height:1.35;text-align:center;pointer-events:none}
.landmark-label[hidden] {display:none}
.landmark-legend {color:#8ce8d1;font-size:12px}
.book-evidence {margin:12px 0;padding:10px;border:1px solid #56746e;border-radius:7px}
.book-evidence summary {cursor:pointer;color:#b4e6d9;font-weight:600}

.localization-audit {margin:14px 0;padding:12px;border:1px solid #526a68;border-radius:8px;background:#182b30;overflow-wrap:anywhere}
#point-card .localization-audit h3 {margin:0 0 9px;font-size:14px;color:#d8e6e1}
.audit-status {display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start}
.audit-source-status,.audit-change-status {padding:3px 7px;border-radius:5px;font-size:11px;line-height:1.5}
.audit-source-status {color:#b7ddd3;background:#29433f}
.audit-change-status {color:#cbd8df;background:#2e3d46}
.localization-audit[data-source-status="CONFLICT"] .audit-source-status,.localization-audit[data-source-status="INCOMPLETE"] .audit-source-status {color:#efcf96;background:#463d2c}
#point-card .localization-audit p {margin:8px 0;font-size:12px;line-height:1.7}
#point-card .localization-audit .audit-boundary {font-size:11px;color:#aebfb9}
#point-card .localization-audit details {margin:9px 0 0;font-size:12px}
.localization-audit summary {cursor:pointer;padding:3px 0;color:#bad5cd;line-height:1.7}
.audit-missing summary {color:#ebc88d}
.audit-missing ul {list-style:none;margin:7px 0 0;padding:0;display:grid;gap:7px}
.audit-missing li {line-height:1.7;color:#d3dedb}
.audit-missing strong {font-weight:500;color:#e9c791}
#point-card .audit-conditions dl {margin:8px 0}
#point-card .audit-conditions dt {margin-top:9px;color:#9fbfb6}
#point-card .audit-conditions dd {margin:2px 0 0}
.audit-pages {display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.audit-pages a {display:inline-block;padding:4px 7px;border:1px solid #4c6c63;border-radius:5px;font-size:11px}
@media(max-width:740px) {.localization-audit {padding:10px}.audit-status {gap:5px}#point-card .localization-audit details {font-size:11px}.audit-pages {gap:5px}}

.dermatome-inspector {border:1px solid #47626a;border-radius:12px;padding:14px;margin-bottom:18px;background:#172a30}
.dermatome-inspector h2 {margin-top:0}.dermatome-inspector h2 span{font-size:.8rem;font-weight:400}
.dermatome-inspector select {max-width:100%;width:100%;margin:8px 0}
.dermatome-warning{color:#f1c779;font-size:.85rem;margin:5px 0 12px}
#dermatome-status{font-size:.82rem;color:#bbd4d7;line-height:1.5}
#dermatome-legend{display:flex;gap:8px;flex-wrap:wrap}
#dermatome-legend button{border-bottom:4px solid var(--dermatome-color);min-width:48px}
#dermatome-card{font-size:.86rem;line-height:1.6}#dermatome-card h3{margin:12px 0 5px}
#dermatome-card a{overflow-wrap:anywhere;color:#9dd8e1}

.body-navigation{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:10px 24px;border-bottom:1px solid #333a41;background:#20272b}.body-navigation label{white-space:nowrap}.body-navigation select{margin-left:8px;padding:8px;background:#2a3338;color:#eef0ee;border:1px solid #53605f;border-radius:7px}.body-navigation span{color:#b6c9c4;font-size:12px}[hidden]{display:none!important}body{grid-template-rows:auto auto auto minmax(0,1fr) auto}@media(max-width:700px){.body-navigation{padding:10px 14px;gap:8px}.body-navigation span{font-size:11px}}

@media(min-width:741px){#anatomy-view{height:calc(100dvh - 270px);min-height:440px}}
.overview .atlas-toolbar > :not(#anchor-summary),.overview .dermatome-inspector{display:none}
.overview .atlas-toolbar{min-height:2.2rem;padding-block:.45rem}
.global-point-search{display:flex;gap:8px;align-items:center;position:relative}.global-point-search label{font-size:13px}.global-point-search input{width:230px;max-width:60vw;margin:0;padding:8px 10px;background:#152126;border:1px solid #57736b;border-radius:7px;color:#eef4ef}
#whole-body-coverage{margin-left:auto;font-size:11px;color:#a6b9b2}#global-point-results{position:absolute;top:42px;left:0;width:min(390px,90vw);max-height:60vh;overflow:auto;background:#1b292e;border:1px solid #648278;border-radius:10px;box-shadow:0 12px 35px #0008;z-index:30;padding:10px}#global-search-status{font-size:11px;color:#b7c9c1;margin:4px 4px 8px}#global-point-list a{display:block;padding:10px;color:#eef4ee;text-decoration:none;border-radius:6px;font-size:13px}#global-point-list a:hover,#global-point-list a:focus{background:#345047;outline:1px solid #739d8f}#global-point-list small{display:block;margin-top:4px;color:#b5c7bf;font-size:11px}
@media(max-width:740px){.global-point-search{width:100%}.global-point-search input{flex:1;max-width:none;min-width:0}#whole-body-coverage{margin-left:0;width:100%}#global-point-results{top:40px;width:100%;box-sizing:border-box}}

/* BA031: reversible visibility for existing named structures. */
#selected-visibility { color: #c4d9ce; font-size: 12px; line-height: 1.5; }
.hidden-structure-panel { margin: 16px 0; border-top: 1px solid #38524b; padding-top: 12px; }
#hidden-structures { list-style: none; padding: 0; max-height: 220px; overflow-y: auto; }
#hidden-structures li { display: flex; align-items: center; gap: 10px; margin: 8px 0; }
#hidden-structures span { min-width: 0; flex: 1; overflow-wrap: anywhere; line-height: 1.5; }
#hidden-structures button { flex: 0 0 auto; padding: 8px 12px; }

/* BA031: explicit controls for the head/neck prototype. */
#peel-panel {margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid #41524f}
.peel-heading {display:flex;align-items:center;justify-content:space-between;gap:10px}
.peel-heading h2 {margin:0;font-size:15px;color:#deebe6}
.peel-heading span {font-size:10px;color:#bed8c9;background:#29433b;padding:4px 7px;border-radius:4px}
.peel-presets {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:12px 0}
.peel-presets button {font-size:12px;padding:9px 4px}
.peel-help,#peel-selection,#window-status {font-size:12px;line-height:1.65;color:#b6c8c1;margin:10px 0}
#peel-selection {color:#d4e7de;overflow-wrap:anywhere}
.peel-actions {display:flex;gap:5px;flex-wrap:wrap}
.peel-actions button,#window-toggle {font-size:12px;padding:8px 10px}
.window-controls {margin-top:17px;padding:14px 12px;background:#1c3033;border:1px solid #45615e;border-radius:10px}
.window-controls label {display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:#bfd1ca}
#window-point-slot {margin-top:12px}
#window-radius {width:100%;accent-color:#a4d9c5;margin:10px 0 15px}
#window-tissue {font-size:12px;padding:6px}
.peel-limit {font-size:10px;color:#b5afa0;line-height:1.7;margin:12px 0 0}
body.acupoint-viewer .stage-top p {max-width:230px}
body.acupoint-viewer #anatomy-view {grid-template-columns:minmax(0,1fr) 350px}
@media(max-width:740px){body.acupoint-viewer #anatomy-view{display:flex;flex-direction:column}.peel-presets button{padding:11px 4px}body.acupoint-viewer .stage{height:58dvh;min-height:380px}body.acupoint-viewer header h1{font-size:18px}body.acupoint-viewer .badge{white-space:normal}.body-navigation{max-width:100%}}
@media(max-width:740px){
  html{scrollbar-width:none}
  ::-webkit-scrollbar{width:0;height:0}
  body.acupoint-viewer header{padding:10px 14px;gap:8px;flex-wrap:nowrap}
  body.acupoint-viewer header h1{font-size:15px;letter-spacing:0}
  body.acupoint-viewer .badge{font-size:9px;padding:5px 7px}
  body.acupoint-viewer #panel-toggle{display:none}
  body.acupoint-viewer #coverage-note,body.acupoint-viewer #whole-body-coverage{display:none}
  body.acupoint-viewer .body-navigation{padding:9px 14px;gap:7px}
  body.acupoint-viewer .body-navigation label,body.acupoint-viewer .body-navigation input{font-size:11px}
  body.acupoint-viewer .atlas-toolbar{padding:8px 14px;gap:5px}
  body.acupoint-viewer .atlas-toolbar button{font-size:10px;padding:6px 8px}
  body.acupoint-viewer .atlas-toolbar label{font-size:11px;gap:5px}
  body.acupoint-viewer .atlas-toolbar select{padding:6px}
  body.acupoint-viewer #anchor-summary{font-size:10px}
  body.head-neck-prototype #dermatome-toggle,body.head-neck-prototype [data-view="attachment"]{display:none}
  body.acupoint-viewer .stage-top{left:14px;top:12px}
  body.acupoint-viewer .stage-top p{font-size:10px;max-width:220px}
}

/* BA031: separate observation from reference reading and keep common actions close. */
body.acupoint-viewer #anatomy-view {grid-template-columns:minmax(0,1fr) 420px}
#panel {padding:0 18px 22px;scroll-padding-top:190px}
#inspector-header {position:sticky;top:0;z-index:8;margin:0 -18px 16px;padding:12px 18px;background:#181f25;border-bottom:1px solid #40504b}
.inspector-tabs {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:12px}
.inspector-tabs button {font-size:13px;padding:10px 4px;border-color:transparent;background:#202b30}
.inspector-tabs button[aria-selected="true"] {color:#e2f2e9;background:#35514b;border-color:#8cae9e}
#point-navigation > label {display:block;color:#a8c2b7;font-size:11px;margin-bottom:6px}
.point-stepper {display:grid;grid-template-columns:34px minmax(0,1fr) 34px;gap:6px}
.point-stepper button {padding:0;font-size:22px;line-height:1}
.point-stepper select {min-width:0;padding:8px 9px;font-size:14px}
#point-navigation .point-actions {display:flex;gap:7px;margin:8px 0 0}
#point-navigation .point-actions button {flex:1;font-size:12px;padding:7px 9px}
#marker-status {font-size:11px;color:#b7c9c1;line-height:1.55;margin:8px 0 0}
#marker-status[data-mode="hidden"] {color:#ecc98e}
#marker-status[data-mode="contact"] {color:#c7e1cb}
#peel-panel {border:0;margin-bottom:0;padding-bottom:0}
.point-inspector {border:0;margin:0;padding:0}
#point-card .reference-relations h3 {font-size:14px;margin:12px 0 8px}
#point-card .reference-relations .point-relation {display:block;text-align:left;width:100%;padding:10px 12px;margin:6px 0;background:#263d37;border-color:#58776a}
#point-card .reference-model-details {font-size:12px;line-height:1.7}
#point-card .reference-model-details > details {margin:12px 0;padding:10px 12px;border:1px solid #3d524b;border-radius:8px}
#point-card .reference-model-details > details > summary {font-size:13px;cursor:pointer}
.point-label[data-attachment="contact"] {border-style:dashed;font-size:10px;padding:4px 6px}
.stage-selection {position:absolute;left:18px;right:18px;bottom:73px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#13221ff2;border:1px solid #66897b;border-radius:10px;padding:9px 11px;box-shadow:0 5px 22px #0004}
#stage-selected-name {font-size:13px;line-height:1.4;min-width:0;overflow-wrap:anywhere}
.stage-selection > div {display:flex;flex-shrink:0;gap:5px}
.stage-selection button {font-size:12px;padding:8px 10px;background:#2c443a;border-color:#628575}
#stage-peel {background:#4c4030;border-color:#a99470}
#path-display-status {position:absolute;top:112px;left:20px;padding:6px 9px;border-radius:5px;font-size:11px;color:#c3d7cc;background:#152723dd;pointer-events:none;max-width:calc(100% - 40px)}
body.acupoint-viewer .stage-top {right:auto;max-width:min(310px,calc(100% - 36px));background:#142125bb;padding:9px 11px;border-radius:8px}
body.acupoint-viewer .stage-top strong {font-size:11px;color:#d6e5dc}
body.acupoint-viewer .stage-top p {font-size:10px;color:#c1d2c8;margin:4px 0 0;max-width:none}
#structure-pane > .dermatome-inspector {margin:0 0 16px}
#anatomy-details > summary {font-size:15px;margin-bottom:12px;color:#d9e6de}
@media(min-width:741px){
  body {display:grid;height:100dvh;overflow:hidden;grid-template-rows:auto auto auto minmax(0,1fr) auto}
  body > header {padding:11px 20px 9px}
  body > header h1 {font-size:21px}
  .body-navigation {padding:8px 20px;gap:14px}
  .atlas-toolbar {padding:8px 20px;gap:7px}
  #anatomy-view {height:auto;min-height:0}
  .stage {min-height:0}
  #panel {min-height:0}
  body > footer {padding:8px 20px;font-size:10px}
  #inspector-header {padding-top:10px;padding-bottom:10px}
}
@media(min-width:741px) and (max-width:1100px){body.acupoint-viewer #anatomy-view{grid-template-columns:minmax(0,1fr) 370px}.stage-selection{flex-wrap:wrap}.stage-selection>div{margin-left:auto}}
@media(max-width:740px){
  #panel {overflow:visible;padding:0 14px 20px;scroll-margin-top:0}
  #inspector-header {margin:0 -14px 15px;padding:10px 14px;top:0}
  .inspector-tabs {margin-bottom:10px}
  .inspector-tabs button {padding:10px 4px}
  #marker-status {font-size:11px}
  .stage-selection {left:12px;right:12px;bottom:75px;display:block;padding:8px 9px}
  .stage-selection > div {margin-top:7px;display:flex}
  .stage-selection button {flex:1;font-size:11px;padding:8px 4px}
  #stage-selected-name {font-size:12px}
  #path-display-status {top:110px;left:14px;font-size:10px;max-width:calc(100% - 28px)}
}

/* Original skin reference remains visibly distinct from a contact location. */
.point-label[data-attachment="surface-reference"] {border:1px dashed #a1cfdf;color:#deeff5;background:#20343be8}
#marker-status[data-mode="surface-reference"],#point-display-status[data-mode="surface-reference"] {color:#b8dce8}

.linked-panel {padding:14px;margin:0 0 20px;border:1px solid #557970;border-radius:12px;background:linear-gradient(135deg,#253a36,#1b2c2d)}
.linked-panel h2 {color:#ddede5;font-size:15px}
.linked-help {font-size:12px;line-height:1.65;color:#bed4ca;margin:4px 0 12px}
#link-source-options {display:grid;gap:7px}
#link-source-options button {text-align:left;color:#d4f3e8;background:#304d43;border-color:#7ba994;font-size:13px}
#link-source-options small {display:block;font-size:10px;color:#b9d0c5;margin-top:4px}
#link-current {font-size:12px;width:100%;text-align:left;margin-top:7px;background:#21383a}
#link-message {font-size:12px;line-height:1.65;color:#e0d2ad;overflow-wrap:anywhere;margin:10px 0}
#link-mode-actions {display:flex;gap:5px;flex-wrap:wrap}
#link-mode-actions button {flex:1;white-space:nowrap;font-size:11px;padding:9px 7px}
.linked-limit {font-size:10px;line-height:1.6;color:#9eb9af;margin:10px 0 0}
#linked-banner {position:absolute;z-index:4;right:16px;top:16px;max-width:260px;display:grid;gap:6px;padding:12px 14px;background:#132522ed;border:1px solid #597e70;border-radius:10px;pointer-events:none}
#linked-banner strong {font-size:12px;color:#dbe9df}
#linked-banner span {font-size:12px;line-height:1.5;overflow-wrap:anywhere}
#linked-surface-label {color:#ffe3a3}
#linked-structure-label {color:#7fe2ce}
#linked-relation-label {color:#b7c5bd;font-size:10px;line-height:1.5}
body.linked-observation .stage-top {display:none}
body.linked-observation #stage-selection {display:none}
body.linked-observation #path-display-status {display:none}
.point-label[data-linked="true"] {color:#ffe5ad;border-color:#e4bd74;background:#302b1cf2;font-size:12px;box-shadow:0 0 12px #e1af392a}
@media(max-width:740px){#linked-banner{top:12px;right:12px;left:12px;max-width:none;padding:9px 11px;gap:3px}#linked-banner span{font-size:11px}#linked-banner strong{font-size:11px}.linked-panel{padding:12px}}

/* Keep the original-surface label clear of mobile legend and camera controls. */
@media(max-width:740px){
  body.linked-observation #linked-banner {top:8px;padding:6px 9px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px 8px}
  body.linked-observation #linked-banner strong {display:none}
  body.linked-observation #linked-banner span {font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.linked-observation #linked-relation-label {grid-column:1/-1;font-size:9px;line-height:1.4}
  body.linked-observation .view-buttons {flex-wrap:nowrap;overflow-x:auto;left:12px;right:12px;bottom:12px}
  body.linked-observation .view-buttons button {flex-shrink:0;font-size:10px;padding:8px}
}
#link-source-options .source-link-evidence{margin:0 0 10px;padding:8px 10px;border:1px solid #334a45;border-radius:8px;font-size:12px;line-height:1.5;color:#c4d5ca}
.source-link-evidence summary{cursor:pointer;color:#a8c8b8}
.source-link-evidence p{margin:6px 0;overflow-wrap:anywhere}
.source-link-evidence a{color:#9bd5c3;overflow-wrap:anywhere}
/* BA-045: 《肉単》 second source and explicit disagreement list */
#content-card .second-source { margin-top: 14px; padding-top: 10px; border-top: 1px dashed #4f5f66; }
#content-card .second-source h3 { font-size: 13px; color: #a9c8c2; margin: 0 0 4px; font-weight: 600; }
#content-card .source-disagreement { margin-top: 12px; padding: 8px 10px; border: 1px solid #7a5a4a; border-radius: 6px; color: #e5c9b8; font-size: 12px; }
#content-card .source-disagreement p { margin: 0 0 4px; color: #edc27e; }
#content-card .source-disagreement ul { margin: 0; padding-left: 18px; line-height: 1.7; }

/* BA-050 supplement layers: existing source objects, professional review pending. */
.supplement-panel {margin:12px 0 4px;padding:10px;border:1px solid #4d5f57;border-radius:8px;background:#17231f}
.supplement-status {font-size:11px;line-height:1.6;color:#c9d8cf;margin:6px 0 8px}
.supplement-layers button small {display:block;font-size:10px;color:#a9bbb3;margin-top:2px}
.supplement-layers button[aria-pressed="true"] small {color:inherit}
/* BA-052: preview search lists other regions as locked (subscription only). */
#global-point-list a.locked{color:#9fb1aa}#global-point-list a.locked small{color:#d9b779}
/* BA-052: link from the 3D atlas to the lookup dictionary. */
header .dict-link{padding:7px 12px;border:1px solid #648278;border-radius:999px;color:#eef4ee;text-decoration:none;font-size:13px;white-space:nowrap}header .dict-link:hover,header .dict-link:focus{background:#345047}
/* BA-054: special-point badges on pin labels and the bottom strip of the selected meridian. */
.point-label[data-badges]::after{content:attr(data-badges);margin-left:5px;padding:0 5px;border-radius:999px;background:#f3c86b;color:#221a08;font-size:10px;font-weight:700}
.meridian-strip{position:absolute;left:0;right:0;bottom:0;z-index:6;display:flex;gap:6px;overflow-x:auto;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#0b1215e6 35%);scrollbar-width:none}
.meridian-strip::-webkit-scrollbar{display:none}
.strip-point{flex:none;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:40px;padding:4px 2px;border:0;border-radius:10px;background:transparent;color:#eef4ee;cursor:pointer}
.strip-point[aria-current="true"]{background:#2d4a42;outline:1px solid #7fb9a6}
.strip-point[data-unmapped="true"] .strip-name{opacity:.45}
.strip-badge{display:grid;place-items:center;min-width:26px;height:26px;padding:0 4px;border-radius:999px;font-size:12px;font-weight:700;background:#55636a;color:#fff}
.strip-badge[data-kind="none"]{visibility:hidden}
.strip-badge[data-kind="jing_well"]{background:#f4f4f4;color:#222}
.strip-badge[data-kind="ying"]{background:#5aa7e0}
.strip-badge[data-kind="shu"]{background:#3bb36b}
.strip-badge[data-kind="yuan"]{background:#6f7d84}
.strip-badge[data-kind="jing_river"]{background:#e2493f}
.strip-badge[data-kind="xi"]{background:#4b5960}
.strip-badge[data-kind="luo"]{background:#7d8a90}
.strip-badge[data-kind="he"]{background:#f0a83a;color:#2a1a00}
.strip-badge[data-kind="mu"],.strip-badge[data-kind="back_shu"]{background:#9a6fd0}
.strip-badge[data-kind="hui"],.strip-badge[data-kind="lower_he"],.strip-badge[data-kind="bamai"]{background:#c9845a;font-size:10px}
.strip-name{writing-mode:vertical-rl;font-size:15px;letter-spacing:2px;padding:6px 3px;border-radius:6px;background:#ffffff14}
@media(max-width:740px){.strip-name{font-size:14px}.strip-point{min-width:36px}}
/* BA-054: when the meridian strip is shown, the view buttons move to the top-right of the stage. */
.stage:has(.meridian-strip:not([hidden])) .view-buttons{top:12px;bottom:auto;left:auto;right:12px;flex-direction:column;align-items:flex-end;flex-wrap:nowrap}
.stage:has(.meridian-strip:not([hidden])) .view-buttons button{padding:6px 9px}

/* BA-055: link back to the member page (billing, cancellation). */
header .member-link{margin-left:auto}header .member-link+.dict-link{margin-left:8px}
@media(max-width:740px){header .dict-link{padding:6px 9px;font-size:12px}}

/* BA-057: two-way point <-> muscle lookup */
.muscle-points{margin-top:14px}
.muscle-points h3,.point-beneath h3{font-size:14px;margin:12px 0 6px}
.muscle-point-list{display:flex;flex-wrap:wrap;gap:6px}
.muscle-point{border:1px solid #c9a24a;background:#2a2416;color:#f3e2b4;border-radius:14px;padding:5px 10px;font-size:13px;text-decoration:none;cursor:pointer}
.muscle-point.elsewhere{border-color:#555;background:transparent;color:#aaa}
.point-beneath .beneath-row{margin-bottom:6px}
.profile-dermatome{font-weight:600}
.profile-dermatome-range,.profile-dermatome-note{font-size:12px;margin:2px 0;opacity:.8}
.stage:has(.meridian-strip:not([hidden])) .stage-selection{bottom:124px}
@media(max-width:740px){#content-card,#point-card{scroll-margin-top:200px}}
/* BA-062: Japanese interface. The language link adds a header button, so on phones the status
   badge (also stated in the footer) gives up its place; tags mark text still in Chinese. */
@media(max-width:480px){header:has(#lang-switch) .badge{display:none}}
.zh-tag{display:inline-block;font-size:11px;font-weight:400;padding:1px 6px;border:1px solid #4a5a5e;border-radius:8px;color:#9fb0b4;vertical-align:middle}
.point-ja .reference-reading{margin:2px 0 4px;color:#9fb0b4;font-size:13px}
.point-ja-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.point-ja-tag{padding:2px 9px;border-radius:999px;background:#24363b;font-size:12px;color:#d8e6e0}
.point-ja-fields dd p{margin:0 0 4px}
.point-ja-anatomy{margin:0;padding-left:18px}
.point-ja-records{margin-top:12px}
/* BA-066: label with a leader line for the selected structure */
#structure-callout{position:absolute;inset:0;z-index:7;pointer-events:none}
#structure-callout svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
#structure-callout line{stroke:#f3d27a;stroke-width:1.5}
#structure-callout circle{fill:#f3d27a;stroke:#13221f;stroke-width:1.5}
#structure-callout .callout-box{position:absolute;left:0;top:0;pointer-events:auto;display:grid;gap:2px;max-width:min(260px,62vw);text-align:left;background:#13221ff0;border:1px solid #f3d27a99;border-radius:10px;padding:7px 10px;color:#eef3ef;box-shadow:0 4px 18px #0005;cursor:pointer}
#structure-callout .callout-box strong{font-size:14px}
#structure-callout small{font-size:11px;color:#c9d6d0;line-height:1.4}
#structure-callout .callout-more{color:#f3d27a}
/* BA-068: a point's label in the pin colour; the reset button stands slightly apart */
#structure-callout.is-point line{stroke:#7fe0c8}
#structure-callout.is-point circle{fill:#7fe0c8}
#structure-callout.is-point .callout-box{border-color:#7fe0c899}
#structure-callout.is-point .callout-more{color:#7fe0c8}
#reset-view{background:#2a4a42e6;border-color:#7fe0c866}
/* BA-069: estimated candidates and extra points: dashed label with a small kind tag */
.point-label[data-estimate]{border-style:dashed;opacity:.92}
.point-label[data-estimate]::after{content:'推算';margin-left:5px;font-size:9px;padding:0 3px;border-radius:3px;background:#ffffff1f;color:#d9e4df}
.point-label[data-estimate="posture_differs"]::after{content:'体位'}
html[lang="ja"] .point-label[data-estimate]::after{content:'推定'}
html[lang="ja"] .point-label[data-estimate="posture_differs"]::after{content:'体位'}
.point-label[data-estimate="approximate"]{border-style:dotted}
.point-label[data-estimate="approximate"]::after{content:'大致'}
html[lang="ja"] .point-label[data-estimate="approximate"]::after{content:'おおよそ'}
.extra-label{color:#efe4fb}
.extra-card h2{font-size:16px;margin:4px 0}.extra-card h3{font-size:13px;margin:10px 0 2px;color:#c9d6d0}.extra-card p{margin:0 0 4px}.extra-card a.primary{display:inline-block;margin-top:10px}
#extra-toggle[aria-pressed="true"]{border-color:#c9a7ef}
/* The point's own pin label would repeat the label's first line. */
.stage.point-callout #point-labels .point-label[aria-pressed="true"]{visibility:hidden}
/* BA-066: 操作 help */
.control-help{pointer-events:auto;display:grid;gap:6px;justify-items:start;margin-top:6px;max-width:min(320px,100%)}
#control-help-toggle{border:1px solid #66897b;background:#13221fe6;color:#eef3ef;border-radius:999px;padding:5px 12px;font-size:12px}
#control-help-panel{background:#13221ff2;border:1px solid #66897b;border-radius:10px;padding:8px 11px;font-size:12px;line-height:1.55;color:#dfe8e3;display:grid;gap:4px}
#control-help-panel p{margin:0}
/* BA-067: locating tips on the 3D point card */
.point-tips{display:grid;gap:4px;margin:10px 0}
.point-tips h3{margin:0;font-size:14px}
.point-tips ul{margin:0;padding-left:18px;display:grid;gap:3px;font-size:13px}

/* BA-070: meridian rail on the right of the stage: tap selects a channel, the small x hides it,
   多选 shows several; collapsed it is a single tab so the model stays clear. */
.meridian-rail{position:absolute;right:8px;top:12px;bottom:96px;left:auto;width:auto;min-width:0;max-width:150px;height:auto;margin:0;padding:0;background:none;border:0;box-shadow:none;overflow:visible;z-index:6;display:flex;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:none}
.meridian-rail>*{pointer-events:auto}
.rail-head{display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.rail-head button{font-size:11px;padding:6px 9px;background:#1b242df0;border-radius:8px}
#rail-collapse::after{content:' ‹';opacity:.7}
.stage.rail-open #rail-collapse::after{content:' ›'}
#rail-multi{display:none}
.stage.rail-open #rail-multi{display:block}
#rail-multi[aria-pressed="true"]{border-color:#f3d27a;color:#f3d27a}
.rail-list{display:none;flex-direction:column;gap:4px;overflow-y:auto;overscroll-behavior:contain;max-height:100%;padding:2px 2px 6px;scrollbar-width:thin}
.stage.rail-open .rail-list{display:flex}
.rail-row{display:flex;align-items:center;gap:2px;justify-content:flex-end}
.rail-item{display:flex;align-items:center;gap:5px;min-width:52px;font-size:11px;line-height:1.1;padding:5px 8px;background:#14242bc4;backdrop-filter:blur(3px);border:1px solid #ffffff22;border-radius:14px;color:#dfe9e5;text-align:left}
.rail-item .dot{width:8px;height:8px;border-radius:50%;background:var(--rail-color,#aaa);flex:none}
.rail-item[aria-pressed="true"]{background:#2b4741;border-color:var(--rail-color,#9de3cd);color:#fff}
.rail-item:disabled{opacity:.35}
.rail-x{width:22px;height:22px;padding:0;border-radius:50%;font-size:12px;line-height:20px;background:#1b242df0;visibility:hidden}
.rail-row[data-on="true"] .rail-x{visibility:visible}
.rail-sep{height:1px;background:#ffffff26;margin:3px 4px;align-self:stretch}
.rail-item[data-kind="vessel"]{border-style:dashed}
.stage.rail-open .view-buttons{right:84px}
@media (max-width:740px){.stage.rail-open .view-buttons{display:none}.meridian-rail{bottom:104px}}
.vessel-card h2{font-size:16px;margin:4px 0}.vessel-card h3{font-size:13px;margin:10px 0 3px;color:#c9d6d0}.vessel-card p{margin:0 0 4px}
.vessel-card .chips{display:flex;flex-wrap:wrap;gap:5px}.vessel-card .chips button,.vessel-card .chips a{font-size:11px;padding:4px 8px;border-radius:12px}
.vessel-card a.primary{display:inline-block;margin-top:10px}

/* BA-076: phone help card stays clear of the view-button column and folds to the 操作 chip. */
@media (max-width:740px){
  body.acupoint-viewer .stage-top{max-width:calc(100% - 136px)}
  body.acupoint-viewer .stage-top.is-brief{background:none;padding:0}
  body.acupoint-viewer .stage-top.is-brief>strong,body.acupoint-viewer .stage-top.is-brief>p{display:none}
}

/* BA-077: topography / point summary in the leader label: up to 4 lines, tap to open in place. */
#structure-callout .callout-sub{white-space:pre-line;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
#structure-callout.is-expanded .callout-sub{-webkit-line-clamp:unset;display:block}
#structure-callout .callout-tag{margin-left:6px;font-size:10px;font-weight:500;padding:1px 5px;border-radius:4px;background:#f3d27a33;color:#f3d27a;vertical-align:2px}

/* BA-080: unselected point names are small plain text (no box) with a dark halo so they read on skin
   and muscle; the transparent padding keeps a 32 px touch target. Special-point badges shrink to a
   dot. The selected name is large, bold and boxed; the leader label carries only that line. */
#point-labels .point-label{min-height:32px;padding:9px 6px;line-height:14px;font-size:11.5px;font-weight:600;letter-spacing:.02em;
  background:none;border:0;border-radius:6px;box-shadow:none;color:#eef3ee;color:color-mix(in srgb,var(--point-color,#fff) 38%,#fff);
  text-shadow:1px 0 0 #0b1215,-1px 0 0 #0b1215,0 1px 0 #0b1215,0 -1px 0 #0b1215,1px 1px 0 #0b1215,-1px -1px 0 #0b1215,1px -1px 0 #0b1215,-1px 1px 0 #0b1215,0 0 4px #0b1215cc}
#point-labels .point-label:hover{background:#0b121566;color:#fff}
#point-labels .point-label[data-attachment="contact"],#point-labels .point-label[data-attachment="surface-reference"]{border:0;background:none;text-decoration:underline dashed #a1cfdf99;text-underline-offset:3px}
#point-labels .point-label[data-badges]::after{content:'';display:inline-block;width:5px;height:5px;margin:0 0 1px 4px;padding:0;border-radius:50%;background:#f3c86b;vertical-align:middle}
#point-labels .point-label[data-estimate]{opacity:.85}
#point-labels .point-label[data-estimate]::after{content:'推算';display:inline;width:auto;height:auto;margin-left:4px;padding:0;border-radius:0;background:none;font-size:9px;font-weight:400;color:#d9e4dfb0}
#point-labels .point-label[data-estimate="posture_differs"]::after{content:'体位'}
#point-labels .point-label[data-estimate="approximate"]::after{content:'大致'}
html[lang="ja"] #point-labels .point-label[data-estimate]::after{content:'推定'}
html[lang="ja"] #point-labels .point-label[data-estimate="posture_differs"]::after{content:'体位'}
html[lang="ja"] #point-labels .point-label[data-estimate="approximate"]::after{content:'おおよそ'}
#point-labels .point-label[aria-pressed="true"]:not([data-linked="true"]){z-index:3;min-height:32px;padding:5px 10px;font-size:17px;font-weight:700;line-height:1.3;color:#fff;
  background:#14242bf2;border:1px solid var(--point-color,#fff);border-radius:8px;text-shadow:none;box-shadow:0 2px 12px #0007;opacity:1;text-decoration:none}
#point-labels .point-label[aria-pressed="true"][data-estimate]:not([data-linked="true"]){border-style:dashed}
#point-labels .point-label[aria-pressed="true"][data-badges]::after{content:attr(data-badges);width:auto;height:auto;margin-left:6px;padding:0 5px;border-radius:999px;background:#f3c86b;color:#221a08;font-size:10px;font-weight:700;vertical-align:2px}
@media(max-width:740px){#point-labels .point-label{font-size:11px;padding:9px 5px}#point-labels .point-label[aria-pressed="true"]:not([data-linked="true"]){font-size:16px;padding:5px 9px}}
#structure-callout .callout-sub:empty,#structure-callout .callout-more:empty{display:none}
#structure-callout.is-point .callout-box{padding:6px 11px;border-color:#7fe0c8cc}
#structure-callout.is-point .callout-box strong{font-size:17px;font-weight:700;line-height:1.3}
#structure-callout.is-point .callout-box{max-width:min(360px,80vw)}
#structure-callout.is-point .callout-box strong{white-space:nowrap}
#structure-callout .callout-reading{margin-left:6px;font-size:12px;font-weight:400;color:#c9d6d0}
@media(max-width:740px){#structure-callout.is-point .callout-box strong{font-size:16px}}
/* In the point tab the card's own status badge says where the place comes from; the header line
   then only speaks up for peeled, contact or linked display states. */
#panel:has(#tab-point[aria-selected="true"]):has(#point-card .point-quick) #marker-status:is([data-mode="legacy"],[data-mode="surface"],[data-mode="unmapped"]){display:none}

/* BA-080: compact locating card at the top of 穴位资料 */
#point-card .point-quick{display:grid;gap:10px;padding:14px;margin:0 0 12px;border:1px solid #58736e;border-radius:12px;background:#1d2d2c;font-size:14px;line-height:1.65;overflow-wrap:anywhere}
#point-card .point-quick .quick-header{display:block;padding:0;margin:0;border:0;background:none}
#point-card .point-quick h2{margin:0;font-size:20px;font-weight:650;line-height:1.35;color:#f2f6f2}
#point-card .point-quick .quick-reading{margin:0;color:#9fb0b4;font-size:13px}
#point-card .point-quick .quick-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
#point-card .point-quick .quick-tag{padding:1px 8px;border-radius:999px;background:#2f3a2a;color:#f0d79a;font-size:12px}
#point-card .point-quick .quick-status{display:inline-block;margin:8px 0 0;padding:3px 9px;border-radius:6px;background:#3b382c;color:#e8cf9b;font-size:12px;line-height:1.5}
#point-card .point-quick .quick-block{border-top:1px solid #3a4f4a;padding-top:9px}
#point-card .point-quick h3{margin:0 0 4px;font-size:13px;font-weight:600;color:#a9d3c3;letter-spacing:.04em}
#point-card .point-quick p{margin:0 0 3px;font-size:14px;line-height:1.65}
#point-card .point-quick ul{margin:0;padding-left:18px;display:grid;gap:3px}
#point-card .point-quick li{font-size:14px;line-height:1.6}
#point-card .point-quick .quick-sub{margin-top:4px;font-size:12px;color:#a9bab5}
#point-card .point-quick .quick-muscles ul{list-style:none;padding:0}
#point-card .point-quick .quick-muscle{font:inherit;font-weight:600;color:#e9f3ee;background:none;border:0;padding:4px 0;min-height:32px;text-align:left;text-decoration:underline dotted #7fb9a6;text-underline-offset:3px}
#point-card .point-quick span.quick-muscle{text-decoration:none}
#point-card .point-quick .quick-nerve{color:#c5d5cf}
#point-card .point-quick .quick-nerve-group{font-size:13px}
#point-card .point-quick .quick-label{color:#9fbeb7;font-size:12px}
#point-card .point-quick .quick-cautions{border-top-color:#6d5a37}
#point-card .point-quick .quick-cautions h3{color:#f0c987}
#point-card .point-quick .quick-cautions p{color:#f2dcb2}
#point-card .point-quick .quick-dict-link{justify-self:start;min-height:32px;display:inline-flex;align-items:center;font-size:13px;color:#a6d5c8}
#point-card details.point-more{margin:0 0 12px;padding:0 12px;border:1px solid #3d524b;border-radius:10px;font-size:inherit}
#point-card details.point-more>summary{padding:11px 0;cursor:pointer;font-size:14px;color:#dfe9e2}
#point-card details.point-more[open]>summary{border-bottom:1px solid #3d524b;margin-bottom:10px}

/* BA-081: owner calibration mode (labels are frameless since BA-080: the kind shows as a tag) */
#point-labels .point-label[data-estimate="calibrated"]{opacity:1}
#point-labels .point-label[data-estimate="calibrated"]::after{content:'校准';color:#f3d27a}
html[lang="ja"] #point-labels .point-label[data-estimate="calibrated"]::after{content:'校正'}
#point-labels .point-label[aria-pressed="true"][data-estimate="calibrated"]:not([data-linked="true"]){border-style:solid}
#calibration-toggle[aria-pressed="true"]{background:#f3d27a;color:#13221f;border-color:#f3d27a}
body.calibrating #viewer{cursor:crosshair}
body.calibrating #point-labels .point-label{pointer-events:none}
.calibration-list{margin:8px 0 0;padding-left:18px;font-size:11px;color:#c1d2c8;max-height:160px;overflow:auto}
.calibration-list li{margin:2px 0}
