.technology-dialog.modal.wide { width:calc(100vw - 32px); max-width:1600px; height:calc(100dvh - 36px); max-height:1050px; display:flex; flex-direction:column; overflow:hidden; }
.technology-dialog .modal-head { flex:none; padding:15px 22px; }
.technology-dialog .modal-head h2 { font-size:21px; }
.technology-dialog .modal-body { flex:1; min-height:0; padding:0; overflow:hidden; }
.tech-atlas { display:flex; flex-direction:column; height:100%; min-height:0; color:#263e43; }
.tmap-overview { display:flex; gap:20px; align-items:center; padding:11px 22px; background:#e4e8da; border-bottom:1px solid #bac5b2; font-size:11px; flex:none; }
.tmap-overview b { font-size:16px; font-variant-numeric:tabular-nums; margin-right:4px; }
.tmap-overview>small { margin-left:auto; color:#6f7a69; font-size:10px; }
.tmap-toolbar { display:flex; gap:12px; align-items:flex-end; padding:12px 20px; background:#f4f2e6; border-bottom:1px solid #b9c5b4; flex:none; }
.tmap-toolbar label { display:flex; flex-direction:column; gap:5px; min-width:0; font-size:10px; color:#677766; }
.tmap-toolbar select,.tmap-toolbar input { border:1px solid #b0bba8; background:#fffcf0; color:#344b46; font:inherit; font-size:12px; padding:8px 10px; border-radius:2px; height:35px; max-width:100%; }
.tmap-toolbar select { cursor:pointer; }
.tmap-search-label { flex:1; }
.tmap-goal-label { min-width:158px!important; }
.tmap-layout { display:grid; grid-template-columns:minmax(0,1fr) 294px; flex:1; min-height:0; }
.tmap-exploration { display:flex; flex-direction:column; min-width:0; min-height:0; background:#142e3b; }
.tmap-legend { display:flex; align-items:center; flex-wrap:wrap; gap:14px; flex:none; padding:9px 15px; font-size:10px; color:#a9b8b7; background:#1b3441; border-bottom:1px solid #47606b; }
.tmap-legend .complete { color:#a9c49d; }.tmap-legend .active { color:#e0bf7d; }.tmap-legend .queued { color:#95b2ca; }.tmap-legend .ready { color:#efe4bd; }
.tmap-legend>span:last-child { margin-left:auto; font-size:10px; opacity:.75; }
.tmap-pane { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; scrollbar-color:#6b858b #1b3441; background-color:#122c3a; background-image:radial-gradient(#80979c28 .7px,transparent .7px); background-size:18px 18px; cursor:grab; }
.tmap-pane.dragging,.tmap-pane.dragging * { cursor:grabbing!important; user-select:none; }
.tmap-pane:focus-visible { outline:2px solid #dbc083; outline-offset:-3px; }
.tmap-scaled { position:relative; }
.tmap-chart { position:absolute; left:0; top:0; transform-origin:0 0; isolation:isolate; }
.tmap-era-strip { position:sticky; top:0; height:76px; z-index:4; }
.tmap-era { position:absolute; top:0; height:76px; display:flex; flex-direction:column; align-items:flex-start; gap:5px; padding:10px 16px; border:0; border-right:1px solid #526a6e; border-bottom:2px solid #718779; background:#314e56; color:#ecdfbd; text-align:left; font:inherit; cursor:pointer; }
.tmap-era strong { font-size:17px; letter-spacing:.5px; font-weight:500; }.tmap-era small { font-size:10px; letter-spacing:1.2px; color:#b7c4b9; }.tmap-era small b { margin-left:12px; letter-spacing:0; font-weight:400; }.tmap-era>span { font-size:10px; color:#b7c4b9; }
.tmap-era.current { border-bottom-color:#dabb72; background:#38524f; }.tmap-era.current small b { color:#f0cf88; }.tmap-era.future { background:#203944; color:#9cacaa; border-bottom-color:#47626a; }.tmap-era.future small,.tmap-era.future>span { color:#7f969c; }
.tmap-phase-bg { position:absolute; top:0; border-right:1px solid #78989428; background:#9dbcb005; z-index:-1; pointer-events:none; }.tmap-phase-bg.future { background:repeating-linear-gradient(120deg,#7697a304,#7697a304 1px,transparent 1px,transparent 11px); }
.tmap-lane { position:absolute; left:0; border-top:1px solid #809d9b27; pointer-events:none; z-index:0; }
.tmap-lane>span { display:flex; flex-direction:column; align-items:flex-start; gap:7px; position:absolute; top:26px; left:16px; width:104px; color:var(--lane-color); font-size:12px; }
.tmap-lane .icon { width:19px; height:19px; }.tmap-lane strong { font-weight:500; }.tmap-lane small { font-size:10px; color:#829da1; }
.tmap-edges { position:absolute; inset:0; pointer-events:none; z-index:1; overflow:visible; }
.tmap-edges>path { stroke:#5a7580; stroke-width:1.4; fill:none; opacity:.7; }.tmap-edges marker path { fill:#80958d; }.tmap-edges>path.complete { stroke:#88a282; }.tmap-edges>path.route { stroke:#d0af68; stroke-width:2; opacity:1; }.tmap-edges>path.highlight { stroke:#edcc85; stroke-width:2.5; opacity:1; }
.tmap-node { position:absolute; display:flex; align-items:center; gap:11px; width:214px; height:92px; padding:10px 11px; border:1px solid #c4c6ac; border-left:3px solid var(--lane-color); border-radius:3px; background:#ececdb; color:#314b4c; text-align:left; cursor:pointer; box-shadow:0 4px 9px #0003; font:inherit; z-index:2; overflow:hidden; transition:box-shadow .13s,border-color .13s,background .13s; }
.tmap-medallion { flex:none; display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; border:1px solid var(--lane-color); background:#1c3643; color:var(--lane-color); box-shadow:inset 0 0 0 3px #eef0dd0c; }
.tmap-medallion>.icon { width:23px; height:23px; }.tmap-node-copy { display:flex; flex-direction:column; gap:4px; min-width:0; flex:1; }.tmap-node-copy small { display:flex; justify-content:space-between; font-size:10px; color:#778374; letter-spacing:.5px; }.tmap-node-copy small b { font-weight:400; letter-spacing:0; }.tmap-node-copy strong { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:13px; line-height:1.4; font-weight:600; word-break:keep-all; }.tmap-node-copy em { font-size:10px; color:#667763; font-style:normal; white-space:nowrap; }
.tmap-node.complete { background:#344e49; color:#d1dfc1; border-color:#788f6d; }.tmap-node.complete .tmap-node-copy small,.tmap-node.complete .tmap-node-copy em { color:#a8bea1; }
.tmap-node.active { background:#ebdfb7; border-color:#e0bf79; }.tmap-node.active .tmap-medallion { color:#e0bf79; border-color:#c8a664; }.tmap-node.active .tmap-node-copy em { color:#8a6827; }
.tmap-node.queued { border:1px dashed #9ebdcd; border-left:3px solid #9ebdcd; background:#dbe6e3; }.tmap-node.paused,.tmap-node.blocked { background:#bdc9c4; border-color:#829994; color:#435b5b; }.tmap-node.paused .tmap-node-copy em { color:#916836; }
.tmap-node.on-route { box-shadow:0 0 0 1px #ceaa62,0 3px 8px #0004; }.tmap-node.unrelated { opacity:1; }.tmap-node.unrelated .tmap-node-copy,.tmap-node.unrelated .tmap-medallion { opacity:.75; }.tmap-node:hover { opacity:1; border-color:#f5db9f; box-shadow:0 0 0 2px #e0c88d55,0 4px 10px #0005; }.tmap-node.selected { opacity:1; outline:2px solid #f0d68d; outline-offset:3px; z-index:3; }.tmap-node:focus-visible { outline:3px solid #b2d4e5; outline-offset:4px; }.tmap-progress { position:absolute; left:0; bottom:0; height:3px; background:#bc923f; }
.tmap-fog { position:absolute; top:138px; display:flex; align-items:center; flex-direction:column; gap:12px; text-align:center; color:#7a9398; font-size:11px; pointer-events:none; }.tmap-fog>span { padding:15px; border:1px solid #73929930; border-radius:50%; }.tmap-fog .icon { width:28px; height:28px; opacity:.5; }.tmap-fog>strong { font-size:12px; font-weight:400; }.tmap-fog small { font-size:10px; line-height:1.7; white-space:pre-line; opacity:.8; }
.tmap-navigator { display:flex; justify-content:space-between; gap:10px; padding:9px 12px; border-top:1px solid #516970; background:#1e3743; flex:none; }.tmap-navigator>div { display:flex; align-items:center; gap:5px; }.tmap-navigator .btn { min-height:29px; padding:5px 9px; color:#d3dccb; background:#314b54; border:1px solid #5d7476; font-size:10px; }.tmap-zoom-value { width:43px; color:#c1d0c7; text-align:center; font-size:10px; font-variant-numeric:tabular-nums; }
.tmap-inspector { min-height:0; overflow:auto; padding:20px; border-left:1px solid #aebba5; background:#eeedde; scrollbar-width:thin; scrollbar-color:#a8b39e #e2e5d8; }
.tmap-inspector-heading { position:relative; padding-top:2px; }.tmap-inspector-heading .tmap-medallion { width:52px; height:52px; margin-bottom:15px; }.tmap-inspector-heading .tmap-medallion>.icon { width:28px; height:28px; }.tmap-inspector-heading>small { display:block; color:#7b866c; font-size:10px; letter-spacing:.8px; }.tmap-inspector h3 { font-size:21px; line-height:1.5; font-weight:500; margin:6px 0 12px; color:#30463b; word-break:keep-all; }
.tmap-status { display:inline-block; color:#527055; border:1px solid #a5b79b; padding:4px 8px; font-size:10px; }.tmap-status.active { color:#8a652b; border-color:#bfa471; }.tmap-status.queued { color:#4b7481; border-color:#91b1ba; }
.tmap-description { margin:15px 0; font-size:11px; line-height:1.8; color:#697561; }.tmap-facts { margin:15px 0; padding:0; border-top:1px solid #c5cbb8; }.tmap-facts>div { display:flex; justify-content:space-between; gap:7px; padding:9px 0; border-bottom:1px solid #d3d7c5; font-size:10px; }.tmap-facts dt { color:#7a836c; }.tmap-facts dd { margin:0; color:#3c5140; text-align:right; font-variant-numeric:tabular-nums; }
.tmap-detail-section { padding-top:15px; }.tmap-detail-section h4 { margin:0 0 8px; font-size:11px; color:#4d634d; font-weight:600; }.tmap-detail-section h4 small { font-weight:400; font-size:10px; margin-left:7px; color:#8b927c; }.tmap-detail-section p { color:#748069; font-size:11px; line-height:1.8; margin:6px 0; }.tmap-requirement { display:flex; gap:6px; align-items:center; width:100%; padding:7px 0; background:transparent; border:0; border-bottom:1px solid #d5dac8; text-align:left; color:#556c4e; font:inherit; font-size:10px; cursor:pointer; }.tmap-requirement b { margin-left:auto; font-weight:400; }.tmap-requirement:hover { color:#263e27; background:#dce2d0; }.tmap-detail-section .tmap-hidden { color:#929782; font-size:10px; }
.tmap-blocker { padding:11px; border-left:2px solid #b49a67; background:#e4dfc6; color:#7c714f; font-size:10px; line-height:1.7; margin:16px 0 0; }.tmap-current { display:flex; flex-direction:column; gap:5px; padding:10px; background:#e4e2cd; color:#6b754f; font-size:11px; }.tmap-current span { font-size:10px; }
.tmap-inspector-actions { display:flex; flex-direction:column; gap:7px; padding-top:17px; }.tmap-inspector-actions .btn { font-size:11px; }.tmap-footnote { font-size:10px; color:#8a927c; line-height:1.8; margin-top:11px; }.tmap-no-selection { color:#77866e; font-size:12px; line-height:1.8; }.tmap-no-selection>.icon { width:40px; height:40px; margin-bottom:15px; }
.tmap-route-strip { display:flex; align-items:center; gap:15px; min-height:60px; padding:10px 20px; border-top:1px solid #a4b298; background:#dce3ce; flex:none; font-size:11px; color:#647653; }.tmap-route-strip>div { display:flex; align-items:center; flex:1; flex-wrap:wrap; gap:5px 12px; }.tmap-route-strip small { font-size:10px; color:#7b866d; }.tmap-route-strip strong { color:#405837; font-size:13px; font-weight:600; }.tmap-route-strip span { font-size:10px; }.tmap-route-strip .btn { font-size:10px; }
.technology-map-portal { display:flex; align-items:center; gap:18px; padding:20px 22px; margin:18px 0; background:#233f49; color:#ddd7bb; border:1px solid #647e74; position:relative; overflow:hidden; }.technology-map-portal>svg { flex:none; width:100px; height:62px; color:#c1b683; }.technology-map-portal>div { flex:1; }.technology-map-portal strong { display:block; font-size:17px; font-weight:500; }.technology-map-portal p { font-size:11px; line-height:1.7; color:#9fb4ad; margin:7px 0 0; }.technology-map-portal .btn { border:1px solid #ccb977; background:#d6c68e; color:#243d3c; white-space:nowrap; }
@media(max-width:1000px) { .tmap-layout { grid-template-columns:minmax(0,1fr) 256px; }.tmap-toolbar { gap:8px; padding-inline:14px; }.tmap-goal-label { min-width:145px!important; }.tmap-inspector { padding:16px; }.tmap-inspector h3 { font-size:18px; }.tmap-legend>span:last-child { display:none; }.tmap-overview { gap:12px; padding-inline:14px; } }
@media(max-width:700px) { .technology-dialog.modal.wide { width:calc(100vw - 12px); height:calc(100dvh - 16px); max-height:none; }.technology-dialog .modal-head { padding:10px 14px; }.tmap-overview { padding:9px 12px; gap:11px; font-size:10px; }.tmap-overview b { font-size:12px; }.tmap-overview>small { display:none; }.tmap-toolbar { display:grid; grid-template-columns:1fr 1fr; gap:7px; padding:9px 12px; }.tmap-toolbar select,.tmap-toolbar input { width:100%; font-size:11px; height:31px; padding:6px; }.tmap-layout { grid-template-columns:1fr; grid-template-rows:minmax(170px,1fr) minmax(130px,.65fr); }.tmap-inspector { border-left:0; border-top:1px solid #aebba5; padding:13px 16px; }.tmap-inspector-heading .tmap-medallion { float:left; width:42px; height:42px; margin:0 12px 6px 0; }.tmap-inspector h3 { font-size:17px; margin:3px 0 7px; }.tmap-status { font-size:10px; padding:3px 6px; }.tmap-description { clear:both; margin:10px 0; }.tmap-route-strip { padding:8px 12px; gap:8px; min-height:48px; }.tmap-route-strip>div { gap:2px 7px; }.tmap-route-strip>div>span { display:none; }.tmap-route-strip .btn { padding:7px; }.tmap-navigator { padding:6px 9px; }.tmap-navigator .btn { padding:4px 7px; }.technology-map-portal { flex-wrap:wrap; gap:12px; padding:16px; }.technology-map-portal>svg { width:70px; }.technology-map-portal .btn { width:100%; }.tmap-legend { padding:7px 10px; gap:10px; font-size:10px; } }
@media(prefers-reduced-motion:reduce) { .tmap-node { transition:none; } }
.tmap-inspector { display:flex; flex-direction:column; overflow:hidden; padding:0; }
.tmap-inspector-scroll { flex:1; min-height:0; overflow:auto; padding:20px; scrollbar-width:thin; }
.tmap-inspector-actions { flex:none; padding:12px 18px; border-top:1px solid #bac5ad; background:#e5e8d7; }
.tmap-inspector-actions .tmap-footnote { margin:2px 0 0; font-size:10px; }
.tmap-no-selection { padding:20px; }
.tmap-eras-viewport { flex:none; height:76px; position:relative; overflow:hidden; background:#243f4b; border-bottom:1px solid #5f7778; }
.tmap-era-track { position:relative; height:76px; will-change:transform; }
.tmap-era strong { font-size:15px; }.tmap-era small { font-size:10px; }.tmap-era>span { font-size:10px; }
.tmap-fog { top:90px; }
@media(max-width:1000px) { .tmap-inspector-scroll { padding:16px; } }
@media(max-width:700px) { .tmap-layout { grid-template-rows:minmax(170px,1fr) minmax(180px,.7fr); }.tmap-inspector { padding:0; }.tmap-inspector-scroll { padding:12px 16px; }.tmap-inspector-actions { display:grid; grid-template-columns:1fr 1fr; padding:7px 12px; }.tmap-inspector-actions .tmap-footnote { grid-column:1/-1; font-size:10px; }.tmap-inspector-actions .btn { min-height:30px; padding:6px; font-size:10px; } }

.research-atlas-section { margin-bottom:24px; }.research-atlas-inline { height:720px; min-height:590px; border:1px solid #7e9283; box-shadow:0 6px 20px #183c3520; }.research-atlas-inline .tmap-layout { grid-template-columns:minmax(0,1fr) 294px; }.research-atlas-inline .tmap-overview { flex-wrap:wrap; gap:9px 18px; }.research-atlas-inline .tmap-toolbar { flex-wrap:wrap; }.research-atlas-inline .tmap-toolbar label { flex:1; min-width:110px; }.research-atlas-inline .tmap-goal-label { flex:1.25; }.research-list { margin:24px 0; border:1px solid var(--line,#b6c3ae); padding:0 18px; background:#e9ecde; }.research-list>summary { cursor:pointer; padding:16px 0; font-size:13px; font-weight:600; color:#3a5645; }.research-list .research-projects { padding-bottom:20px; }.research-atlas-inline .tmap-inspector-actions .btn:first-child { font-weight:600; }
@media(max-width:1100px) { .research-atlas-inline { height:780px; }.research-atlas-inline .tmap-layout { grid-template-columns:minmax(0,1fr) 260px; } }
@media(max-width:700px) { .research-atlas-inline { height:900px; }.research-atlas-inline .tmap-layout { grid-template-columns:1fr; grid-template-rows:minmax(260px,1fr) minmax(280px,.9fr); }.research-atlas-inline .tmap-toolbar { display:grid; }.research-atlas-inline .tmap-toolbar label { min-width:0; }.research-atlas-inline .tmap-route-strip { flex-wrap:wrap; }.research-list { padding:0 12px; } }
