:root{--ink:#132b48;--muted:#577089;--blue:#006bff;--line:#c8dcef}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden}body{height:100dvh;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,'Noto Sans KR','Apple SD Gothic Neo',sans-serif;color:var(--ink);background:#f8fbff}button,select{font:inherit;color:inherit}button{border:1px solid #b7cdeb;border-radius:7px;background:white;cursor:pointer}button:hover{background:#edf5ff}button:disabled{opacity:.35;cursor:default}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #387ff3;outline-offset:2px}header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 20px 8px;flex-shrink:0}h1{font-size:24px;letter-spacing:-.6px;margin:0}header p{font-size:13px;color:var(--muted);margin:4px 0 0}.mode-button{min-height:39px;padding:7px 12px;white-space:nowrap;font-size:14px}#research-controls{margin:0 16px 6px!important;padding:7px 10px!important}#flow-summary{font-size:11px!important;margin:4px 0 0!important}#navigation{display:flex;align-items:center;gap:9px;padding:2px 17px 6px;flex-shrink:0}#back{min-height:36px;padding:5px 12px}#breadcrumb{font-size:14px;font-weight:650;line-height:1.4}#map-workspace{position:relative;flex:1;min-height:110px;overflow:hidden;border:1px solid #d4e2f0;border-radius:10px;background:#fff;margin:0 16px;touch-action:none}#diagram{display:block;width:100%;height:100%;overflow:hidden;font-family:inherit}#diagram [role=button]{cursor:pointer;outline:none}#diagram text{pointer-events:none;user-select:none}#diagram [role=button]:focus-visible>rect:first-of-type,#diagram [role=button]:hover>rect:first-of-type{stroke:#005fff;stroke-width:4}#diagram .map-selected>rect:first-of-type{stroke:#006bff;stroke-width:5}#diagram .company-match>rect:first-of-type{stroke:#7650c7!important;stroke-width:5!important;stroke-dasharray:9 4}#diagram .flow-match>rect:first-of-type{stroke:#7751b8;stroke-width:4}#diagram .map-linked>rect:first-of-type{stroke:#3189d5;stroke-width:3}#minimap{position:absolute;right:9px;top:9px;width:205px;height:156px;z-index:2;border:1px solid #bcd6f6;border-radius:8px;background:#ffffffed;padding:5px;box-shadow:0 3px 15px #1d478513}#minimap[hidden]{display:none}#minimap h2{font-size:11px;margin:0 0 3px}#mini-svg{display:block;width:100%;height:calc(100% - 18px);pointer-events:none}.camera-window{fill:#096bff12;stroke:#006bff;stroke-width:9}#reading-label{font-size:14px;line-height:1.45;color:#34516c;padding:5px 17px 0;flex-shrink:0}#reading-label:empty{display:none}#map-controls{display:flex;align-items:center;justify-content:center;gap:7px;padding:6px 14px;flex-shrink:0}#map-controls button{min-height:40px;padding:6px 14px;font-size:14px}#connections{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;padding:0 15px 4px;flex-shrink:0}#connections button{padding:7px 10px;min-height:36px;font-size:13px;background:#f5faff;color:#14508b}#connections .conditional{border-style:dashed;color:#ad461e;background:#fff9ef}#region-picker{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;padding:5px 14px 2px;flex-shrink:0}#region-picker button{min-height:37px;padding:6px 11px;font-size:13px}footer{font-size:11px;line-height:1.5;color:#60768e;text-align:center;padding:2px 12px calc(7px + env(safe-area-inset-bottom));flex-shrink:0}#focus-diagram{display:none}.compare-dialog{width:min(1200px,calc(100vw - 28px));height:calc(100dvh - 28px);max-width:none;max-height:none;margin:auto;padding:0;border:1px solid #c6d7e8;border-radius:12px;color:var(--ink);overflow:hidden}.compare-dialog[open]{display:flex;flex-direction:column}.compare-dialog::backdrop{background:#10263e75}.compare-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:13px 16px;flex-shrink:0}.compare-head h2{font-size:21px;margin:0}.compare-head button{min-height:42px;padding:7px 15px}.compare-scroll{overflow:auto;flex:1;min-height:0;padding:0 15px 20px;overscroll-behavior:contain;touch-action:pan-x pan-y}.compare-scroll p{font-size:14px;line-height:1.65}.compare-scroll table{border-collapse:collapse;min-width:1000px;width:100%;font-size:14px}.compare-scroll th,.compare-scroll td{padding:12px;border:1px solid #ccd9e5;text-align:left;vertical-align:top;line-height:1.6}.compare-scroll th{background:#edf4fb}.compare-scroll details{min-width:140px}.compare-scroll summary{cursor:pointer;min-height:42px;font-size:14px}.compare-scroll a{color:#0668be;overflow-wrap:anywhere}.compare-scroll .sig{font-size:23px;font-weight:750}.error{padding:30px;font-size:16px}
@media(max-width:700px){header{padding:9px 10px 5px;gap:7px}h1{font-size:19px}header p{font-size:11px;margin-top:3px}.mode-button{font-size:12px;min-height:36px;padding:5px 8px}#research-controls{margin:0 8px 4px!important;padding:5px 7px!important}.research-selects{gap:4px!important}.research-selects label{font-size:11px!important}.research-selects select{font-size:12px!important;min-height:34px!important}#research-open{font-size:11px!important;min-height:29px!important;padding:3px 5px!important}#flow-summary{display:none}#navigation{padding:1px 8px 4px;gap:7px}#breadcrumb{font-size:13px}#back{min-height:34px;padding:4px 8px;font-size:13px}#map-workspace{margin:0 7px;border-radius:8px}#minimap{width:112px;height:88px;right:5px;top:5px;padding:3px}#minimap h2{font-size:9px;margin:0}#mini-svg{height:calc(100% - 12px)}#reading-label{font-size:14px;padding:5px 9px 0}#map-controls{gap:5px;padding:5px 8px}#map-controls button{min-height:38px;padding:5px 10px;font-size:13px}#connections{gap:4px;padding:0 8px 4px;max-height:106px;overflow-y:auto;overscroll-behavior:contain}#connections button{font-size:12px;padding:5px 8px;min-height:35px}#region-picker{padding:4px 8px 2px;gap:4px;display:grid;grid-template-columns:repeat(4,1fr)}#region-picker button{min-height:35px;padding:4px;font-size:12px}footer{font-size:10px;padding:1px 8px calc(5px + env(safe-area-inset-bottom))}.compare-dialog{width:100vw;height:100dvh;border:0;border-radius:0;margin:0}.compare-head h2{font-size:18px}.compare-head{padding:12px}.compare-scroll{padding:0 12px 20px}body.is-focused #region-picker{display:none}}
@media(max-height:620px){header p{display:none}#research-controls{padding-top:3px!important;padding-bottom:3px!important}footer{display:none}#minimap{width:94px;height:72px}#connections{max-height:74px}#reading-label{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

#diagram [data-link-id]{cursor:pointer;pointer-events:stroke}#diagram path.company-match{stroke:#7650c7!important;stroke-width:4!important}
@media(max-height:500px){#reading-label{display:none}#connections{max-height:37px;flex-wrap:nowrap;justify-content:flex-start;overflow:auto}#connections button{white-space:nowrap}#region-picker{display:none!important}header{padding:5px 10px}#map-controls{padding:3px 8px}#map-controls button{min-height:33px}}

#region-picker[hidden]{display:none}

/* Gesture capture is limited to the map; dialogs keep their own scrolling. */
#diagram{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#minimap{pointer-events:none}
body.is-map-zoomed #diagram{cursor:grab}
#map-workspace.is-gesturing #diagram,#map-workspace.is-gesturing #diagram [role=button],#map-workspace.is-gesturing #diagram [data-link-id]{cursor:grabbing}

#node-context{flex-shrink:0;margin:5px 8px 0;padding:7px 10px;border-left:3px solid #1778d4;background:#eef6ff;max-height:155px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;font-size:14px;line-height:1.5}#node-context[hidden]{display:none}#node-context p{margin:3px 0}#node-context summary{cursor:pointer;min-height:28px}#node-context button{font-size:13px;padding:5px;margin:3px}#node-context .context-kind{font-size:11px;color:#5b718b}@media(min-width:701px){#node-context{margin:6px 16px 0;max-height:160px}}@media(max-height:620px){#node-context{max-height:98px}}

#research-controls>summary{font-size:14px;line-height:1.5;min-height:28px;cursor:pointer;color:#245b91}#research-controls[open]>summary{margin-bottom:6px}

#diagram path.selected-link{stroke-width:5;filter:drop-shadow(0 0 2px #005fff66)}#diagram .map-linked>rect:first-of-type{stroke:#3189d5;stroke-width:4}
