:root{color-scheme:dark;--bg:#0b1020;--surface:#141b2e;--raised:#1a2339;--text:#f2f4fa;--muted:#a0adca;--line:#2e3851;--accent:#b9a7ff;--good:#7ddcc4;--shade:rgba(5,9,20,.65);font:14px/1.6 'Noto Sans CJK SC','Microsoft YaHei',sans-serif}html[data-theme=light]{color-scheme:light;--bg:#f7f4ef;--surface:#fffdf9;--raised:#eee8df;--text:#27231f;--muted:#73695f;--line:#d5cbbf;--accent:#805024;--good:#276b5c;--shade:rgba(63,48,30,.3)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);padding:9px 14px;cursor:pointer;min-height:44px;transition:background .15s,border-color .15s}button:hover{background:var(--raised);border-color:var(--accent)}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}input,select,textarea{width:100%;padding:11px 12px;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:10px}textarea{resize:vertical}label{display:block;color:var(--muted)}label input,label select,label textarea{margin-top:6px}:focus-visible{outline:2px solid var(--accent);outline-offset:4px}[hidden]{display:none!important}.skip{position:fixed;top:-60px;left:12px;z-index:100;background:var(--accent);color:var(--bg);padding:12px}.skip:focus{top:10px}.top{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 30px;gap:32px}.brand{display:flex;align-items:center;gap:16px;white-space:nowrap}.brand>span{font:600 27px 'Noto Serif CJK SC',serif;letter-spacing:.14em}.brand small{border-left:1px solid var(--line);padding-left:16px;color:var(--muted)}.search{display:flex;align-items:center;gap:12px;max-width:480px;flex:1;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:0 14px}.search input{border:0;background:transparent;margin:0;padding-left:0;min-width:0}.search>span{font-size:25px;color:var(--accent)}kbd{font:12px monospace;border:1px solid var(--line);padding:0 6px}.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px;white-space:nowrap}.badge{font-size:12px;color:var(--muted)}.workspace{display:grid;grid-template-columns:220px minmax(0,1fr);height:calc(100dvh - 88px)}.sidebar{border-right:1px solid var(--line);padding:26px 18px;display:flex;flex-direction:column;min-height:0}.sidebar-title{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:22px}.sidebar nav{overflow:auto;flex:1;margin-top:10px}.sidebar nav button{display:block;width:100%;text-align:left;border:0;background:transparent;margin:3px 0;font-size:13px}.sidebar nav button.selected,.all.selected{background:var(--raised);color:var(--accent)}.all{display:flex;justify-content:space-between}.sidebar-bottom{padding-top:20px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.sidebar-bottom b{font-weight:500}.sidebar-bottom p{margin:8px 0}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--good);margin-right:8px}main{position:relative;display:flex;flex-direction:column;overflow:hidden;min-width:0;padding:28px 32px 16px}.view-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:22px}.eyebrow{font:10px/1.5 ui-monospace,monospace;letter-spacing:.16em;color:var(--muted)}h1{font:500 30px/1.3 'Noto Serif CJK SC',serif;margin:8px 0}p{color:var(--muted)}.view-heading p{margin:0;font-size:12px}.view-switch{display:flex;background:var(--surface);padding:4px;border:1px solid var(--line);border-radius:10px;flex-shrink:0}.view-switch button{border:0;background:transparent;font-size:12px;padding:6px 12px}.view-switch button[aria-pressed=true]{background:var(--raised);color:var(--accent)}.canvas{position:relative;flex:1;min-height:200px;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:radial-gradient(ellipse at 50% 15%,rgba(185,167,255,.045),transparent 65%),radial-gradient(circle,var(--line) .7px,transparent .8px);background-size:auto,24px 24px;touch-action:none;cursor:grab}.canvas.dragging{cursor:grabbing}.scene{position:absolute;transform-origin:0 0}.org-edges{position:absolute;inset:0;overflow:visible;pointer-events:none}.org-edges path{stroke:var(--line);stroke-width:1.5;fill:none}.org-node{position:absolute;width:240px;min-height:114px;border:1px solid var(--line);border-radius:16px;background:var(--surface);padding:17px 18px;box-shadow:0 8px 24px rgba(0,0,0,.12)}.org-node.selected{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}.node-kicker{color:var(--muted);font:10px ui-monospace,monospace;letter-spacing:.1em}.node-name{display:block;font-size:17px;font-weight:500;margin:6px 0 12px;border:0;padding:0;min-height:28px;background:transparent;text-align:left;width:100%}.node-meta{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.node-meta button{padding:0 10px;min-height:32px;color:var(--accent)}.node-root{border-top:2px solid var(--accent)}.canvas-controls{display:flex;justify-content:space-between;align-items:center;padding:14px 0 9px;gap:10px}.canvas-controls>div{display:flex;align-items:center;gap:6px}.canvas-controls output{font:12px monospace;color:var(--muted);width:46px;text-align:center}.canvas-hint,footer{color:var(--muted);font-size:11px}footer{display:flex;justify-content:space-between;gap:12px}.results{overflow:auto;flex:1;min-height:0}.result-row{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;padding:16px 20px;margin-bottom:8px;gap:15px}.result-row strong{font-weight:500}.result-row small{display:block;color:var(--muted);margin-top:4px}.result-row>span:last-child{color:var(--accent)}.empty,.loading{padding:40px;color:var(--muted)}#notice{border:1px solid var(--line);padding:10px 14px;border-radius:10px;margin-bottom:14px;font-size:12px;color:var(--muted)}dialog{color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:0 24px 100px rgba(0,0,0,.3);max-height:90dvh;overflow:auto;width:min(520px,calc(100vw - 32px))}dialog::backdrop{background:var(--shade);backdrop-filter:blur(5px)}dialog[open]{animation:reveal .25s ease-out}.detail{margin:16px 16px 16px auto;width:440px;height:calc(100dvh - 32px);max-height:none}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:24px}.dialog-head button{font-size:22px;padding:0 12px}.detail h2,.modal h2,.management h2{font:500 26px 'Noto Serif CJK SC',serif;margin:14px 0}.detail .avatar{width:64px;height:64px;border-radius:16px;display:grid;place-items:center;color:var(--accent);background:var(--raised);font:26px 'Noto Serif CJK SC',serif}.detail dl{display:grid;grid-template-columns:80px 1fr;gap:16px 12px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}dt{color:var(--muted)}dd{margin:0;overflow-wrap:anywhere}.detail-actions{display:flex;gap:8px;flex-wrap:wrap}.detail h3{font-weight:500;font-size:14px;margin-top:28px}form{display:grid;gap:18px}form small{color:var(--muted)}.primary{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:600}.primary:hover{background:var(--accent);filter:brightness(1.1)}.error{color:var(--accent);margin:0;white-space:pre-line}.modal>small{display:block;margin-top:18px;color:var(--muted);font-size:11px}.management{width:min(960px,calc(100vw - 32px))}.management-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.workflow-strip{display:flex;gap:18px;flex-wrap:wrap;padding:20px 0;color:var(--muted);border-bottom:1px solid var(--line);font-size:12px}.callout{background:var(--raised);border-radius:10px;padding:14px}.request-record{padding:20px 0;border-bottom:1px solid var(--line)}.request-record header{display:flex;justify-content:space-between;gap:16px}.request-record p{margin:8px 0;font-size:12px}.request-record details{font-size:12px}.request-record summary{cursor:pointer;color:var(--accent)}.state{color:var(--accent);font-size:12px}.management #logout{margin-top:24px}#request-fields{display:grid;gap:16px}.diff-table{width:100%;border-collapse:collapse;font-size:12px}.diff-table td,.diff-table th{text-align:left;border-bottom:1px solid var(--line);padding:10px 6px;overflow-wrap:anywhere}.diff-table th{color:var(--muted);font-weight:400}.diff-table td:last-child{color:var(--accent)}#diff{padding:14px;background:var(--raised);border-radius:10px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:var(--raised);padding:14px 22px;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.3);z-index:100;max-width:90vw}#toast:empty{display:none}.mobile-tree{display:none}@keyframes reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1700px){main{padding:38px 48px 20px}.workspace{grid-template-columns:250px 1fr}.sidebar{padding:32px 24px}}@media(max-width:1000px){.top{gap:16px;padding:0 20px}.brand small,.badge{display:none}.workspace{grid-template-columns:170px 1fr}main{padding:24px 20px 12px}.view-heading{align-items:flex-start;flex-direction:column}.canvas-hint{display:none}}@media(max-width:640px){.top{height:auto;min-height:132px;padding:16px;gap:12px;flex-wrap:wrap}.brand{order:0}.top-actions{order:1}.top-actions button{font-size:12px;padding:8px 10px}.search{order:2;max-width:none;flex-basis:100%}.workspace{display:block;height:calc(100dvh - 132px)}.sidebar{display:none}main{height:100%;padding:20px 16px 12px}.view-heading{gap:14px;margin-bottom:16px}h1{font-size:26px}.eyebrow{font-size:9px}.view-switch{width:100%}.view-switch button{flex:1}.canvas{overflow:auto;touch-action:pan-y;background:none;cursor:auto;border:0;border-radius:0}.scene{position:static!important;transform:none!important;width:auto!important;height:auto!important}.desktop-tree{display:none}.mobile-tree{display:block}.mobile-row{margin:8px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.mobile-row>div{display:flex;align-items:center;gap:6px}.mobile-row .mobile-name{flex:1;border:0;text-align:left;padding:4px;background:transparent}.mobile-row small{display:block;color:var(--muted)}.mobile-children{padding-left:12px;border-left:1px solid var(--line)}.canvas-controls{display:none}footer{font-size:10px;margin-top:10px}footer span:last-child{display:none}.detail{margin:0;width:100vw;height:100dvh;max-height:100dvh;border-radius:0;padding:22px}.modal,.management{padding:22px;max-height:94dvh}.management-heading{align-items:stretch;flex-direction:column}.workflow-strip{gap:8px}.result-row{padding:14px}.view-heading p{font-size:11px}dialog{overscroll-behavior:contain}.diff-table{table-layout:fixed}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

:root{--bg:#f4f3ed;--surface:#fdfdf8;--raised:#e9eee5;--text:#263e38;--muted:#6a7d73;--line:#d5dfd5;--accent:#426d5a;--good:#477b62;color-scheme:light;font-family:'Microsoft YaHei','PingFang SC',sans-serif}html[data-theme=dark]{--bg:#14241f;--surface:#1d332b;--raised:#2d473b;--text:#e5ece2;--muted:#a5b8a7;--line:#365446;--accent:#9fc5aa;--good:#9fc5aa;color-scheme:dark}.top{height:74px;background:var(--surface)}.workspace{height:calc(100dvh - 74px);grid-template-columns:180px minmax(0,1fr)}.sidebar{padding:22px 14px}.brand>span{font-family:'STSong','SimSun',serif}.view-heading{margin-bottom:12px;flex-shrink:0}.view-heading h1{font:500 28px 'STSong','SimSun',serif;letter-spacing:.09em}.view-heading p{font-size:12px;margin-top:8px}main{padding:22px 26px 12px;min-height:0;height:100%;overflow:hidden}.sidebar #directory{min-height:0;overflow:auto}.map-shortcuts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:0 0 14px;font-size:11px;flex-shrink:0}.map-shortcuts>span{color:var(--muted);margin-right:8px}.map-shortcuts button{font-size:12px;padding:5px 13px;min-height:32px;border-radius:20px;background:transparent}.canvas.tree-canvas{height:auto;min-height:200px;flex:1;overflow:hidden;position:relative;isolation:isolate;border:1px solid var(--line);border-radius:12px;background-color:var(--surface);background-image:radial-gradient(var(--line) .7px,transparent .7px);background-size:28px 28px;cursor:grab;touch-action:none;contain:layout paint}.tree-canvas.dragging{cursor:grabbing}.tree-canvas .scene{position:absolute!important;top:0;left:0;transform-origin:0 0;zoom:1!important}.tree-board{position:relative}.tree-lines{position:absolute;inset:0;fill:none;stroke:#8fa99b;stroke-width:2;pointer-events:none}.tree-node{position:absolute;padding:0 22px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 7px 24px #23433308;overflow:visible}.tree-node>header{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);min-height:63px}.tree-node header button{font:600 24px/1.35 'STSong','SimSun',serif;text-align:left;background:none;border:0;padding:8px 0;min-height:54px;letter-spacing:.04em}.tree-count{font:30px/1.2 Georgia,serif;color:var(--accent);text-align:right}.tree-count small{display:block;font:11px/1.5 'Microsoft YaHei',sans-serif;color:var(--muted)}.tree-leader{padding:12px 0 16px;font-size:14px;letter-spacing:.02em;color:var(--muted)}.tree-people>button{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;height:76px;min-height:76px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;text-align:left;padding:10px 0}.tree-people>button:last-child{border-bottom:0}.tree-people>button>span{flex:0 0 104px;display:flex;flex-direction:column;gap:5px}.tree-people b{font-size:17px;letter-spacing:.035em;font-weight:500}.tree-people em{font-size:12px;font-style:normal;color:var(--muted)}.tree-people>button>small{font-size:13px;line-height:1.7;color:var(--muted);text-align:right;overflow-wrap:anywhere}.tree-people>button:hover{background:var(--raised)}.tree-business{background:#e8f1e9;border-color:#abc5b2;box-shadow:0 14px 36px #2b563514}.tree-business header button{font-size:28px}.tree-root{background:#285d4f;color:#f1f5e9;border-color:#285d4f;box-shadow:0 18px 50px #20453624;padding:0 26px}.tree-root header button,.tree-root .tree-count,.tree-root .tree-count small,.tree-root .tree-leader,.tree-root .tree-people button,.tree-root .tree-people small,.tree-root .tree-people em{color:#eff4e8}.tree-root header,.tree-root .tree-people>button{border-color:#527d6d}.tree-root header button{font-size:30px}.tree-root .tree-people>button:hover{background:#376c5a}.tree-node.tree-focus{outline:2px solid #ae8f5c;outline-offset:9px}.canvas-controls{display:flex;flex-shrink:0;gap:10px;padding:12px 0 5px}.canvas-controls button{border-radius:6px;min-height:36px;padding:5px 12px}.canvas-controls output{width:44px}.canvas-hint{font-size:11px}footer{flex-shrink:0}.sidebar-bottom{font-size:11px}.sidebar button{border-radius:5px}html[data-theme=dark] .tree-business{background:#254536;border-color:#52755e}html[data-theme=dark] .tree-lines{stroke:#638575}.map-shortcuts[hidden]{display:none}
@media(max-width:900px){.workspace{grid-template-columns:145px minmax(0,1fr)}main{padding:14px}.brand small{display:none}.top{padding:0 16px;gap:16px}.view-heading h1{font-size:23px}}
@media(max-width:640px){.top{height:116px;min-height:116px;display:flex;flex-wrap:wrap;padding:10px 12px;gap:8px}.top .search{order:3;flex-basis:100%;max-width:none}.top-actions{margin-left:auto}.top-actions .badge{display:none}.workspace{display:block;height:calc(100dvh - 116px)}.sidebar{display:none}main{height:100%;padding:12px}.view-heading{display:flex;align-items:center;gap:8px}.view-heading h1{font-size:20px}.view-heading p,.view-heading .eyebrow{display:none}.view-switch button{padding:6px 9px;font-size:11px}.map-shortcuts{flex-wrap:nowrap;overflow-x:auto;gap:5px;padding-bottom:10px;min-height:44px}.map-shortcuts button{flex-shrink:0;min-height:36px}.map-shortcuts>span{display:none}.canvas.tree-canvas{flex:1;height:auto;min-height:180px;overflow:hidden;border:1px solid var(--line);touch-action:none}.tree-canvas .scene{position:absolute!important;width:var(--world-width)!important;height:var(--world-height)!important;transform-origin:0 0}.canvas-controls{display:flex;flex-wrap:wrap}.canvas-controls>div{display:flex;gap:4px}.canvas-controls button{font-size:11px;padding:5px 8px}.canvas-hint{display:none}footer{font-size:9px;padding-top:2px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* A diagram, not a roster: grouped leaves and explicit leadership. */
.diagram-world{position:relative}.diagram-world.measuring{visibility:hidden}.diagram-node{position:absolute;background:var(--surface);border:1px solid #cbd6ce;border-radius:9px;padding:20px 22px 13px;box-shadow:0 6px 20px #274a3410;color:var(--text)}.diagram-node-title{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:12px;border-bottom:1px solid var(--line)}.diagram-node-title>button{font:600 23px/1.35 'STSong','SimSun',serif;background:none;border:0;padding:0;text-align:left;min-height:36px}.diagram-census{text-align:right;min-width:34px}.diagram-census strong{display:block;font:26px Georgia,serif;color:var(--accent)}.diagram-census small{font-size:10px;color:var(--muted)}.chief-person{display:flex;align-items:baseline;gap:9px;padding:15px 0 12px;border:0;background:none;min-height:52px;width:100%;text-align:left;border-radius:0}.chief-person>span{font-size:11px;color:var(--muted)}.chief-person strong{font-size:20px;letter-spacing:.04em;font-weight:600}.chief-person em{font-size:12px;font-style:normal;color:var(--muted)}.chief-person.unassigned strong{font-size:14px;font-weight:400}.role-columns{display:grid;grid-template-columns:repeat(var(--role-cols),minmax(0,1fr));gap:20px;padding-top:4px}.role-cluster{min-width:0}.role-cluster h4{font-size:12px;font-weight:500;margin:0 0 7px;padding:8px 0;border-top:1px solid var(--line);color:var(--muted);overflow-wrap:anywhere}.role-cluster h4 small{margin-left:8px;font-size:10px}.role-members{display:grid;gap:0}.role-members.multi-names{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.role-members>button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;border:0;border-radius:4px;min-height:46px;padding:6px 4px;background:none;text-align:left}.role-members>button:hover{background:var(--raised)}.roster-name{font-size:15px;font-weight:500;letter-spacing:.025em;white-space:nowrap}.role-members small{color:var(--muted);font-size:10px;margin-top:2px}.node-foot{font-size:10px;color:var(--muted);border-top:1px solid var(--line);margin-top:12px;padding-top:9px}.major-business{background:#edf4ed;border-color:#a6c1ae}.major-business .diagram-node-title>button{font-size:27px}.company-node{background:#285d4f;color:#f5f7ed;border-color:#285d4f}.company-node .diagram-node-title>button,.company-node .diagram-census strong,.company-node .chief-person span,.company-node .chief-person strong,.company-node .role-cluster h4,.company-node .roster-name,.company-node .role-members small,.company-node .node-foot{color:#f1f5ea}.company-node .role-members>button:hover{background:#3a715d}.diagram-wires{position:absolute;inset:0;pointer-events:none;fill:none;stroke:#88a497;stroke-width:1.8;stroke-linejoin:round}.diagram-node.tree-focus{outline:2px solid #b39462;outline-offset:7px}html[data-theme=dark] .diagram-node{background:#213b30;border-color:#456853}html[data-theme=dark] .major-business{background:#2b4938}.sidebar{width:180px}.workspace{grid-template-columns:180px minmax(0,1fr)}

/* Gesture surface and quiet navigation aids. No idle animation. */
.tree-canvas{overscroll-behavior:contain;user-select:none;-webkit-user-select:none}.tree-canvas button{touch-action:none}.tree-canvas.dragging,.tree-canvas.dragging *,.tree-canvas.pan-ready *{cursor:grabbing!important}.tree-canvas.dragging .diagram-node{box-shadow:none}.canvas-navigator{position:absolute;right:16px;bottom:16px;width:190px;border:1px solid var(--line);border-radius:9px;background:var(--surface);box-shadow:0 4px 18px #203b3018;z-index:5;overflow:hidden;padding:10px;touch-action:none}.navigator-label{font-size:11px;color:var(--text);display:flex;justify-content:space-between;margin-bottom:8px}.navigator-label span{font-size:10px;color:var(--muted)}.canvas-navigator svg{display:block;width:100%;height:auto;max-height:85px;cursor:crosshair;overflow:hidden}.canvas-navigator rect{fill:#b9cfc0}.canvas-navigator rect.nav-major{fill:#4f8067}.canvas-navigator .navigator-viewport{fill:#b58a3b24;stroke:#a27538;stroke-width:18;pointer-events:none}.map-hud{position:absolute;top:15px;left:15px;z-index:4;display:flex;gap:9px;align-items:center;background:var(--surface);border:1px solid var(--line);padding:9px 13px;border-radius:20px;pointer-events:none;font-size:11px;color:var(--muted);box-shadow:0 2px 8px #203b3008}.hud-dot{width:5px;height:5px;border-radius:50%;background:var(--accent)}#map-location{color:var(--text)}.hud-tip{border-left:1px solid var(--line);padding-left:9px}.diagram-node{transition:box-shadow .18s,border-color .18s}.diagram-node:hover{border-color:#96b5a1;box-shadow:0 9px 24px #234b3617}.canvas-controls button{min-height:44px;min-width:44px}.tree-canvas:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:640px){.canvas-navigator{width:112px;padding:6px;right:8px;bottom:8px;border-radius:6px}.navigator-label{font-size:9px;margin-bottom:4px}.navigator-label span{display:none}.canvas-navigator svg{max-height:42px}.map-hud{left:8px;top:8px;font-size:10px;padding:6px 10px}.hud-tip{display:none}.canvas-controls>div{width:100%;justify-content:space-between}.canvas-controls button{min-height:44px}.map-shortcuts button{min-height:44px}}


/* Refined color system: color classifies; typography establishes authority. */
html[data-theme=light]{--bg:#f3f5f8;--surface:#ffffff;--raised:#eef2f6;--text:#202c3d;--muted:#596779;--line:#e0e6ee;--accent:#386594;--good:#287d69;--shade:rgba(22,35,53,.38);--map-bg:#f8fafc;--map-grid:#dce4ed;--wire:#b4c2d0;--node-shadow:0 3px 7px #1b324506,0 12px 30px #1b324509;color-scheme:light}
html[data-theme=dark]{--bg:#141c29;--surface:#1c2636;--raised:#253348;--text:#e7edf6;--muted:#a7b5c8;--line:#334156;--accent:#8db7ec;--good:#8bcbb9;--shade:rgba(2,8,17,.65);--map-bg:#151f2d;--map-grid:#2d3a4c;--wire:#52677f;--node-shadow:0 8px 24px #02081228;color-scheme:dark}
body{background:var(--bg);color:var(--text);font-family:'Microsoft YaHei','PingFang SC',sans-serif}
.top{background:var(--surface);border-bottom:1px solid var(--line)}.brand>span{font:650 25px 'Microsoft YaHei','PingFang SC',sans-serif;letter-spacing:.12em;color:var(--text)}.brand small{font-size:11px;letter-spacing:.04em}
.view-heading h1{font:550 26px/1.45 'Microsoft YaHei','PingFang SC',sans-serif;letter-spacing:.015em;color:var(--text)}.eyebrow{font-size:9px;letter-spacing:.12em;color:var(--muted)}
.search{box-shadow:none;background:var(--bg);border-color:var(--line)}.search input{color:var(--text)}.sidebar{background:var(--surface);border-right-color:var(--line)}.sidebar nav button{color:var(--muted)}.sidebar nav button:hover{color:var(--text);background:var(--raised)}.sidebar nav button.selected,.all.selected{background:var(--raised);color:var(--accent);font-weight:600}.sidebar-bottom{color:var(--muted)}
#notice{background:var(--surface);border-color:var(--line);color:var(--muted);border-radius:7px}.view-switch{box-shadow:none;border-radius:8px;background:var(--surface)}.view-switch button[aria-pressed=true]{background:var(--raised);color:var(--text);font-weight:600}.map-shortcuts button{background:var(--surface);border-color:var(--line);color:var(--muted)}.map-shortcuts button:hover{color:var(--accent);border-color:var(--accent)}
.canvas.tree-canvas{background-color:var(--map-bg);background-image:radial-gradient(var(--map-grid) .7px,transparent .7px);background-size:30px 30px;border-color:var(--line);box-shadow:inset 0 1px 3px #17344b03;border-radius:12px}
.diagram-node{--division:#64748b;--division-soft:#eef2f6;background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:var(--node-shadow);color:var(--text)}
.diagram-node.tone-231{--division:#3266a6;--division-soft:#edf4fc}.diagram-node.tone-232{--division:#24766c;--division-soft:#edf7f3}.diagram-node.tone-233{--division:#6b5a87;--division-soft:#f3f0f8}.diagram-node.tone-225{--division:#59657b;--division-soft:#eef1f6}
html[data-theme=dark] .diagram-node{background:var(--surface);border-color:var(--line)}html[data-theme=dark] .diagram-node.tone-231{--division:#9ac3f4;--division-soft:#293d55}html[data-theme=dark] .diagram-node.tone-232{--division:#8ed0be;--division-soft:#263e3a}html[data-theme=dark] .diagram-node.tone-233{--division:#c3b4e3;--division-soft:#36324a}html[data-theme=dark] .diagram-node.tone-225{--division:#b6c3d6;--division-soft:#303b4d}
.diagram-node.major-business{background:var(--surface);border-color:var(--line);box-shadow:var(--node-shadow)}.diagram-node.tone-225{background:var(--surface);border-color:var(--line)}.diagram-node.tone-233{border-color:var(--line)}
.diagram-node-title{position:relative;align-items:center;border-bottom:1px solid var(--line);padding-bottom:14px;min-height:48px}.diagram-node .diagram-node-title>button,html[data-theme=dark] .diagram-node .diagram-node-title>button{font:600 22px/1.4 'Microsoft YaHei','PingFang SC',sans-serif;color:var(--text);letter-spacing:.01em;background:none;min-height:36px}.diagram-node.major-business .diagram-node-title>button{font-size:25px;font-weight:650}
.diagram-node .diagram-node-title>button:before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--division);vertical-align:middle;margin:0 9px 3px 0}
.diagram-census{border-radius:7px;padding:4px 8px;min-width:48px;background:var(--division-soft)}.diagram-node .diagram-census strong{font:600 22px/1.15 'Microsoft YaHei',sans-serif;color:var(--division);font-variant-numeric:tabular-nums}.diagram-node .diagram-census small{font-size:10px;color:var(--division);line-height:1.7;white-space:nowrap}
.diagram-node .chief-person{display:block;background:none;padding:15px 0 12px;margin:0;border:0;min-height:55px;border-radius:0;text-align:left;width:100%;--rank-ink:var(--muted);--rank-soft:var(--raised)}.diagram-node .chief-person .chief-label{display:block;font-size:11px;color:var(--muted);margin-bottom:7px}.diagram-node .chief-person .chief-identity{display:flex;flex-wrap:wrap;align-items:center;gap:7px 8px;min-width:0;white-space:normal;background:none;padding:0}.diagram-node .chief-person .chief-title{font-size:13px;font-weight:600;line-height:1.6;border-radius:5px;padding:3px 8px;color:var(--rank-ink);background:var(--rank-soft);overflow-wrap:anywhere}.diagram-node .chief-divider{color:var(--muted);font-size:13px}.diagram-node .chief-person strong,html[data-theme=dark] .diagram-node .chief-person strong{color:var(--text);font-size:22px;font-weight:650;letter-spacing:.015em;white-space:nowrap}.diagram-node .chief-person em{font-size:12px;color:var(--muted)}.diagram-node .chief-person:hover{background:var(--raised)}.diagram-node .chief-person.unassigned strong{font-size:14px;font-weight:400;color:var(--muted)}
.diagram-node .rank-chair{--rank-ink:#795519;--rank-soft:#f7edda}.diagram-node .rank-executive{--rank-ink:#285992;--rank-soft:#eaf1fb}.diagram-node .rank-director{--rank-ink:#695184;--rank-soft:#f1edf7}.diagram-node .rank-lead{--rank-ink:#256d62;--rank-soft:#e9f4ef}
html[data-theme=dark] .diagram-node .rank-chair{--rank-ink:#efd09a;--rank-soft:#443926}html[data-theme=dark] .diagram-node .rank-executive{--rank-ink:#a7ccff;--rank-soft:#283b56}html[data-theme=dark] .diagram-node .rank-director{--rank-ink:#d3bdf1;--rank-soft:#3c324e}html[data-theme=dark] .diagram-node .rank-lead{--rank-ink:#9ad7c7;--rank-soft:#263f3b}
.diagram-node .role-cluster h4{font-size:12px;color:var(--muted);font-weight:550;border-top-color:var(--line);letter-spacing:.02em}.role-cluster h4 small{color:var(--muted)}.diagram-node .roster-name{color:var(--text);font-size:15px;font-weight:500;letter-spacing:.01em}.diagram-node .role-members small{color:var(--muted);font-size:11px}.diagram-node .role-members>button:hover{background:var(--raised)}.diagram-node .node-foot{color:var(--muted);border-top-color:var(--line);font-size:10px;line-height:1.6}
.diagram-wires{stroke:var(--wire);stroke-width:1.8}.diagram-node:hover{border-color:color-mix(in srgb,var(--division) 45%,var(--line));box-shadow:0 6px 20px #263e5012}.diagram-node.tree-focus{outline:2px solid var(--accent);outline-offset:5px;box-shadow:var(--node-shadow)}
/* Only the company identity uses a dark surface. */
.diagram-node.company-node,html[data-theme=dark] .diagram-node.company-node{background:#22384c;border-color:#22384c;--division:#a9c7e1;--division-soft:#334c62;box-shadow:0 12px 32px #17334c1a}.diagram-node.company-node .diagram-node-title>button,.diagram-node.company-node .chief-person strong,html[data-theme=dark] .diagram-node.company-node .chief-person strong,html[data-theme=dark] .diagram-node.company-node .diagram-node-title>button{color:#f6f8fc}.diagram-node.company-node .chief-person>span{background:#334c62;color:#d2deeb}.diagram-node.company-node .chief-person em,.diagram-node.company-node .role-cluster h4,.diagram-node.company-node .role-members small,.diagram-node.company-node .node-foot{color:#bcccdd}.diagram-node.company-node .roster-name{color:#f2f6fb}.diagram-node.company-node .diagram-node-title,.diagram-node.company-node .role-cluster h4,.diagram-node.company-node .node-foot{border-color:#476077}.diagram-node.company-node .chief-person:hover,.diagram-node.company-node .role-members>button:hover{background:#334c62}
.canvas-navigator{background:var(--surface);border-color:var(--line);box-shadow:0 4px 18px #213b5010}.canvas-navigator rect{fill:#c2cdd9}.canvas-navigator rect.nav-major{fill:#7799b8}.canvas-navigator .navigator-viewport{fill:#497cad15;stroke:var(--accent)}.map-hud{background:var(--surface);border-color:var(--line);box-shadow:0 2px 9px #29445a08;color:var(--muted)}.hud-dot{background:var(--accent)}.canvas-controls{color:var(--muted)}.canvas-controls button{background:var(--surface);border-color:var(--line);color:var(--text)}.canvas-controls button:hover{background:var(--raised);border-color:var(--accent)}#map-location{font-weight:550}.primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}
@media(max-width:640px){.view-heading h1{font-size:19px}.brand>span{font-size:24px}.canvas-navigator{box-shadow:0 2px 10px #213b500c}}
html[data-theme=light] .top-actions button,html[data-theme=light] .map-shortcuts button,html[data-theme=light] .canvas-controls button{background:#fff;border-color:#cbd5e1;color:#344962}
html[data-theme=light] .top-actions button:hover,html[data-theme=light] .map-shortcuts button:hover,html[data-theme=light] .canvas-controls button:hover{background:#edf4fc;border-color:#7e9ec2;color:#244d7b}
.diagram-node .role-cluster h4{font-size:13px}.diagram-node .node-foot{font-size:11px}.diagram-node .role-members small{font-size:12px}.diagram-node .chief-person>span{font-size:12px}
#notice:not([hidden]):before{content:'!';display:inline-grid;place-items:center;width:16px;height:16px;margin-right:8px;border-radius:50%;background:#f5ead7;color:#805c25;font:600 11px/1 sans-serif}
html[data-theme=dark] #notice:not([hidden]):before{background:#493b28;color:#eed29b}
@media(max-width:640px){.canvas-navigator{width:92px;padding:5px;bottom:8px;right:8px}.canvas-navigator svg{max-height:31px}.navigator-label{font-size:9px}.map-shortcuts button{color:var(--text)}}
/* Hierarchical directory: root cards, connected hover columns. */
.workspace{grid-template-columns:256px minmax(0,1fr)}.sidebar{width:auto;padding:22px 16px 16px;position:relative;z-index:8}.sidebar-title{margin-bottom:14px;color:var(--text);font-weight:600;font-size:13px}.sidebar-title small{font-size:11px;color:var(--muted);font-weight:400}.sidebar .all{border:1px solid var(--line);border-radius:9px;padding:10px 13px;background:var(--surface);font-weight:600}.sidebar .all.selected{background:var(--raised)}
.directory-hint{font-size:10px;color:var(--muted);margin:14px 0 10px;letter-spacing:.02em}.sidebar #directory{margin:0;padding:2px 0 12px;overflow:auto;scrollbar-width:thin}.directory-card{--division:#64748b;position:relative;display:flex;align-items:stretch;gap:0;border:1px solid var(--line);border-radius:10px;background:var(--surface);margin:0 0 9px;transition:border-color .13s,background .13s;min-width:0}.directory-card.tone-225{--division:#677187}.directory-card.tone-231{--division:#3266a6}.directory-card.tone-232{--division:#24766c}.directory-card.tone-233{--division:#75618f}
.directory-card:hover,.directory-card.is-branch{background:var(--raised);border-color:color-mix(in srgb,var(--division) 50%,var(--line))}.directory-card.is-current{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.sidebar nav .directory-target,.directory-target{display:block;width:auto;min-width:0;flex:1;text-align:left;margin:0;padding:13px 0 12px 12px;border:0;border-radius:9px 0 0 9px;background:transparent;min-height:84px;color:var(--text);font-size:13px;line-height:1.55}.sidebar nav .directory-target:hover,.directory-target:hover{background:transparent;color:var(--text)}
.directory-card-top{display:flex;align-items:center;gap:7px}.directory-dot{flex:none;width:6px;height:6px;border-radius:50%;background:var(--division)}.directory-card-top strong{font-size:14px;line-height:1.5;font-weight:600;overflow-wrap:anywhere}.directory-people{margin-left:auto;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--division)}.directory-people small{font-size:9px;font-weight:400;margin-left:2px;color:var(--muted)}.directory-person{display:block;font-size:11px;line-height:1.7;color:var(--muted);margin:5px 0 2px;overflow-wrap:anywhere}.directory-sub{display:block;font-size:10px;line-height:1.5;color:var(--muted)}
.sidebar nav .directory-expand,.directory-expand{display:flex;align-items:center;justify-content:center;flex:0 0 30px;width:30px;min-height:44px;align-self:stretch;margin:0 0 0 3px;padding:0;border:0;border-radius:0 9px 9px 0;background:transparent;color:var(--muted)}.sidebar nav .directory-expand:hover,.directory-expand:hover{background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--accent)}.directory-expand svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round}.directory-leaf{display:flex;align-items:center;justify-content:center;flex:0 0 28px;color:var(--muted)}
.directory-current{padding:13px 0 14px;border-top:1px solid var(--line);margin-top:auto}.directory-current>span{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}.directory-current>b{font-size:11px;line-height:1.7;font-weight:500;display:block;overflow-wrap:anywhere}.sidebar-bottom{padding-top:14px;flex-shrink:0}.sidebar-bottom small{font-size:10px}
#directory-toggle{display:none}#directory-shade{position:fixed;inset:0;background:var(--shade);z-index:49}
#directory-flyout{position:fixed;z-index:50;display:flex;flex-direction:column;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:0 14px 14px 14px;box-shadow:0 16px 50px #152b4526;overflow:hidden;max-height:calc(100dvh - 100px);min-width:0;isolation:isolate;animation:directory-appear .12s ease-out}
@keyframes directory-appear{from{opacity:0;transform:translateX(-4px)}to{opacity:1;transform:none}}
.directory-panel-head{display:flex;align-items:center;gap:12px;padding:10px 16px 6px;flex-shrink:0}.directory-panel-head>div{flex:1;min-width:0}.directory-panel-eyebrow{display:none}.directory-panel-head strong{font-size:16px;font-weight:600}.directory-panel-head button{min-width:44px;min-height:44px;border:0;background:none;padding:6px 10px;border-radius:8px}.directory-panel-head button:hover{background:var(--raised)}#directory-close{font-size:23px;font-weight:300;color:var(--muted)}
.directory-breadcrumbs{display:flex;align-items:center;gap:5px;flex-wrap:wrap;padding:0 16px 12px;border-bottom:1px solid var(--line);flex-shrink:0}.directory-breadcrumbs button{padding:4px 5px;min-height:28px;border:0;border-radius:4px;font-size:11px;color:var(--muted);background:none}.directory-breadcrumbs button:last-child{color:var(--text);font-weight:600}.directory-breadcrumbs span{font-size:12px;color:var(--muted)}
.directory-columns{display:flex;gap:0;min-height:0;overflow-x:auto;overflow-y:hidden;padding:0 12px;scrollbar-width:thin;overscroll-behavior:contain}.directory-column{display:flex;flex-direction:column;flex:0 0 280px;width:280px;min-width:0;border-right:1px solid var(--line);padding:14px 12px 4px;overflow:hidden}.directory-column:last-child{border-right:0}.directory-column-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:0 1px 12px;flex-shrink:0}.directory-column-head>span{font-size:11px;color:var(--text);font-weight:600}.directory-column-head>strong{font-size:10px;font-weight:400;color:var(--muted)}.directory-column-head>small{margin-left:auto;font-size:10px;color:var(--muted)}.directory-column-list{overflow:auto;min-height:0;scrollbar-width:thin;padding:1px 2px 4px}.directory-column .directory-card{margin-bottom:8px}.directory-column .directory-target{min-height:82px}.directory-column .directory-person{font-size:11px}.directory-column .directory-card-top strong{font-size:14px}.directory-column .directory-people{font-size:14px}
#directory-flyout>footer{display:flex;justify-content:space-between;gap:12px;padding:10px 17px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;flex-shrink:0}#directory-flyout>footer span{color:var(--muted)}
html[data-theme=dark] .directory-card.tone-225{--division:#b6c3d6}html[data-theme=dark] .directory-card.tone-231{--division:#9ac3f4}html[data-theme=dark] .directory-card.tone-232{--division:#8ed0be}html[data-theme=dark] .directory-card.tone-233{--division:#c3b4e3}html[data-theme=dark] #directory-flyout{box-shadow:0 16px 50px #050a144d}
@media(min-width:761px) and (max-width:1100px){.workspace{grid-template-columns:236px minmax(0,1fr)}.sidebar{display:flex;padding:18px 12px;width:auto}.directory-card-top strong{font-size:13px}.directory-person{font-size:11px}}
@media(max-width:760px){.workspace{display:block}.sidebar{display:none}#directory-toggle{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:8px;font-weight:600;min-height:44px}#directory-flyout{inset:12px 10px auto;width:auto!important;max-height:calc(100dvh - 24px)!important;border-radius:14px;animation:none}.directory-panel-head{padding:13px 10px 9px}#directory-back{font-size:15px}.directory-panel-head strong{font-size:16px}.directory-panel-eyebrow{display:none}.directory-breadcrumbs{padding:0 12px 9px;gap:1px}.directory-breadcrumbs button{min-height:44px;padding:6px}.directory-columns{flex:1;padding:0 10px;overflow:hidden}.directory-column{width:100%;flex:1 0 100%;padding:10px 2px 3px;border:0}.directory-column-list{padding-right:2px}.directory-column-head{padding:2px 4px 12px}.directory-column .directory-target{min-height:90px;padding:14px 0 13px 14px}.directory-column .directory-card-top strong{font-size:16px}.directory-column .directory-person{font-size:12px}.directory-column .directory-sub{font-size:11px}.directory-expand{flex-basis:48px;width:48px}.directory-leaf{flex-basis:36px}#directory-flyout>footer{padding:13px 14px;font-size:11px}}
@media(prefers-reduced-motion:reduce){#directory-flyout{animation:none}.directory-card{transition:none}}
/* Full canvas mode removes surrounding chrome, not content. */
.canvas-fullscreen #directory-flyout{left:12px;top:64px;width:430px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 140px);border-radius:12px}.canvas-fullscreen .directory-columns{overflow-x:hidden}.canvas-fullscreen .directory-column{flex:1 0 100%;width:100%;border:0}.canvas-fullscreen #directory-shade{background:rgba(12,24,38,.28)}
#map-fullscreen{color:var(--accent);font-weight:600}body.canvas-fullscreen{overflow:hidden}.canvas-fullscreen>.top,.canvas-fullscreen .sidebar{display:none!important}.canvas-fullscreen .workspace{display:block;height:100dvh}.canvas-fullscreen #main{position:fixed;inset:0;z-index:40;width:100%;height:100dvh;padding:0;display:flex;flex-direction:column;background:var(--map-bg);overflow:hidden}.canvas-fullscreen .view-heading,.canvas-fullscreen #notice,.canvas-fullscreen #main>footer{display:none!important}.canvas-fullscreen .map-shortcuts{order:0;padding:6px max(12px,env(safe-area-inset-right)) 6px max(12px,env(safe-area-inset-left));margin:0;min-height:54px;flex:0 0 auto;flex-wrap:nowrap;overflow-x:auto;gap:7px;background:var(--surface);border-bottom:1px solid var(--line)}.canvas-fullscreen .map-shortcuts>span{display:none}.canvas-fullscreen #directory-toggle{display:inline-flex;align-items:center;justify-content:center;font-weight:600}.canvas-fullscreen .map-shortcuts button{flex-shrink:0;min-height:44px}.canvas-fullscreen #canvas{order:1;flex:1 1 0%;width:100%;min-height:0;border:0;border-radius:0;margin:0}.canvas-fullscreen #controls{order:2;flex:0 0 auto;margin:0;padding:6px max(12px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:var(--surface);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.canvas-fullscreen #controls>div{display:flex;align-items:center;gap:8px}.canvas-fullscreen #map-fullscreen{background:var(--accent);border-color:var(--accent);color:var(--surface)}.canvas-fullscreen .canvas-navigator{width:130px;right:12px;bottom:12px}.canvas-fullscreen .canvas-navigator svg{max-height:48px}
@media(max-width:640px){#controls>div{gap:3px;align-items:center}#controls button{padding:5px 6px;font-size:11px;min-width:42px}#controls #zoom{font-size:11px;min-width:27px}#controls #map-fullscreen{min-width:48px}.canvas-fullscreen .map-shortcuts{padding-top:max(5px,env(safe-area-inset-top));padding-bottom:5px;min-height:54px}.canvas-fullscreen #controls{padding-left:8px;padding-right:8px}.canvas-fullscreen #controls>div{gap:3px;width:100%;justify-content:space-between}.canvas-fullscreen .canvas-hint{display:none}.canvas-fullscreen .canvas-navigator{width:83px;right:7px;bottom:7px}.canvas-fullscreen .canvas-navigator svg{max-height:29px}}



/* 2026-11-01 窄屏可读性修正：以下选择器原本 9-11px，在手机/平板上提到底线 12px。
   桌面（>900px）保持原有密度不变。来源：web-ui-check 全站筛查（frame 212 处）。 */
@media (max-width: 900px) {
.sidebar-bottom,
.canvas-hint,
footer,
.modal>small,
.eyebrow,
.view-heading p,
.map-shortcuts,
.view-switch button,
.canvas-controls button,
.diagram-census small,
.chief-person>span,
.role-cluster h4 small,
.role-members small,
.node-foot,
.navigator-label,
.navigator-label span,
.map-hud,
.brand small,
.diagram-node .diagram-census small,
.diagram-node .chief-person .chief-label,
.diagram-node .role-members small,
.diagram-node .node-foot,
.sidebar-title small,
.directory-hint,
.directory-people small,
.directory-person,
.directory-sub,
.directory-current>span,
.directory-current>b,
.sidebar-bottom small,
.directory-breadcrumbs button,
.directory-column-head>span,
.directory-column-head>strong,
.directory-column-head>small,
.directory-column .directory-person,
#directory-flyout>footer,
.directory-column .directory-sub,
#controls button,
#controls #zoom { font-size: 12px; }
}
