/* Original client frames and existing Decima/palette; tree positions are adapted. */
.research-screen #panel{width:min(1440px,calc(100vw - 28px));max-width:none}
.research-heading,.research-view-switch,.research-progress,.research-tools,.research-pan,.research-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.research-heading{justify-content:space-between;margin-bottom:8px}
.research-heading .back-link{margin:0}.research-progress{min-height:48px;justify-content:space-between;padding:6px 12px;border:1px solid var(--line);background:var(--bg)}
.research-tools{margin:10px 0 6px}.research-tools label{display:flex;align-items:center;gap:8px}.research-tools input{width:230px;max-width:40vw}
.research-controls>summary{display:list-item;cursor:pointer;min-height:44px;align-content:center;color:var(--cyan)}.research-controls>summary:focus-visible{outline:2px solid var(--cyan)}
.research-filters{gap:5px;margin-bottom:8px}.research-filters button{min-height:44px;padding:5px 12px}.research-view-switch button[aria-pressed=true],.research-filters button[aria-pressed=true]{border-color:var(--cyan);color:var(--cyan);box-shadow:inset 0 -2px var(--cyan)}
.research-pan{margin-left:auto;gap:4px}.research-pan button{min-width:44px;min-height:44px;font-size:22px}
.research-viewport{overflow:auto;max-width:100%;height:clamp(250px,57vh,510px);border:1px solid var(--line);background:radial-gradient(ellipse at 15% 35%,#103453 0,var(--bg) 65%);overscroll-behavior:contain;touch-action:pan-x pan-y;scrollbar-gutter:stable}
.research-viewport:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.research-canvas{height:480px;position:relative;isolation:isolate}
.research-canvas svg{position:absolute;left:0;top:0;overflow:visible;pointer-events:none;z-index:-1}
.research-canvas path{fill:none;stroke:var(--line);stroke-width:5;stroke-linejoin:round}.research-canvas path.complete{stroke:#75cb66}.research-canvas path.provisional{stroke-dasharray:8 6;stroke-width:2}
.research-card{position:absolute;width:174px;height:142px;padding:4px 13px 10px;border:0;background:transparent linear-gradient(145deg,#1a3d57,#07182a 75%) center/100% 100% no-repeat;box-shadow:none;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;overflow:hidden;isolation:isolate;transition:filter .12s,opacity .12s}
.research-card:hover:not(:disabled){filter:brightness(1.25);border:0}.research-card:focus-visible{outline:3px solid var(--cyan);outline-offset:-3px}.research-card:active{filter:brightness(1.5)}
.research-card.locked{background-image:linear-gradient(145deg,#1a3d57,#07182a 75%);color:#bdced9}.research-card.perfect{background-image:linear-gradient(145deg,#1a3d57,#07182a 75%)}.research-card.running{outline:1px solid var(--cyan);outline-offset:-6px}
.research-art{position:absolute;inset:17px 13px 41px;z-index:-1;display:flex;justify-content:center;align-items:center;opacity:.85}.research-art img{width:100%;height:100%;object-fit:contain}.research-art .unit-silhouette{font-size:40px;margin:0}
.research-card.locked .research-art{filter:grayscale(1);opacity:.45}
.research-card-inner{position:absolute;inset:14px 11px 11px;z-index:-2;pointer-events:none;background:var(--bg);clip-path:polygon(12px 0,100% 0,100% calc(100% - 16px),calc(100% - 16px) 100%,0 100%,0 12px)}
.research-card .research-card-inner>.source-icon{width:100%;height:100%;object-fit:fill;margin:0}
.research-card .research-art{inset:14px 11px 11px}
.research-card .research-art>.research-source-image{width:100%;height:100%;object-fit:contain;margin:0}
.research-card .research-art>.source-unit-art{max-height:82px;align-self:flex-start}
.research-detail-art>.research-source-image{width:auto;max-width:100%;height:148px;max-height:100%;object-fit:contain;margin:0}
.research-card .research-level{top:2px;right:5px;width:48px;height:48px;min-width:0;padding:9px 2px 2px;border:0;border-radius:0;background:transparent;isolation:isolate}
.research-card .research-level>.source-icon{position:absolute;inset:0;width:48px;height:48px;object-fit:contain;margin:0;z-index:-1}
.research-card.locked .research-level{padding:0}
.research-card .research-status>.source-icon{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;margin:0;z-index:-1}
.research-card .research-status{isolation:isolate}
.research-card.perfect .research-status{left:34px;right:20px;top:14px;background:none;line-height:16px;min-height:16px}
.research-card.running .research-status{left:23px;right:0;top:2px;min-height:32px;display:grid;place-items:center;background:none}
.research-art-missing{font-size:11px;line-height:1.25;color:#b7cbdc;text-align:center;font-weight:normal;padding:5px;opacity:.8}
.research-detail-art{align-items:center}.research-detail-art .research-art-missing{font-size:14px}
.research-status{position:absolute;top:5px;left:14px;right:14px;min-height:18px;font-size:10px;font-weight:bold;color:var(--cyan);text-shadow:0 1px 2px #000;background:linear-gradient(90deg,transparent,var(--bg),transparent)}
.research-card.perfect .research-status{color:var(--gold)}.research-card.locked .research-status{color:#bdced9}
.research-level{position:absolute;right:8px;top:22px;display:flex;flex-direction:column;align-items:center;min-width:35px;padding:2px;background:var(--bg);border:1px solid var(--line);border-radius:50%;line-height:1.1}.research-level b{font-size:17px}.research-level small{font-size:11px;color:inherit}
.research-card-name{display:flex;align-items:center;justify-content:center;min-height:37px;max-width:100%;font-size:14px;line-height:1.05;text-align:center;text-wrap:balance;text-shadow:0 1px 3px #000}
.research-card.research-filtered{opacity:.22}.research-card.research-filtered:focus-visible,.research-card.research-filtered:hover{opacity:1}
.research-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(174px,1fr));gap:10px}.research-list .research-card{position:relative;width:100%;max-width:220px;justify-self:center}
.research-caption,.research-source-note{font-size:12px;color:#b7cbdc;line-height:1.4;margin:9px 0}.research-source-note summary{min-height:44px;display:list-item;align-content:center;cursor:pointer}.research-source-note summary:focus-visible{outline:2px solid var(--cyan)}
.research-detail{display:grid;grid-template-columns:minmax(200px,1fr) minmax(250px,1.1fr);gap:28px}.research-detail section{min-width:0}.research-detail-art{height:160px;display:flex;justify-content:center}.research-detail-art img{width:100%;height:100%;object-fit:contain}.research-detail .client-green{display:block;width:100%;margin:12px 0;min-height:48px}.research-detail>section>button{margin-bottom:8px}
.research-requirement{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:6px 0}.research-requirement.met>span:before{content:'✓ ';color:#75cb66}.research-requirement.missing>span:before{content:'🔒 ';font-size:12px}
.research-following{margin-top:18px}.research-following .research-requirement>span{min-width:0;overflow-wrap:anywhere}.research-following small{display:block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.4}.research-following button{flex:none;min-width:74px;min-height:44px}
.research-levels{width:100%;border-collapse:collapse;margin:10px 0}.research-levels td,.research-levels th{padding:8px;text-align:left;border-bottom:1px solid var(--line)}.research-levels tr.current{color:var(--gold)}.research-detail details summary{min-height:44px;cursor:pointer;align-content:center}.research-detail details summary:focus-visible{outline:2px solid var(--cyan)}
@media(max-height:500px) and (orientation:landscape){.research-screen #panel{max-height:calc(100dvh - 12px)}.research-screen .panel-head{min-height:44px;padding:8px 12px}.research-screen .panel-head h1{font-size:16px;margin:0}.research-screen #panelBody{padding:8px 12px}.research-heading{margin-bottom:4px}.research-heading button,.research-progress button{padding:5px 10px;min-height:44px}.research-progress{min-height:28px;padding:2px 8px}.research-viewport{height:200px}.research-controls>summary{display:list-item}.research-detail-art{height:110px}.research-detail{gap:16px}.research-tools input{height:44px}}
@media(max-width:700px){.research-detail{grid-template-columns:1fr}.research-view-switch{gap:3px}.research-view-switch button{padding:6px;font-size:11px}.research-tools label{flex-wrap:wrap}.research-tools input{max-width:55vw;width:200px}.research-pan{margin-left:0}}
@media(prefers-reduced-motion:reduce){.research-card{transition:none}}
