:root{
  --bg:#01060D;--bg2:#020B14;--panel:#04121E;--panel2:#061826;--panel3:#082033;
  --line:#0E2C45;--line2:#16466B;--text:#F4F8FC;--muted:#A7BED2;--soft:#66859E;
  --blue:#0A74FF;--cyan:#38B6FF;--green:#19D6A2;--yellow:#FFDB13;--orange:#FF7D45;--red:#FF714A;--purple:#8b5cf6;
  --shadow:0 20px 55px rgba(0,0,0,.35);--radius:12px;
  --left:310px;--right:390px;--gap:16px;--pad:12px;--top:68px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}
body{overflow:hidden;background:
  radial-gradient(1000px 600px at 50% -180px,rgba(10,116,255,.05),transparent 65%),
  #01060D}
button,input,textarea,select{font:inherit}button{cursor:pointer}
.shell{height:100vh;display:grid;grid-template-rows:var(--top) 1fr;min-width:1100px}
.topbar{display:flex;align-items:center;gap:26px;padding:0 17px;border-bottom:1px solid rgba(34,72,101,.8);background:rgba(4,17,29,.96);backdrop-filter:blur(18px);z-index:50;box-shadow:0 8px 30px rgba(0,0,0,.12)}
.brand{display:flex;align-items:center;gap:11px;min-width:250px}.logo{width:40px;height:40px;border-radius:13px;background:linear-gradient(145deg,#2da3ff,#1258e8 72%);display:grid;place-items:center;font-weight:800;font-size:16px;box-shadow:0 0 0 1px rgba(255,255,255,.18) inset,0 10px 24px rgba(18,101,232,.28);position:relative}.logo:after{content:'◇';font-size:21px;color:#d7f3ff;transform:rotate(45deg)}
.brand strong{display:block;font-size:18px;letter-spacing:-.02em}.brand small{display:block;color:#8da6bb;font-size:11px;margin-top:2px}
.nav{height:100%;display:flex;align-items:center;gap:4px}.nav button{height:100%;padding:0 17px;color:#a1b7cb;background:transparent;border:0;border-bottom:2px solid transparent;font-size:11px}.nav button.active{color:#79c4ff;border-bottom-color:#2b94ff;background:linear-gradient(180deg,rgba(28,121,255,.12),transparent)}
.spacer{flex:1}.search{height:38px;width:298px;border:1px solid var(--line);border-radius:9px;background:#071522;color:#7892aa;display:flex;align-items:center;padding:0 12px;font-size:10px}.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(145deg,#2688ff,#105de0);display:grid;place-items:center;font-size:11px;font-weight:700;box-shadow:0 8px 24px rgba(15,97,221,.3)}
.workspace{min-height:0;display:grid;grid-template-columns:var(--left) minmax(0,1fr) var(--right);gap:var(--gap);padding:14px var(--pad) 14px;overflow:hidden}
.col{min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#183a57 transparent}.col::-webkit-scrollbar{width:7px}.col::-webkit-scrollbar-thumb{background:#183a57;border-radius:99px}
.card{background:linear-gradient(180deg,rgba(8,25,40,.97),rgba(5,17,28,.97));border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);position:relative;overflow:hidden}.card:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(80,180,255,.18),transparent);pointer-events:none}
.left{display:flex;flex-direction:column;gap:12px}.left .card{padding:14px}.section-title{font-size:15px;font-weight:750;letter-spacing:-.018em}.section-sub{font-size:10px;color:var(--muted);line-height:1.55;margin-top:5px}
.mode-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;padding:3px;border:1px solid var(--line);background:#0a1b2b;border-radius:9px;margin:14px 0 13px}.mode-tabs button{border:0;background:transparent;color:#92a9bd;font-size:8.5px;padding:7px 2px;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mode-tabs button.active{color:white;background:#0d2a47;box-shadow:inset 0 0 0 1px #2b85e9,0 4px 16px rgba(9,92,185,.18)}
.field{margin-top:10px}.label{display:flex;align-items:center;justify-content:space-between;font-size:9.5px;font-weight:650;margin-bottom:6px}.label .hint{font:8px 'IBM Plex Mono',monospace;color:#6f8aa0}.input,textarea,select{width:100%;border:1px solid var(--line);background:#051522;color:#e7f2fa;border-radius:8px;outline:0;padding:9px 10px;font:9.5px/1.5 'IBM Plex Mono',monospace;transition:.15s}textarea{resize:vertical;min-height:100px}.input:focus,textarea:focus,select:focus{border-color:#2a87de;box-shadow:0 0 0 3px rgba(35,127,212,.09)}
.inline2{display:grid;grid-template-columns:1fr 1fr;gap:7px}.mut-row{display:grid;grid-template-columns:1fr 84px;gap:7px}.mut-row button,.minor-btn{border:1px solid var(--line);background:#0a1d2e;color:#c9d8e4;border-radius:8px;padding:8px 9px;font-size:9px}.mut-row button:hover,.minor-btn:hover{border-color:#2a6292;background:#0d253a}
.lookup-result{display:none;margin-top:8px;border:1px solid #20537d;background:#082033;border-radius:9px;padding:9px}.lookup-result.show{display:block}.lookup-result b{font-size:10px}.lookup-result span{font-size:8px;color:#89a4b8}.lookup-result p{font-size:8px;line-height:1.5;color:#a9bdcd;margin:6px 0 0}
.engine{padding:10px 11px;border:1px solid #24557d;background:linear-gradient(180deg,#0b2740,#091d30);border-radius:9px;display:flex;justify-content:space-between;align-items:center;margin-top:11px}.engine strong{font-size:10px}.engine small{display:block;color:#66b7ff;font:8px 'IBM Plex Mono',monospace;margin-top:2px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px rgba(47,227,165,.6);margin-right:6px}
.pred-type{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}.pred-type button{border:1px solid var(--line);background:#071725;color:#9db1c3;border-radius:8px;padding:8px 4px;font-size:8.5px}.pred-type button.active{color:#fff;border-color:#2e86da;background:#0b2d4e}
.advanced{margin-top:9px;border-top:1px solid rgba(22,52,79,.75);padding-top:9px}.advanced summary{cursor:pointer;color:#91a9bc;font-size:9px}.complex-grid{display:none;margin-top:9px}.complex-grid.show{display:block}.complex-row{display:grid;grid-template-columns:62px 1fr 34px;gap:6px;margin-bottom:7px;align-items:start}.complex-row select,.complex-row textarea{min-height:42px;padding:7px;font-size:8px}.complex-row button{height:34px;border:1px solid var(--line);background:#0a1b29;color:#9ab1c3;border-radius:7px}
.primary{width:100%;border:0;border-radius:9px;padding:12px 10px;color:#fff;font-size:11px;font-weight:750;background:linear-gradient(180deg,#238dff,#1268ef);box-shadow:0 8px 22px rgba(18,104,239,.28);margin-top:12px}.primary:hover{filter:brightness(1.08)}.primary:disabled{opacity:.5;cursor:not-allowed}.run-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px;color:#69859c;font-size:8px}.run-foot .live{color:#5be5b5}.cost{color:#6bbcff}
.recent{padding:12px!important}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.section-head h3{margin:0;font-size:10px}.section-head button,.section-head a{border:0;background:transparent;color:#49aaff;font-size:8px;text-decoration:none}.recent-list{display:flex;flex-direction:column}.recent-item{display:grid;grid-template-columns:38px 1fr auto;gap:9px;align-items:center;padding:8px 0;border-top:1px solid rgba(22,52,79,.72)}.recent-item:first-child{border-top:0}.thumb{width:38px;height:38px;border-radius:8px;border:1px solid #1f4663;background:radial-gradient(circle at 50% 45%,#32c2ff 0,#1564ff 24%,#11243b 60%,#06111c 100%)}.recent-main b{display:block;font-size:9px}.recent-main span{display:block;color:#7e96aa;font-size:7.5px;margin-top:3px}.pill{border-radius:999px;padding:4px 7px;font-size:7.5px;background:#063b31;color:#5de2b5;border:1px solid #08684f}.pill.dim{background:#0d2030;color:#9ab0c2;border-color:#173c58}
.center{min-width:0;min-height:0;display:grid;grid-template-rows:auto 40px minmax(390px,1fr) 196px;gap:10px}.result-head{padding:3px 2px;display:flex;align-items:flex-start;gap:8px}.result-head h1{font-size:18px;margin:0;letter-spacing:-.03em}.result-meta{font-size:9px;color:#96aabd;margin-top:5px}.status{padding:5px 8px;border-radius:999px;border:1px solid #147a60;background:#06382e;color:#55e7b3;font-size:8px;font-weight:700}.status.ref{border-color:#2d5f8f;background:#0a2541;color:#80bfff}.head-actions{margin-left:auto;display:flex;gap:6px}.ghost{border:1px solid var(--line);background:#071725;color:#d7e4ee;border-radius:8px;padding:8px 10px;font-size:8px}.ghost:hover{border-color:#2b6292}
.tabs{display:flex;height:40px;border:1px solid var(--line);border-radius:9px;background:#061521;overflow:hidden}.tabs button{flex:1;border:0;border-bottom:2px solid transparent;background:transparent;color:#91a9bb;font-size:8.8px}.tabs button.active{color:#fff;border-bottom-color:#1c8cff;background:linear-gradient(180deg,rgba(23,125,255,.16),transparent)}
.viewer{position:relative;min-height:0}.viewer-title{position:absolute;left:14px;top:13px;z-index:9;font-size:9.5px;font-weight:700}.viewer-sub{position:absolute;left:14px;top:31px;z-index:9;color:#718aa0;font-size:7.8px}.viewer-tools{position:absolute;top:12px;right:12px;z-index:9;display:flex;gap:5px}.viewer-tools button{border:1px solid var(--line);background:rgba(7,23,37,.9);color:#c4d3df;border-radius:7px;padding:7px 9px;font-size:7.8px}.viewer-tools button.active{border-color:#1b85f1;background:#0c2f53;color:#fff}.legend{position:absolute;right:14px;top:54px;z-index:9;width:133px;border:1px solid var(--line);border-radius:8px;padding:9px;background:rgba(5,18,30,.9)}.legend b{display:block;font-size:8px;margin-bottom:7px}.leg{display:flex;align-items:center;gap:6px;color:#9db1c1;font-size:7px;margin:5px 0}.sw{width:10px;height:10px;border-radius:2px}.viewer-actions{position:absolute;right:13px;bottom:12px;z-index:9;display:flex;gap:6px}.viewer-actions button{border:1px solid var(--line);background:rgba(6,20,32,.9);color:#d5e1e9;border-radius:7px;padding:7px 9px;font-size:7.5px}.viewer-source{position:absolute;left:14px;bottom:13px;z-index:9;color:#668097;font-size:7.5px}.axis{position:absolute;left:18px;bottom:38px;z-index:9;color:#7c94aa;font:7px 'IBM Plex Mono',monospace}.empty{position:absolute;inset:0;display:grid;place-items:center;z-index:8;pointer-events:none}.empty div{text-align:center;color:#7290a8}.empty b{display:block;color:#eaf5fc;font-size:13px;margin-bottom:5px}.empty span{font-size:8px}
#molviewer{position:absolute;inset:0;background:radial-gradient(circle at 52% 48%,#082035 0,#040b12 65%,#02070c 100%)}
.bottom{display:grid;grid-template-columns:1.18fr .88fr 1fr;gap:10px;min-height:0}.mini-card{padding:11px}.mini-card h3{font-size:9px;margin:0}.confidence-strip{height:31px;border-radius:5px;border:1px solid var(--line);overflow:hidden;display:flex;background:#0a1724}.seg{height:100%}.seg.vh{background:#0862ff}.seg.h{background:#2cd3ed}.seg.l{background:#f2ce45}.seg.vl{background:#ff7240}.legend-row{display:flex;justify-content:space-between;color:#7f96a9;font-size:7px;margin-top:7px}.micro-note{color:#718aa0;font-size:7.3px;line-height:1.5;margin-top:9px}
#paeCanvas{display:none;width:100%;height:130px;border:1px solid var(--line);border-radius:5px;image-rendering:pixelated}.pae-empty{height:132px;display:grid;place-items:center;text-align:center;color:#6e859a;font-size:7.5px;line-height:1.5;border:1px dashed #173954;border-radius:6px}.feature-list{display:flex;flex-direction:column;gap:6px}.feature{display:flex;align-items:center;gap:7px;font-size:7.7px;color:#9fb2c3}.ico{width:16px;height:16px;border-radius:5px;display:grid;place-items:center;font-size:9px;background:#0c2840;border:1px solid #1e4f77}.ico.blue{color:#5eb1ff}.ico.green{color:#63e3b8}.ico.yellow{color:#f4d263}.ico.purple{color:#b397ff}.ico.red{color:#ff8b9a}
.right{display:flex;flex-direction:column;gap:12px}.right .card{padding:14px}.quality{display:grid;grid-template-columns:120px 1fr;gap:13px;align-items:center}.ring{width:110px;height:110px;border-radius:50%;background:conic-gradient(var(--blue) 0 0%,#162a3c 0 100%);display:grid;place-items:center;position:relative}.ring:after{content:"";width:80px;height:80px;border-radius:50%;background:#061522;position:absolute}.ring-value{z-index:1;text-align:center}.ring-value b{display:block;font-size:25px;color:#79c9ff}.ring-value span{font-size:7px;color:#7c94a7}.quality-copy strong{font-size:13px;display:block;margin-bottom:5px}.quality-copy p{font-size:8px;line-height:1.5;color:#9aafbf;margin:0}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:11px}.metric{padding:8px 7px;border-radius:7px;border:1px solid var(--line);background:#0b2132}.metric b{font-size:13px;display:block}.metric span{font-size:6.8px;color:#7e94a7;display:block;margin-top:2px}.dist-title{font-size:8px;font-weight:650;margin-top:11px}.dist{height:19px;display:flex;overflow:hidden;border-radius:4px;margin-top:7px;background:#122538}.dist-caption{display:grid;grid-template-columns:repeat(4,1fr);font-size:6.8px;color:#8297aa;margin-top:5px;text-align:center}
.details{display:grid;grid-template-columns:1fr 1fr;gap:7px 14px}.detail{display:flex;justify-content:space-between;gap:7px;padding:5px 0;border-bottom:1px solid rgba(22,52,79,.55);font-size:7.8px;color:#849bad}.detail b{color:#e3edf4;font-weight:550;text-align:right;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.domainbar{height:20px;border-radius:4px;overflow:hidden;background:#122538;display:flex}.domainbar span{height:100%}.domain-list{margin-top:8px;display:flex;flex-direction:column;gap:5px}.domain-row{display:flex;align-items:center;gap:6px;font-size:7.5px;color:#a3b6c5}.domain-color{width:10px;height:10px;border-radius:2px}.provenance{font-size:7px;color:#6f879b;margin-top:8px;line-height:1.45}.hot-table{display:grid;grid-template-columns:1.1fr .8fr .65fr 1.2fr;font-size:7.2px}.hot-table>div{padding:5px 4px;border-top:1px solid rgba(22,52,79,.55);color:#9db0c0}.hot-table .head{color:#6e879b;border-top:0}.hot-table b{color:#e3edf4;font-weight:550}.ai{font-size:8px;color:#9fb3c4;line-height:1.62}.ai strong{color:#e9f4fb}.tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.tag{font-size:6.8px;padding:4px 7px;border-radius:999px;background:#0d273b;color:#afc4d5;border:1px solid #173d5a}.source-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 6px;border-radius:999px;border:1px solid #1b4d74;background:#082039;color:#6dbbff;font-size:6.5px;margin-bottom:7px}
.tab-panel{display:none}.tab-panel.active{display:block}.overlay{position:fixed;inset:0;z-index:100;background:rgba(1,6,10,.86);backdrop-filter:blur(10px);display:none;place-items:center}.overlay.show{display:grid}.runbox{width:min(460px,90vw);background:#071725;border:1px solid #24516f;border-radius:14px;padding:22px;box-shadow:0 30px 80px rgba(0,0,0,.5)}.runbox h2{font-size:16px;margin:0 0 5px}.runbox p{font-size:8px;color:#8098aa;margin:0 0 14px}.track{height:5px;background:#14273a;border-radius:999px;overflow:hidden}.fill{height:100%;width:0;background:linear-gradient(90deg,#177cff,#28d6f2);transition:width .3s}.runstate{font:8px 'IBM Plex Mono',monospace;color:#68baff;margin-top:8px}.runlog{height:122px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#04101a;padding:8px;margin-top:12px;font:7.5px/1.6 'IBM Plex Mono',monospace;color:#8298aa}.runlog .ok{color:#61e0b5}.runlog .err{color:#ff8f9c}.toast{position:fixed;right:18px;bottom:18px;z-index:120;padding:10px 12px;max-width:380px;border:1px solid #24506f;border-radius:9px;background:#071a28;color:#dce8f1;font-size:8px;box-shadow:0 18px 45px rgba(0,0,0,.4);display:none}.toast.show{display:block}.toast.err{border-color:#723742;color:#ffc0c7}
.disclaimer{padding:9px 11px;border:1px solid #5a421f;background:#1a1409;border-radius:8px;color:#cbb98e;font-size:7.3px;line-height:1.45;margin-top:10px}
@media(max-width:1250px){:root{--left:290px;--right:350px;--gap:12px}.search{display:none}.nav button{padding:0 10px}.shell{min-width:1000px}}

.run-actions{display:grid;grid-template-columns:.78fr 1.35fr;gap:7px;margin-top:12px}.run-actions .primary{margin-top:0}.run-actions .minor-btn{font-weight:700;background:#0a2237;border-color:#23547b}
.search input::placeholder{color:#708ba3}.search:focus-within{border-color:#2c84cf;box-shadow:0 0 0 3px rgba(44,132,207,.09)}
.focus-flash{animation:focusFlash 1.25s ease}@keyframes focusFlash{0%,100%{box-shadow:var(--shadow)}35%{box-shadow:0 0 0 2px rgba(39,149,255,.75),0 0 35px rgba(39,149,255,.24)}}
.context-menu{position:fixed;z-index:120;min-width:190px;padding:6px;border:1px solid var(--line2);border-radius:10px;background:#071725;box-shadow:0 20px 55px rgba(0,0,0,.48);display:none}.context-menu.show{display:block}.context-menu button{width:100%;border:0;background:transparent;color:#cfe0ec;padding:9px 10px;text-align:left;border-radius:7px;font-size:9px}.context-menu button:hover{background:#0e2b45}.context-menu .danger{color:#ff929f}
.modal-backdrop{position:fixed;inset:0;z-index:130;background:rgba(1,6,11,.74);backdrop-filter:blur(8px);display:none;place-items:center;padding:20px}.modal-backdrop.show{display:grid}.modal{width:min(680px,92vw);max-height:82vh;overflow:auto;border:1px solid var(--line2);border-radius:14px;background:linear-gradient(180deg,#0b2135,#071522);box-shadow:0 28px 90px rgba(0,0,0,.55);padding:18px}
.modal.modal-wide{width:min(1180px,95vw);max-height:90vh;height:90vh;display:flex;flex-direction:column;overflow:hidden!important;padding:20px 24px 16px 24px;background:#030f1a;border:1px solid #143d60;box-shadow:0 35px 100px rgba(0,0,0,.8)}
.modal.modal-wide #modalBody{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
.modal.modal-wide .modal-actions{margin-top:12px;padding-top:10px;border-top:1px solid rgba(20,61,96,.5)}
#molGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));grid-auto-rows:minmax(165px,auto);gap:12px;flex:1;min-height:0;overflow-y:auto!important;padding-right:6px}
#molGrid::-webkit-scrollbar{width:7px}
#molGrid::-webkit-scrollbar-track{background:rgba(3,15,26,.6);border-radius:4px}
#molGrid::-webkit-scrollbar-thumb{background:#16466b;border-radius:4px}
#molGrid::-webkit-scrollbar-thumb:hover{background:#38B6FF}
#molFilterBar{scrollbar-width:none!important;-ms-overflow-style:none!important}
#molFilterBar::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
.lib-hotlist::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
.lib-hotlist{scrollbar-width:none!important;-ms-overflow-style:none!important}
.mol-card{min-height:165px!important;background:#061826!important;border:1px solid #0e2c45!important;border-radius:10px;padding:14px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.mol-card:hover{transform:translateY(-2px);border-color:#1c5885!important;box-shadow:0 8px 25px rgba(0,0,0,.45),0 0 15px rgba(56,182,255,.1)}.modal h2{font-size:16px;margin:0}.modal p{color:#9db2c5;font-size:9px;line-height:1.6}.modal-head{display:flex;justify-content:space-between;gap:14px;align-items:center}.modal-close{border:1px solid var(--line);background:#0a1d2d;color:#bdd0df;border-radius:8px;padding:7px 9px}.modal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:12px 0}.modal-kpi{padding:11px;border:1px solid var(--line);border-radius:9px;background:#081a29}.modal-kpi span{display:block;color:#7792a8;font-size:8px}.modal-kpi b{display:block;font-size:15px;margin-top:4px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.modal-actions button{border-radius:8px;padding:9px 12px;font-size:9px}.modal-actions .confirm{border:0;background:linear-gradient(180deg,#258fff,#1168ee);color:white;font-weight:700}.modal-actions .cancel{border:1px solid var(--line);background:#0b1d2c;color:#bfd1df}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:9px}.data-table{width:100%;border-collapse:collapse;font-size:8.5px}.data-table th,.data-table td{padding:8px 9px;border-bottom:1px solid rgba(29,65,96,.7);text-align:left}.data-table th{color:#7994aa;background:#071624;position:sticky;top:0}.data-table td{color:#bed0dd}.data-table tr:last-child td{border-bottom:0}.mono{font-family:'IBM Plex Mono',monospace}.empty-state{padding:24px;text-align:center;color:#7892a7;font-size:9px}.loading-dot{width:7px;height:7px;border-radius:50%;display:inline-block;background:#f4c84d;box-shadow:0 0 9px rgba(244,200,77,.4);margin-right:6px}.api-off{color:#ff9b9b!important}.api-on{color:#5be5b5!important}
@media(max-width:1180px){.run-actions{grid-template-columns:1fr 1.5fr}}
.advanced-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.advanced-grid .field{margin-top:0}.advanced-grid .wide{grid-column:1/-1}.advanced-note{grid-column:1/-1;border:1px solid #1b4667;background:#071c2d;border-radius:8px;padding:8px 9px;color:#7895aa;font-size:7.2px;line-height:1.5}.advanced-note b{color:#a9cee9}.binder-row{display:none}.binder-row.show{display:block}.entity-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}.science-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border:1px solid #1c506f;border-radius:999px;background:#072135;color:#78c6ff;font-size:6.7px}.ensemble-grid,.ref-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.ensemble-kpi,.ref-kpi{padding:8px;border:1px solid var(--line);border-radius:8px;background:#081d2d}.ensemble-kpi b,.ref-kpi b{display:block;font-size:11px}.ensemble-kpi span,.ref-kpi span{display:block;color:#7892a7;font-size:6.5px;margin-top:3px}.ensemble-note,.ref-note{font-size:7px;line-height:1.5;color:#7e99ad;margin-top:8px}.sample-active{color:#63e4b8!important}.sample-button{border:1px solid #23577c;background:#0a2438;color:#c8deec;border-radius:6px;padding:5px 7px;font-size:7px}.sample-button:hover{border-color:#2d83bd}.ref-actions{display:flex;gap:6px;margin-top:9px}.ref-actions button{flex:1;border:1px solid var(--line);background:#0a2032;color:#cfe0ec;border-radius:8px;padding:7px;font-size:7.5px}.metric-help{cursor:help;text-decoration:underline dotted rgba(150,190,220,.55);text-underline-offset:2px}

/* ---------- Advanced structure intelligence ---------- */
.residue-empty{padding:14px;border:1px dashed #1c4463;border-radius:9px;background:#061724;color:#7894a9;font-size:8px;line-height:1.55;text-align:center}
.residue-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.residue-ident{display:flex;align-items:center;gap:9px}.residue-badge{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#0c2d4d;border:1px solid #27679a;color:#86ccff;font:700 10px 'IBM Plex Mono',monospace}.residue-ident strong{display:block;font-size:11px}.residue-ident small{display:block;color:#7893a8;font-size:7px;margin-top:3px}.residue-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}.res-kpi{padding:8px 7px;border:1px solid var(--line);border-radius:8px;background:#081c2c}.res-kpi b{display:block;font-size:11px}.res-kpi span{display:block;color:#748fa4;font-size:6.6px;margin-top:3px}.residue-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.residue-actions button,.small-action{border:1px solid var(--line);background:#0a2032;color:#cfe0ec;border-radius:8px;padding:8px 9px;font-size:8px}.residue-actions button:hover,.small-action:hover{border-color:#2b6c9d;background:#0d2940}
.audit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.audit-item{padding:9px;border:1px solid var(--line);border-radius:8px;background:#081c2b}.audit-item b{display:block;font-size:13px}.audit-item span{display:block;color:#7893a8;font-size:6.8px;margin-top:3px}.audit-good{color:#65e1b7}.audit-warn{color:#f2cf62}.audit-bad{color:#ff8998}.audit-na{color:#8aa3b7}
.prov-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.prov-row{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid rgba(22,52,79,.55);font-size:7.5px}.prov-row span{color:#7891a5}.prov-row b{color:#dceaf3;text-align:right;max-width:115px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prov-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}
.quick-prompts{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.quick-prompts button{border:1px solid #1c4667;background:#082238;color:#9fc8e8;border-radius:999px;padding:5px 8px;font-size:6.8px}.quick-prompts button:hover{border-color:#2d79ad;color:#e7f5ff}.ai-query{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:8px}.ai-query input{min-width:0;border:1px solid var(--line);background:#051522;color:#e6f0f7;border-radius:8px;padding:8px 9px;font-size:8px;outline:0}.ai-query input:focus{border-color:#2b83ca;box-shadow:0 0 0 3px rgba(43,131,202,.08)}.ai-query button{border:1px solid #2b74aa;background:#0c3151;color:#eef8ff;border-radius:8px;padding:8px 10px;font-size:8px;font-weight:700}.ai-answer{margin-top:8px;padding:9px;border:1px solid #1d4565;border-radius:8px;background:#061a2a;color:#a9bed0;font-size:7.6px;line-height:1.55;display:none}.ai-answer.show{display:block}.evidence-label{color:#65baff;font-weight:700}
.mut-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:5px;margin-top:10px}.mut-choice{border:1px solid var(--line);background:#081d2d;color:#cfe0ec;border-radius:7px;padding:7px 0;font:700 8px 'IBM Plex Mono',monospace}.mut-choice:hover{border-color:#2b85c7;background:#0d2a42}.mut-choice.disabled{opacity:.32;pointer-events:none}



/* ---------- Nilus visual refinement v3.1 ---------- */
.topbar{box-shadow:0 1px 0 rgba(58,121,170,.08),0 10px 34px rgba(0,0,0,.18)}
.logo{background:linear-gradient(145deg,#2196ff 0%,#125ce9 70%,#0d43b8 100%);box-shadow:0 0 0 1px rgba(255,255,255,.16) inset,0 8px 24px rgba(18,104,239,.30)}
.nav button.active{color:#dff3ff;border-bottom-color:#2a91ff;background:linear-gradient(180deg,rgba(30,124,255,.16),rgba(30,124,255,.025))}
.search{background:#03101b;border-color:#16364f}.search:focus-within{border-color:#247fc6;box-shadow:0 0 0 3px rgba(36,127,198,.08)}
.card{box-shadow:0 16px 42px rgba(0,0,0,.28)}
.card:before{background:linear-gradient(90deg,transparent,rgba(76,171,255,.12),transparent)}
.mode-tabs,.tabs{border-color:#18374f}.mode-tabs{background:#05131f}.mode-tabs button.active{background:#0a2742;box-shadow:inset 0 0 0 1px #237dcc,0 6px 16px rgba(8,89,176,.16)}
.engine{background:linear-gradient(180deg,#08223a,#061a2c);border-color:#20577f}.engine small{color:#65bbff}
.primary{box-shadow:0 10px 25px rgba(18,104,245,.32)}
.viewer{border-color:#173a55}.viewer-title{color:#f5f8fc}.viewer-sub{color:#6d879c}
.viewer-tools button,.viewer-actions button{border-color:#183b56}.viewer-tools button.active{border-color:#278bff;background:#0a3156;box-shadow:0 0 0 1px rgba(64,166,255,.05) inset}
.legend{border-color:#183d59;box-shadow:0 14px 28px rgba(0,0,0,.18)}
.metric,.res-kpi,.audit-item,.ensemble-kpi,.ref-kpi{background:#061826;border-color:#17374f}
.quality .ring{filter:drop-shadow(0 0 18px rgba(45,164,255,.08))}
.status{box-shadow:0 0 0 1px rgba(45,212,160,.04) inset}
.pill{background:#05382f;color:#5ae0b3;border-color:#087155}
.ghost{background:#05131f;border-color:#17374e}.ghost:hover{background:#071a2a;border-color:#29658e}
textarea,.input,select{border-color:#17364e}.input:focus,textarea:focus,select:focus{border-color:#2689d8;box-shadow:0 0 0 3px rgba(38,137,216,.075)}



/* ---------- Nilus Premium visual system v3.2 ----------
   Target: institutional biotech dashboard + high-throughput molecular viewport.
   Visual-only overrides; prediction/API logic is unchanged. ---------- */
:root{
  --bg:#01060D;--bg2:#020B14;--panel:#04121E;--panel2:#061826;--panel3:#082033;
  --line:#0E2C45;--line2:#16466B;--text:#F4F8FC;--muted:#A7BED2;--soft:#66859E;
  --blue:#0A74FF;--cyan:#38B6FF;--green:#19D6A2;--yellow:#FFDB13;--orange:#FF7D45;
  --shadow:0 10px 30px rgba(0,0,0,.35);--radius:10px;
  --left:320px;--right:400px;--gap:14px;--pad:12px;--top:70px;
}
html,body{background:#01060D}
body{background:radial-gradient(1000px 600px at 50% -180px,rgba(10,116,255,.05),transparent 65%), #01060D;font-size:12px}
.shell{min-width:1180px}
.topbar{padding:0 18px;gap:24px;background:#020B14;border-bottom:1px solid #0E2C45;box-shadow:0 1px 0 rgba(21,151,255,.06)}
.brand{min-width:265px;gap:12px}.brand strong{font-size:19px;font-weight:750}.brand small{font-size:11px;color:#A7BED2;margin-top:3px}.logo{width:42px;height:42px;border-radius:12px}
.nav{gap:2px}.nav button{padding:0 16px;font-size:12px;font-weight:500}.nav button.active{color:#F4F8FC;border-bottom-width:2px;background:#061826}
.search{height:40px;width:305px;border-radius:9px;background:#03101B;border-color:#0E2C45;font-size:11px}.search input{font-size:11px!important}.avatar{width:36px;height:36px;font-size:12px}
.workspace{padding:12px var(--pad) 12px;gap:var(--gap)}
.col{scrollbar-color:#0E2C45 transparent}.col::-webkit-scrollbar{width:6px}.col::-webkit-scrollbar-thumb{background:#0E2C45}
.card{background:#04121E;border-color:#0E2C45;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.35)}.card:before{display:none}
.left{gap:12px}.left .card{padding:16px}.section-title{font-size:17px;font-weight:760;letter-spacing:-.02em}.section-sub{font-size:11.5px;line-height:1.55;color:#A7BED2;margin-top:6px}
.mode-tabs{margin:15px 0 14px;padding:4px;border-radius:9px;background:#03101B;border-color:#0E2C45}.mode-tabs button{font-size:10.5px;padding:9px 5px}.mode-tabs button.active{background:#061826;box-shadow:inset 0 0 0 1px #1597FF;color:#fff}
.field{margin-top:11px}.label{font-size:11px;margin-bottom:7px}.label .hint{font-size:9px}.input,textarea,select{font-size:10.5px;line-height:1.55;border-radius:8px;padding:10px 11px;background:#03101B;border-color:#0E2C45;color:#F4F8FC}textarea{min-height:112px}
.inline2{gap:8px}.minor-btn,.mut-row button{font-size:10.5px;padding:9px 10px;background:#061826;border-color:#0E2C45;color:#F4F8FC}.engine{padding:11px 12px;margin-top:12px;border-radius:8px;background:#061826;border:1px solid #0E2C45}.engine strong{font-size:11px}.engine small{font-size:8.5px}.pred-type button{font-size:10px;padding:9px 5px}.advanced summary{font-size:10px}.primary{font-size:12px;padding:13px 11px;border-radius:8px}.run-foot{font-size:9px;margin-top:9px}.disclaimer{font-size:8.5px;line-height:1.5}
.recent{padding:14px!important}.section-head{margin-bottom:10px}.section-head h3{font-size:11.5px;font-weight:700}.section-head button,.section-head a{font-size:9px}.recent-item{grid-template-columns:42px 1fr auto;gap:10px;padding:10px 0}.thumb{width:42px;height:42px}.recent-main b{font-size:10px}.recent-main span{font-size:8.5px}.pill{font-size:8.5px;padding:4px 8px}
.center{grid-template-rows:auto 42px minmax(440px,1fr) 205px;gap:10px}.result-head{padding:3px 2px 1px}.result-head h1{font-size:21px;font-weight:750}.result-meta{font-size:10.5px;margin-top:6px}.status{font-size:9px;padding:5px 9px}.ghost{font-size:9.5px;padding:8px 11px;border-radius:7px}
.tabs{height:42px;border-radius:8px;background:#020B14}.tabs button{font-size:10.5px;font-weight:500}.tabs button.active{background:#061826;border-bottom-color:#1597FF}
.viewer{border-radius:10px!important;background:#000!important;box-shadow:none}.viewer-title{font-size:11.5px;left:15px;top:14px}.viewer-sub{font-size:9px;left:15px;top:34px;color:#A7BED2}.viewer-tools{top:14px;right:14px;gap:6px}.viewer-tools button{font-size:9.5px;padding:8px 10px;border-radius:7px;background:rgba(2,11,20,.93);border-color:#0E2C45;color:#A7BED2}.viewer-actions{right:14px;bottom:14px;gap:7px}.viewer-actions button{font-size:9px;padding:8px 10px;background:rgba(2,11,20,.94);border-color:#0E2C45;color:#A7BED2}.viewer-source{left:15px;bottom:15px;font-size:8.5px;color:#66859E}.axis{left:18px;bottom:42px;font-size:8px}
#molviewer{background:#000!important}
.legend{right:15px;top:58px;width:148px;padding:11px;border-radius:8px;background:rgba(2,11,20,.96);border-color:#0E2C45}.legend b{font-size:9.5px;margin-bottom:8px}.leg{font-size:8.5px;margin:6px 0;gap:7px}.sw{width:11px;height:11px;border-radius:2px}
.bottom{grid-template-columns:1.25fr .88fr 1fr;gap:10px}.mini-card{padding:13px}.mini-card h3{font-size:10.5px}.confidence-strip{height:34px;border-radius:4px}.legend-row{font-size:8px;margin-top:8px}.micro-note{font-size:8.4px;line-height:1.5}.feature{font-size:8.8px;gap:8px}.ico{width:18px;height:18px;font-size:9px}
#paeCanvas{height:142px;border-radius:4px;border-color:#0E2C45;background:#000}.pae-empty{height:144px;font-size:8.5px}
.right{gap:10px}.right .card{padding:15px 16px}.quality{grid-template-columns:116px 1fr;gap:15px}.ring{width:112px;height:112px}.ring:after{width:82px;height:82px;background:#04121E}.ring-value b{font-size:27px}.ring-value span{font-size:8px}.quality-copy strong{font-size:14px;line-height:1.25}.quality-copy p{font-size:9px;line-height:1.5}.metric-grid{gap:7px;margin-top:12px}.metric{padding:9px 8px;border-radius:7px;background:#061826;border-color:#0E2C45}.metric b{font-size:14px}.metric span{font-size:7.8px}.dist-title{font-size:9px;margin-top:12px}.dist{height:20px}.dist-caption{font-size:7.5px;margin-top:6px}
.details{gap:8px 15px}.detail{font-size:8.7px;padding:6px 0}.domain-row{font-size:8.4px}.provenance{font-size:8px;line-height:1.5}.hot-table{font-size:8px}.hot-table>div{padding:6px 4px}.ai{font-size:9px;line-height:1.6}.tag{font-size:7.8px;padding:4px 8px}
.ensemble-kpi b,.ref-kpi b,.audit-item b{font-size:14px}.ensemble-kpi span,.ref-kpi span,.audit-item span{font-size:7.6px}.ensemble-note,.ref-note{font-size:8px;line-height:1.5}.residue-ident strong{font-size:12px}.residue-ident small{font-size:8px}.res-kpi b{font-size:12px}.res-kpi span{font-size:7.4px}.prov-row{font-size:8.4px}.quick-prompts button{font-size:7.8px}.ai-query input,.ai-query button{font-size:9px}.ai-answer{font-size:8.5px}
.modal{background:#04121E;border-color:#0E2C45}.modal p{font-size:10px}.modal-kpi span{font-size:9px}.modal-kpi b{font-size:16px}.data-table{font-size:9.5px}
@media(max-width:1400px){:root{--left:300px;--right:365px;--gap:11px}.nav button{padding:0 11px}.search{width:250px}.center{grid-template-rows:auto 40px minmax(400px,1fr) 190px}.right .card{padding:13px 14px}}

/* ---------- Nilus Premium v3.4 100%-zoom workspace architecture ----------
   The action dock is always visible. Configuration/history scroll independently.
   Right-hand scientific cards never flex-collapse; the analysis rail scrolls instead. */

/* Left rail: prediction workspace + bounded history. */
.left{
  display:grid!important;
  grid-template-rows:minmax(0,1fr) minmax(150px,34%);
  gap:10px;
  min-height:0;
  overflow:hidden!important;
  padding-right:1px;
}
.left>.prediction-card{
  min-height:0!important;
  height:auto!important;
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto;
  padding:0!important;
  overflow:hidden!important;
}
.prediction-scroll{
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding:14px 14px 8px;
  scrollbar-width:thin;
  scrollbar-color:#0E2C45 transparent;
  overscroll-behavior:contain;
}
.prediction-dock{
  position:relative;
  z-index:10;
  padding:10px 14px 11px;
  border-top:1px solid #0E2C45;
  background:#04121E;
  box-shadow:0 -12px 28px rgba(0,0,0,.35);
}
.prediction-dock .run-actions{margin:0;padding:0;border:0}
.prediction-dock .run-foot{margin-top:7px}
.prediction-dock #predictBtn{min-height:42px;margin:0;box-shadow:0 0 18px rgba(21,151,255,.18)}
.prediction-dock #estimateBtn{min-height:42px}
.prediction-card .disclaimer{margin:8px 0 0}

.left>.recent{
  min-height:0!important;
  max-height:none!important;
  height:auto!important;
  display:flex;
  flex-direction:column;
  overflow:hidden!important;
  padding:12px!important;
}
.left>.recent .section-head{flex:0 0 auto}
.left>.recent .recent-list{
  flex:1 1 auto;
  min-height:0;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden;
  padding-right:4px;
  scrollbar-width:thin;
  scrollbar-color:#0E2C45 transparent;
}

/* Analysis rail: no flex shrinking/collapsed header-only cards. */
.right{
  display:block!important;
  min-height:0;
  overflow-y:auto!important;
  overflow-x:hidden;
  padding-right:2px;
  scrollbar-gutter:stable;
  overscroll-behavior:contain;
}
.right>.card{
  display:block!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden;
  margin:0 0 9px 0;
  flex:none!important;
}
.right>.card:last-child{margin-bottom:0}

/* Central canvas can contract on normal 100% browser zoom instead of forcing the page taller. */
.center{
  min-height:0;
  overflow:hidden;
  grid-template-rows:auto 40px minmax(300px,1fr) minmax(155px,190px);
}
.bottom{min-height:0}
.mini-card{min-height:0;overflow:hidden}

/* Scrollbar polish. */
.prediction-scroll::-webkit-scrollbar,.recent-list::-webkit-scrollbar,.right::-webkit-scrollbar{width:6px}
.prediction-scroll::-webkit-scrollbar-thumb,.recent-list::-webkit-scrollbar-thumb,.right::-webkit-scrollbar-thumb{background:#0E2C45;border-radius:999px}
.prediction-scroll::-webkit-scrollbar-track,.recent-list::-webkit-scrollbar-track,.right::-webkit-scrollbar-track{background:transparent}

/* Normal 1080p laptop/desktop viewport at browser 100% zoom. */
@media (max-height:980px){
  :root{--top:58px;--left:292px;--right:354px;--gap:10px;--pad:9px}
  .topbar{padding:0 14px;gap:18px}
  .brand{min-width:220px}.logo{width:36px;height:36px}.brand strong{font-size:17px}.brand small{font-size:10px}
  .nav button{padding:0 11px;font-size:10.5px}.search{height:34px;width:245px}.avatar{width:32px;height:32px}
  .workspace{padding:9px var(--pad);gap:var(--gap)}
  .left{grid-template-rows:minmax(0,1fr) minmax(142px,31%);gap:9px}
  .prediction-scroll{padding:11px 12px 6px}
  .prediction-dock{padding:8px 12px 9px}
  .section-title{font-size:15px}.section-sub{font-size:9.5px;line-height:1.42;margin-top:4px}
  .mode-tabs{margin:9px 0 8px;grid-template-columns:repeat(5,1fr);gap:2px}.mode-tabs button{padding:6px 2px;font-size:8px}
  .field{margin-top:7px}.label{font-size:9.5px;margin-bottom:5px}.label .hint{font-size:7.8px}
  .input,textarea,select{font-size:9px;padding:7px 8px}textarea{min-height:78px;max-height:112px}
  .inline2{gap:6px}.minor-btn,.mut-row button{font-size:9px;padding:7px 8px}
  .engine{margin-top:8px;padding:8px 9px}.engine strong{font-size:9.5px}.engine small{font-size:7.5px}
  .pred-type{margin-top:6px;gap:5px}.pred-type button{padding:7px 3px;font-size:8.5px}
  .advanced{margin-top:6px;padding-top:6px}.advanced summary{font-size:8.7px}
  .run-actions{grid-template-columns:.78fr 1.35fr;gap:6px}.primary{font-size:10.5px;padding:10px 9px}.run-foot{font-size:7.8px}
  .disclaimer{font-size:7.2px;line-height:1.35;padding:6px 8px}
  .recent{padding:10px!important}.recent .section-head{margin-bottom:5px}.recent-item{grid-template-columns:34px 1fr auto;gap:7px;padding:6px 0}.thumb{width:34px;height:34px}.recent-main b{font-size:8.6px}.recent-main span{font-size:7.2px}.pill{font-size:7px;padding:3px 6px}
  .center{grid-template-rows:auto 36px minmax(280px,1fr) 154px;gap:7px}
  .result-head h1{font-size:17px}.result-meta{font-size:8.5px;margin-top:3px}.status{font-size:7.5px;padding:4px 7px}.ghost{font-size:7.8px;padding:6px 8px}
  .tabs{height:36px}.tabs button{font-size:8.8px}
  .viewer-title{font-size:9.5px;top:10px;left:12px}.viewer-sub{font-size:7.5px;top:27px;left:12px}.viewer-tools{top:9px;right:9px}.viewer-tools button{font-size:7.8px;padding:6px 8px}.legend{top:48px;right:10px;width:130px;padding:8px}.legend b{font-size:8px}.leg{font-size:7px;margin:4px 0}.viewer-actions{right:10px;bottom:9px}.viewer-actions button{font-size:7.5px;padding:6px 8px}.viewer-source{font-size:7px;left:11px;bottom:10px}
  .bottom{gap:7px}.mini-card{padding:9px}.mini-card h3{font-size:8.8px}.confidence-strip{height:26px}.legend-row{font-size:6.8px}.micro-note{font-size:6.8px;margin-top:6px}.feature{font-size:7px;gap:5px}.ico{width:14px;height:14px}
  #paeCanvas{height:105px}.pae-empty{height:107px;font-size:7px}
  .right>.card{margin-bottom:7px;padding:10px 11px}
  .right .section-head{margin-bottom:6px}.right .section-head h3{font-size:9.5px}.right .section-head button{font-size:7.5px}
  .quality{grid-template-columns:82px 1fr;gap:9px}.ring{width:78px;height:78px}.ring:after{width:56px;height:56px}.ring-value b{font-size:19px}.ring-value span{font-size:5.8px}.quality-copy strong{font-size:10.5px;margin-bottom:3px}.quality-copy p{font-size:7px;line-height:1.34}
  .metric-grid{gap:4px;margin-top:7px}.metric{padding:5px}.metric b{font-size:10.5px}.metric span{font-size:5.8px}.dist-title{font-size:7px;margin-top:7px}.dist{height:14px;margin-top:4px}.dist-caption{font-size:5.8px;margin-top:3px}
  .details{gap:4px 10px}.detail{font-size:7px;padding:3px 0}.detail b{max-width:104px}
  .ensemble-grid,.reference-grid,.audit-grid,.residue-grid{gap:5px}.ensemble-kpi,.ref-kpi,.audit-item,.res-kpi{padding:6px}.ensemble-kpi b,.ref-kpi b,.audit-item b,.res-kpi b{font-size:10px}.ensemble-kpi span,.ref-kpi span,.audit-item span,.res-kpi span{font-size:5.8px}.ensemble-note,.ref-note,.provenance{font-size:6.6px;line-height:1.35}
  .domainbar{height:13px}.domain-list{margin-top:5px;gap:3px}.domain-row{font-size:6.8px}.hot-table{font-size:6.5px}.hot-table>div{padding:3px}.ai{font-size:7px;line-height:1.4}.source-badge{font-size:5.8px;margin-bottom:4px}.tag{font-size:5.8px;padding:3px 5px}.quick-prompts{gap:3px}.quick-prompts button{font-size:6px;padding:4px 5px}.ai-query{margin-top:5px}.ai-query input,.ai-query button{font-size:7px;padding:6px}.ai-answer{font-size:6.6px}
}

/* Very short browser viewport: keep the run action accessible at all times. */
@media (max-height:760px){
  :root{--top:52px;--left:280px;--right:338px;--gap:8px;--pad:7px}
  .left{grid-template-rows:minmax(0,1fr) 128px}
  .prediction-scroll{padding:9px 10px 4px}
  .prediction-dock{padding:7px 10px 8px}
  .section-sub{display:none}
  textarea{min-height:66px}
  .disclaimer{display:none}
  .recent-item{padding:5px 0}
  .center{grid-template-rows:auto 34px minmax(240px,1fr) 138px}
}



/* ================================================================
   NILUS LAB — COLOR-ONLY PALETTE OVERRIDE
   No layout / sizing / spacing / functionality changes in this block.
   ================================================================ */
:root {
  /* Semantic palette */
  --bg-page: #01060D;
  --bg-main: #01060D;
  --bg-header: #020B14;
  --bg-sidebar: #020D17;
  --bg-panel: #04121E;
  --bg-panel-alt: #061826;
  --bg-card: #04121E;
  --bg-card-alt: #061826;
  --bg-input: #03101B;
  --bg-viewer: #000000;

  --border: #0E2C45;
  --border-soft: #081E31;
  --border-hover: #16466B;
  --border-active: #178BFF;

  --text-primary: #F4F8FC;
  --text-secondary: #A7BED2;
  --text-muted: #66859E;
  --text-dim: #47677E;

  --blue-primary: #0A74FF;
  --blue-bright: #1597FF;
  --blue-soft: #38B6FF;
  --blue-glow: rgba(21,151,255,0.20);
  --green-success: #19D6A2;
  --warning: #F6CF58;
  --danger: #FF714A;

  --plddt-vh: #0053D6;
  --plddt-high: #65CBF3;
  --plddt-low: #FFDB13;
  --plddt-vlow: #FF7D45;

  --domain-1: #0A74FF;
  --domain-2: #1597FF;
  --domain-3: #F6CF58;
  --domain-4: #8B5CF6;
  --domain-5: #EF4B7A;

  /* Map the existing Nilus variables onto the approved palette */
  --bg: #01060D;
  --bg2: #020B14;
  --panel: #04121E;
  --panel2: #061826;
  --panel3: #082033;
  --line: #0E2C45;
  --line2: #16466B;
  --text: #F4F8FC;
  --muted: #A7BED2;
  --soft: #66859E;
  --blue: #0A74FF;
  --cyan: #38B6FF;
  --green: #19D6A2;
  --yellow: #FFDB13;
  --orange: #FF7D45;
  --red: #FF714A;
  --shadow: 0 18px 48px rgba(0,0,0,.45);
}

html, body {
  background: #01060D;
  color: #F4F8FC;
}

body {
  background:
    radial-gradient(1000px 600px at 50% -180px, rgba(10,116,255,.05), transparent 65%),
    #01060D;
}

.topbar {
  background: #020B14;
  border-bottom-color: #0E2C45;
}

.card {
  background: #04121E;
  border-color: #0E2C45;
  box-shadow: 0 18px 48px rgba(0,0,0,.40);
}

.metric,
.res-kpi,
.audit-item,
.ensemble-kpi,
.ref-kpi,
.input,
textarea,
select {
  background: #03101B;
  border-color: #0E2C45;
  color: #F4F8FC;
}

.input:focus,
textarea:focus,
select:focus {
  border-color: #178BFF;
  box-shadow: 0 0 0 3px rgba(21,151,255,.18);
  outline: none;
}

#molviewer,
.viewer {
  background: #000000 !important;
}

.nav button {
  color: #A7BED2;
}

.nav button.active {
  color: #F4F8FC;
  border-bottom-color: #1597FF;
  background: rgba(10,116,255,.12);
}

.primary {
  background: linear-gradient(135deg, #0A74FF 0%, #1597FF 100%);
  color: #FFFFFF;
  border: 1px solid #1597FF;
  box-shadow: 0 0 18px rgba(21,151,255,.22);
}

.primary:hover {
  background: linear-gradient(135deg, #1585FF 0%, #29A5FF 100%);
  box-shadow: 0 0 24px rgba(21,151,255,.34);
  filter: none;
}

.secondary,
.ghost,
.minor-btn,
.mut-row button {
  background: #061826;
  border-color: #0E2C45;
  color: #F4F8FC;
}

.secondary:hover,
.ghost:hover,
.minor-btn:hover,
.mut-row button:hover {
  background: #0A2236;
  border-color: #16466B;
}

.status:not(.ref),
.pill:not(.dim) {
  color: #19D6A2;
  background: rgba(25,214,162,.10);
  border-color: #159974;
}

.status.ref {
  color: #38B6FF;
  background: rgba(10,116,255,.12);
  border-color: #0A74FF;
}

.tabs,
.mode-tabs {
  border-color: #0E2C45;
  background: #03101B;
}

.tabs button,
.mode-tabs button {
  color: #A7BED2;
}

.tabs button.active,
.mode-tabs button.active {
  color: #F4F8FC;
  border-color: #178BFF;
  border-bottom-color: #1597FF;
  background: rgba(10,116,255,.14);
}

.viewer-tools button,
.viewer-actions button {
  background: rgba(2,11,20,.94);
  border-color: #0E2C45;
  color: #A7BED2;
}

.viewer-tools button:hover,
.viewer-actions button:hover {
  background: rgba(6,24,38,.94);
  border-color: #16466B;
  color: #F4F8FC;
}

.viewer-tools button.active {
  background: rgba(10,116,255,.20);
  border-color: #178BFF;
  color: #F4F8FC;
}

.legend {
  background: rgba(2,11,20,.96);
  border-color: #0E2C45;
}

/* Keep every pLDDT display consistent with the 3D model. */
.seg.vh, .conf-vh { background: #0053D6 !important; }
.seg.h, .conf-high { background: #65CBF3 !important; }
.seg.l, .conf-low { background: #FFDB13 !important; }
.seg.vl, .conf-vlow { background: #FF7D45 !important; }

/* Domain presentation colors only; ranges/data remain unchanged. */
.domain-1 { background: #0A74FF !important; }
.domain-2 { background: #1597FF !important; }
.domain-3 { background: #F6CF58 !important; }
.domain-4 { background: #8B5CF6 !important; }
.domain-5 { background: #EF4B7A !important; }

.prediction-dock {
  background: #04121E !important;
  border-top-color: #0E2C45 !important;
}

/* ================================================================
   NILUS LAB v3.6 — VIEWPORT SEPARATION & SEGMENTED 3D CONTROLS
   Purpose: Separate the card title/sub header from the 3D WebGL stage.
   Eliminates visual collisions between viewer tools and title text.
   ================================================================ */

.viewer {
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
  min-height: 0 !important;
  overflow: hidden !important;
  background: #000000 !important;
  border-radius: 10px !important;
  border: 1px solid #0E2C45 !important;
}

.viewer-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 8px 14px !important;
  background: #020B14 !important;
  border-bottom: 1px solid #0E2C45 !important;
  flex-shrink: 0 !important;
  z-index: 10 !important;
  gap: 12px !important;
}

.viewer-head-title-wrap {
  display: flex !important;
  align-items: baseline !important;
  gap: 10px !important;
  min-width: 0 !important;
  flex-wrap: wrap !important;
}

.viewer-head .viewer-title {
  position: static !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  color: #F4F8FC !important;
  letter-spacing: -0.01em !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

.viewer-head .viewer-sub {
  position: static !important;
  font-size: 8.5px !important;
  color: #66859E !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

.viewer-stage {
  position: relative !important;
  flex: 1 !important;
  min-height: 0 !important;
  width: 100% !important;
}

.viewer-stage #molviewer {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: #000000 !important;
}

.viewer-tools {
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  z-index: 9 !important;
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  justify-content: flex-end !important;
  max-width: calc(100% - 20px) !important;
}

.tool-group {
  display: inline-flex !important;
  align-items: center !important;
  background: rgba(2, 11, 20, 0.92) !important;
  backdrop-filter: blur(10px) !important;
  border: 1px solid #0E2C45 !important;
  border-radius: 8px !important;
  padding: 2px !important;
  gap: 2px !important;
}

.tool-group button {
  border: none !important;
  background: transparent !important;
  color: #A7BED2 !important;
  border-radius: 6px !important;
  padding: 5px 9px !important;
  font-size: 8.5px !important;
  font-weight: 500 !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  transition: all 0.15s ease !important;
}

.tool-group button:hover {
  color: #F4F8FC !important;
  background: rgba(21, 151, 255, 0.14) !important;
}

.tool-group button.active {
  background: #0A74FF !important;
  color: #FFFFFF !important;
  font-weight: 700 !important;
  box-shadow: 0 1px 4px rgba(10, 116, 255, 0.35) !important;
}



/* ================================================================
   NILUS LAB v3.5 — BULLETPROOF PREDICTION ACTION DOCK
   Purpose: Keep Estimate cost + Predict Structure ALWAYS visible at
   normal 100% browser zoom. Only the configuration area scrolls.
   No prediction/API/scientific logic changes.
   ================================================================ */

:root{
  --nilus-run-dock-height: 76px;
}

/* Left rail still divides prediction workspace from recent history. */
.left{
  min-height:0 !important;
  overflow:hidden !important;
}

/* The prediction card is now an explicit positioning container. */
.left > .prediction-card{
  position:relative !important;
  display:block !important;
  min-height:0 !important;
  height:100% !important;
  overflow:hidden !important;
  padding:0 !important;
}

/* Settings can scroll, but stop ABOVE the permanent action dock. */
.left > .prediction-card > .prediction-scroll{
  position:absolute !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  bottom:var(--nilus-run-dock-height) !important;
  height:auto !important;
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain;
  padding-bottom:14px !important;
}

/* Permanent Run area — never participates in shrinking/scrolling. */
.left > .prediction-card > .prediction-dock{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  height:var(--nilus-run-dock-height) !important;
  min-height:var(--nilus-run-dock-height) !important;
  box-sizing:border-box !important;
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  z-index:50 !important;
  overflow:hidden !important;
  padding:8px 12px 9px !important;
  border-top:1px solid #0E2C45 !important;
  background:#04121E !important;
  box-shadow:0 -10px 24px rgba(0,0,0,.35) !important;
}

/* Keep the two actions fully visible in the reserved dock. */
.left > .prediction-card > .prediction-dock .run-actions{
  display:grid !important;
  grid-template-columns:minmax(0,.78fr) minmax(0,1.35fr) !important;
  gap:7px !important;
  margin:0 !important;
  padding:0 !important;
  height:42px !important;
}

.left > .prediction-card > .prediction-dock #estimateBtn,
.left > .prediction-card > .prediction-dock #predictBtn{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  min-height:42px !important;
  height:42px !important;
  margin:0 !important;
}

/* Compact status line below buttons. */
.left > .prediction-card > .prediction-dock .run-foot{
  display:flex !important;
  min-height:15px !important;
  margin-top:5px !important;
  overflow:hidden !important;
  white-space:nowrap;
}

/* At shorter viewport heights, reserve a slightly smaller but still fixed dock. */
@media (max-height:760px){
  :root{ --nilus-run-dock-height:70px; }
  .left > .prediction-card > .prediction-dock{
    padding:6px 10px 7px !important;
  }
  .left > .prediction-card > .prediction-dock .run-actions{
    height:39px !important;
  }
  .left > .prediction-card > .prediction-dock #estimateBtn,
  .left > .prediction-card > .prediction-dock #predictBtn{
    min-height:39px !important;
    height:39px !important;
  }
}

/* Nilus Lab v3.1 Scientific — capability-state UX only */
.tabs button.context-unavailable{color:#627b90;opacity:.72;position:relative}
.tabs button.context-unavailable::after{content:'•';color:#e7b84b;font-size:8px;margin-left:4px;vertical-align:1px}
.tabs button.context-unavailable:hover{color:#91a8ba;opacity:1}
.tabs button.context-ready::after{content:'•';color:#27d5a1;font-size:8px;margin-left:4px;vertical-align:1px}
.metric b.na-metric{color:#7d93a7;font-size:9px;letter-spacing:.02em}


/* ===== ALAA All-Phases Scientific Intelligence Preview ===== */
.suite-card{border-color:#0E2C45!important;background:linear-gradient(180deg,#061826,#04121E)!important}
.suite-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.suite-btn{border:1px solid #0E2C45;background:#061826;color:#F4F8FC;border-radius:8px;padding:9px 8px;font-size:7.8px;text-align:left;cursor:pointer}
.suite-btn:hover{border-color:#16466B;background:#0A2236}.suite-btn b{display:block;font-size:8.8px}.suite-btn span{display:block;color:#A7BED2;font-size:6.6px;margin-top:3px;line-height:1.35}
.phase-strip{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:9px}.phase-chip{font-size:6.4px;padding:3px 6px;border-radius:999px;border:1px solid #0E2C45;background:#061826;color:#38B6FF}.phase-chip.safe{border-color:#159974;color:#19D6A2;background:rgba(25,214,162,.10)}.phase-chip.preview{border-color:#B38F2E;color:#F6CF58;background:rgba(246,207,88,.10)}
.expert-block{grid-column:1/-1;border:1px solid #0E2C45;border-radius:8px;background:#04121E;padding:8px}.expert-block summary{cursor:pointer;color:#38B6FF;font-size:8px;font-weight:700}.expert-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}.expert-grid .wide{grid-column:1/-1}.expert-sep{grid-column:1/-1;color:#66859E;font-size:7px;border-top:1px solid #0E2C45;padding-top:7px;margin-top:2px}.expert-note{grid-column:1/-1;color:#A7BED2;font-size:6.8px;line-height:1.45}.inline-check{display:flex;gap:6px;align-items:center;color:#A7BED2;font-size:7px}.inline-check input{accent-color:#0A74FF}
.analysis-matrix{width:100%;border-collapse:collapse;font-size:7.4px}.analysis-matrix th,.analysis-matrix td{padding:5px;border:1px solid #0E2C45;text-align:center}.analysis-matrix th{color:#A7BED2;background:#061826}.analysis-matrix td{color:#F4F8FC}.analysis-note{font-size:7.5px;color:#A7BED2;line-height:1.55;margin-top:9px}.evidence-badge{display:inline-block;font-size:6.3px;padding:3px 6px;border-radius:999px;margin-right:4px;border:1px solid #0E2C45;background:#061826;color:#38B6FF}.evidence-badge.experimental{border-color:#159974;background:rgba(25,214,162,.10);color:#19D6A2}.evidence-badge.derived{border-color:#B38F2E;background:rgba(246,207,88,.10);color:#F6CF58}.evidence-badge.prelim{border-color:#C28532;background:rgba(246,207,88,.10);color:#F6CF58}



/* ===== v3.2 alpha.3 — dedicated scientific workspaces on :3001 ===== */
.dev-badge{height:34px;min-width:112px;padding:4px 9px;border:1px solid #0E2C45;border-radius:8px;background:linear-gradient(180deg,#061826,#04121E);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;box-sizing:border-box;margin-right:4px}
.dev-badge b{font-size:7px;letter-spacing:.08em;color:#38B6FF}.dev-badge span{font-size:6.4px;color:#A7BED2;margin-top:2px}
.suite-wide{grid-column:1/-1}.nav button{padding-left:10px;padding-right:10px;font-size:10px}
.phase-workspace{min-height:0;height:100%;overflow:auto;border:1px solid #0E2C45;border-radius:10px;background:linear-gradient(180deg,#04121E 0%,#020B14 100%);box-shadow:inset 0 1px 0 rgba(21,151,255,.05);padding:14px;box-sizing:border-box}
.phase-workspace-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:12px;border-bottom:1px solid #0E2C45}.phase-workspace-head h2{font-size:17px;margin:3px 0 4px;color:#F4F8FC}.phase-workspace-head p{font-size:8.5px;color:#A7BED2;margin:0;max-width:680px;line-height:1.5}.phase-kicker{font-size:6.5px;letter-spacing:.12em;color:#38B6FF;border:1px solid #0E2C45;background:#061826;border-radius:999px;padding:3px 6px}.phase-workspace-actions{display:flex;align-items:center;gap:7px}.phase-run-state{font-size:6.6px;letter-spacing:.08em;color:#19D6A2;border:1px solid #159974;background:rgba(25,214,162,.10);border-radius:999px;padding:4px 7px}
.evidence-ledger{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 0}.ledger-item{font-size:6.6px;border-radius:999px;padding:4px 7px;border:1px solid #0E2C45;background:#061826;color:#38B6FF}.ledger-item.derived{border-color:#B38F2E;background:rgba(246,207,88,.10);color:#F6CF58}.ledger-item.curated{border-color:#6E42B8;background:rgba(139,92,246,.10);color:#BCA4FF}.ledger-item.experimental{border-color:#159974;background:rgba(25,214,162,.10);color:#19D6A2}.ledger-item.ai{border-color:#9A4B8A;background:rgba(239,75,122,.10);color:#ED9DE6}.ledger-meta{margin-left:auto;color:#66859E;font-size:6.6px}
.phase-workspace-body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:10px;padding-bottom:12px}.phase-panel{grid-column:span 6;border:1px solid #0E2C45;border-radius:9px;background:#04121E;padding:11px;min-width:0}.phase-panel.wide{grid-column:1/-1}.phase-panel.third{grid-column:span 4}.phase-panel h3{font-size:10px;margin:0 0 6px;color:#F4F8FC}.phase-panel p{font-size:7.5px;color:#A7BED2;line-height:1.5;margin:5px 0}.phase-panel .field{margin-bottom:8px}.phase-panel .minor-btn,.phase-panel .primary{min-height:31px}
.phase-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.phase-kpi{border:1px solid #0E2C45;border-radius:7px;background:#03101B;padding:8px}.phase-kpi b{display:block;color:#F4F8FC;font-size:13px}.phase-kpi span{display:block;color:#A7BED2;font-size:6.5px;margin-top:3px}.phase-status.good{color:#19D6A2}.phase-status.warn{color:#F6CF58}.phase-status.na{color:#66859E}
.phase-table{width:100%;border-collapse:collapse;font-size:7px}.phase-table th,.phase-table td{padding:6px;border-bottom:1px solid #0E2C45;text-align:left;vertical-align:top}.phase-table th{color:#A7BED2;font-weight:600}.phase-table td{color:#F4F8FC}.phase-table tr:last-child td{border-bottom:0}.phase-table .num{text-align:right;font-variant-numeric:tabular-nums}.phase-table-wrap{overflow:auto;max-height:290px;border:1px solid #0E2C45;border-radius:7px}
.phase-callout{border-left:2px solid #0A74FF;background:#061826;padding:8px 9px;border-radius:0 7px 7px 0;color:#A7BED2;font-size:7px;line-height:1.5}.phase-callout.warn{border-left-color:#F6CF58;background:rgba(246,207,88,.08);color:#F6CF58}.phase-callout.experimental{border-left-color:#19D6A2;background:rgba(25,214,162,.08);color:#19D6A2}
.matrix-scroll{overflow:auto}.tm-matrix{border-collapse:collapse;font-size:6.6px}.tm-matrix th,.tm-matrix td{border:1px solid #0E2C45;padding:5px;text-align:center;min-width:34px}.tm-matrix th{color:#A7BED2;background:#03101B}.tm-matrix td{color:#F4F8FC}.phase-empty{grid-column:1/-1;min-height:240px;display:grid;place-items:center;text-align:center;color:#A7BED2;border:1px dashed #0E2C45;border-radius:9px;background:#03101B;padding:20px}.phase-empty b{display:block;color:#F4F8FC;font-size:11px;margin-bottom:5px}.phase-empty span{font-size:7.6px;line-height:1.6;max-width:500px}.phase-inline-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}.phase-progress{height:3px;background:#061826;border-radius:999px;overflow:hidden;margin-top:8px}.phase-progress span{display:block;height:100%;background:linear-gradient(90deg,#0A74FF,#38B6FF)}
@media(max-width:1450px){.dev-badge{display:none}.phase-kpis{grid-template-columns:1fr 1fr}.phase-panel.third{grid-column:span 6}}



/* ===== v3.2 alpha.4 — advanced full-canvas scientific workspaces ===== */
.workspace.phase-mode{
  grid-template-columns:minmax(0,1fr)!important;
  gap:0!important;
  padding:10px 12px 12px!important;
}
.workspace.phase-mode>.left,
.workspace.phase-mode>.right{display:none!important}
.workspace.phase-mode>.center{
  grid-column:1/-1!important;
  grid-template-rows:minmax(0,1fr)!important;
  gap:0!important;
  min-width:0!important;
  min-height:0!important;
}
.workspace.phase-mode .result-head,
.workspace.phase-mode #mainTabs,
.workspace.phase-mode #viewerCard,
.workspace.phase-mode .bottom{display:none!important}
.workspace.phase-mode #phaseWorkspace{
  display:flex!important;
  flex-direction:column;
  min-height:0;
  height:100%;
  overflow:hidden;
  padding:0;
  border-color:#0E2C45;
  background:linear-gradient(180deg,#04121E 0%,#020B14 100%);
}
.phase-workspace-head{padding:15px 16px 12px;background:linear-gradient(180deg,#061826,#04121E);flex:0 0 auto}
.evidence-ledger{padding:9px 16px;border-bottom:1px solid #0E2C45;background:#03101B;flex:0 0 auto}
.phase-workspace-body{overflow:auto;padding:12px 14px 18px;flex:1;min-height:0}
.phase-hero{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.75fr);gap:10px;min-width:0}
.phase-hero-card{border:1px solid #0E2C45;border-radius:10px;background:#04121E;min-width:0;overflow:hidden}
.phase-hero-card .hero-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #0E2C45;background:#061826}
.phase-hero-card .hero-head b{font-size:9px;color:#F4F8FC}.phase-hero-card .hero-head span{font-size:6.6px;color:#A7BED2}
.phase-hero-card .hero-body{padding:11px}
.phase-big-metric{font-size:28px;font-weight:750;letter-spacing:-.04em;color:#F4F8FC}.phase-big-metric small{font-size:9px;color:#A7BED2;font-weight:500;margin-left:4px}
.phase-metric-caption{font-size:7px;color:#66859E;margin-top:3px;line-height:1.5}
.phase-method-chip{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;border:1px solid #0E2C45;background:#061826;color:#38B6FF;font-size:6.5px;margin:2px 4px 2px 0}
.phase-method-chip.experimental{border-color:#159974;background:rgba(25,214,162,.10);color:#19D6A2}.phase-method-chip.warn{border-color:#B38F2E;background:rgba(246,207,88,.10);color:#F6CF58}
.phase-viewer{height:390px;background:#000;border-radius:8px;overflow:hidden;position:relative}
.phase-viewer-legend{position:absolute;left:10px;bottom:9px;z-index:3;display:flex;gap:5px;flex-wrap:wrap}.phase-viewer-legend span{font-size:6.4px;padding:4px 6px;border-radius:999px;background:rgba(2,11,20,.9);border:1px solid #0E2C45;color:#A7BED2}
.phase-viewer-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.phase-viewer-toolbar button{border:1px solid #0E2C45;background:#061826;color:#F4F8FC;border-radius:7px;padding:6px 8px;font-size:7px}.phase-viewer-toolbar button.active{border-color:#1597FF;color:#fff;background:#0A74FF}
.phase-chart{border:1px solid #0E2C45;border-radius:8px;background:#03101B;padding:8px;overflow:hidden}.phase-chart svg{display:block;width:100%;height:auto}.chart-caption{font-size:6.7px;color:#66859E;margin-top:6px;line-height:1.5}
.phase-evidence-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.evidence-node{position:relative;border:1px solid #0E2C45;border-radius:9px;background:#04121E;padding:10px;min-height:90px}.evidence-node b{display:block;font-size:9px;color:#F4F8FC}.evidence-node span{display:block;font-size:6.8px;color:#A7BED2;line-height:1.5;margin-top:5px}.evidence-node .node-state{margin-top:8px;font-size:6.3px;color:#19D6A2}.evidence-node:after{content:'→';position:absolute;right:-10px;top:38%;color:#16466B;font-size:13px}.evidence-node:last-child:after{display:none}
.phase-manifest{font:7px/1.6 'IBM Plex Mono',monospace;color:#A7BED2;background:#020B14;border:1px solid #0E2C45;border-radius:8px;padding:10px;max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word}
.ref-selector{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:end}.reference-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.reference-card{border:1px solid #0E2C45;border-radius:8px;background:#03101B;padding:9px}.reference-card b{display:block;font-size:9px}.reference-card span{display:block;color:#A7BED2;font-size:6.5px;line-height:1.5;margin-top:4px}
.deviation-table td:first-child{font-family:'IBM Plex Mono',monospace}.deviation-pill{font-size:6.2px;padding:3px 5px;border-radius:999px;background:#061826;border:1px solid #0E2C45;color:#38B6FF}
.interface-layout{grid-column:1/-1;display:grid;grid-template-columns:290px minmax(0,1fr);gap:10px}.interface-list{display:flex;flex-direction:column;gap:7px;max-height:490px;overflow:auto}.interface-pick{border:1px solid #0E2C45;border-radius:8px;background:#04121E;padding:9px;cursor:pointer}.interface-pick:hover,.interface-pick.active{border-color:#1597FF;background:#061826}.interface-pick b{font-size:9px;display:block}.interface-pick span{font-size:6.5px;color:#A7BED2;display:block;margin-top:3px}.interface-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px}.interface-kpis div{border:1px solid #0E2C45;border-radius:7px;background:#03101B;padding:7px}.interface-kpis b{font-size:10px;display:block}.interface-kpis span{font-size:6px;color:#66859E;display:block;margin-top:2px}
.rama-wrap{position:relative;border:1px solid #0E2C45;border-radius:8px;background:#03101B;padding:8px}.rama-note{font-size:6.6px;color:#A7BED2;margin-top:5px;line-height:1.5}.qc-banner{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #B38F2E;background:rgba(246,207,88,.08);border-radius:8px;padding:9px 10px;color:#F6CF58;font-size:7px}.qc-banner b{color:#F6CF58;font-size:9px}
.heatmap-table{border-collapse:separate;border-spacing:2px;font-size:6.5px}.heatmap-table th{color:#A7BED2;padding:3px;min-width:27px}.heatmap-table td{height:28px;min-width:34px;text-align:center;border-radius:4px;color:#F4F8FC;font-variant-numeric:tabular-nums}.cluster-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.cluster-card{border:1px solid #0E2C45;border-radius:8px;background:#04121E;padding:9px}.cluster-card b{font-size:10px}.cluster-card span{display:block;font-size:6.5px;color:#A7BED2;margin-top:4px}.sample-bars{display:flex;align-items:flex-end;gap:5px;height:120px;padding:10px 6px 0;border-bottom:1px solid #0E2C45}.sample-bar{flex:1;min-width:15px;background:linear-gradient(180deg,#38B6FF,#0A74FF);border-radius:4px 4px 0 0;position:relative}.sample-bar span{position:absolute;left:50%;transform:translateX(-50%);bottom:-18px;color:#66859E;font-size:6px;white-space:nowrap}.sample-bar b{position:absolute;left:50%;transform:translateX(-50%);top:-14px;color:#F4F8FC;font-size:6px;white-space:nowrap}
.run-snapshot{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.run-snapshot div{border:1px solid #0E2C45;border-radius:7px;background:#03101B;padding:8px}.run-snapshot b{font-size:9px;display:block}.run-snapshot span{font-size:6.4px;color:#66859E;display:block;margin-top:3px}
.phase-footer-note{grid-column:1/-1;border-top:1px solid #0E2C45;padding-top:9px;color:#66859E;font-size:6.7px;line-height:1.55}
/* --- Executive 3-Zone Premium Navigation Dock (Nilus Lab Zenith) --- */
.topbar {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0 24px !important;
  height: 64px !important;
  background: rgba(2, 11, 20, 0.95) !important;
  backdrop-filter: blur(24px) !important;
  -webkit-backdrop-filter: blur(24px) !important;
  border-bottom: 1px solid #0E2C45 !important;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.50) !important;
  position: relative !important;
  z-index: 100 !important;
}

/* Zone 1: Left Brand Anchor */
.topbar-left {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 0 0 auto;
}
.brand-link {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  cursor: pointer;
  flex-shrink: 0;
  transition: opacity 0.15s ease;
}
.brand-link:hover {
  opacity: 0.92;
}
.nav-logo-responsive {
  height: 35px !important;
  max-height: 35px !important;
  width: auto !important;
  object-fit: contain;
  display: block;
}
.brand-title-wrap {
  border-left: 1px solid #0E2C45;
  padding-left: 12px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.brand-title-wrap strong {
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: #F4F8FC;
  line-height: 1.2;
}
.brand-title-wrap small {
  color: #A7BED2;
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 0.02em;
  margin-top: 1px;
}

/* Zone 2: Center Floating Pill Dock */
.topbar-center {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  margin: 0 20px;
}
.nav-pill-dock {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 4px 5px;
  background: rgba(2, 11, 20, 0.88);
  border: 1px solid #0E2C45;
  border-radius: 999px;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.4), 0 6px 20px rgba(0, 0, 0, 0.30);
}
.nav-pill-dock button {
  border: 0;
  background: transparent;
  color: #A7BED2;
  font-size: 11.5px;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 999px;
  cursor: pointer;
  transition: all 0.18s cubic-bezier(0.16, 1, 0.3, 1);
  white-space: nowrap;
  letter-spacing: -0.01em;
  outline: 0;
}
.nav-pill-dock button:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.08);
}
.nav-pill-dock button.active {
  color: #ffffff !important;
  background: linear-gradient(180deg, #0A74FF 0%, #085CD6 100%) !important;
  box-shadow: 0 2px 10px rgba(10, 116, 255, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.25) !important;
  font-weight: 650;
}

/* Zone 3: Right Utilities & Authentication */
.topbar-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
}
.nav-search-pill {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 34px;
  width: 195px;
  padding: 0 12px;
  background: rgba(3, 16, 27, 0.88);
  border: 1px solid #0E2C45;
  border-radius: 999px;
  transition: all 0.2s ease;
}
.nav-search-pill:focus-within {
  border-color: #1597FF;
  box-shadow: 0 0 0 3px rgba(21, 151, 255, 0.18);
  background: rgba(4, 18, 30, 0.98);
  width: 220px;
}
.nav-search-pill input {
  border: 0;
  background: transparent;
  color: #F4F8FC;
  font-size: 11px;
  outline: 0;
  width: 100%;
}
.nav-search-pill input::placeholder {
  color: #66859E;
}
.nav-return-link {
  display: flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(6, 24, 38, 0.7);
  border: 1px solid #0E2C45;
  color: #A7BED2;
  text-decoration: none;
  font-size: 11px;
  font-weight: 600;
  transition: all 0.15s ease;
  white-space: nowrap;
}
.nav-return-link:hover {
  color: #ffffff;
  border-color: #16466B;
  background: rgba(10, 34, 54, 0.9);
}
#authArea {
  display: flex;
  align-items: center;
  margin-left: 2px;
}
#signInBtn {
  display: none;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 16px;
  border-radius: 999px;
  background: linear-gradient(135deg, #0A74FF, #1597FF);
  color: #ffffff;
  text-decoration: none;
  font-size: 11px;
  font-weight: 700;
  box-shadow: 0 4px 14px rgba(21, 151, 255, 0.35);
  transition: all 0.15s ease;
}
#signInBtn:hover {
  filter: brightness(1.1);
  box-shadow: 0 6px 18px rgba(21, 151, 255, 0.45);
}
#userChip {
  display: none;
  align-items: center;
  position: relative;
}
#userMenuBtn {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 0 12px 0 4px;
  border-radius: 999px;
  background: rgba(6, 24, 38, 0.85);
  border: 1px solid #0E2C45;
  color: #F4F8FC;
  cursor: pointer;
  transition: all 0.15s ease;
}
#userMenuBtn:hover {
  border-color: #16466B;
  background: rgba(10, 34, 54, 0.95);
}
.user-avatar-circle {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: linear-gradient(145deg, #1597FF, #0A74FF);
  display: grid;
  place-items: center;
  font-size: 11px;
  font-weight: 750;
  color: #fff;
  box-shadow: 0 2px 8px rgba(10, 116, 255, 0.4);
}
#userDropdown {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 200;
  min-width: 195px;
  background: #04121E;
  border: 1px solid #0E2C45;
  border-radius: 12px;
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.6);
  padding: 6px;
  backdrop-filter: blur(16px);
}
@media (max-width: 1380px) {
  .nav-pill-dock button {
    padding: 6px 10px;
    font-size: 10.5px;
  }
  .nav-search-pill {
    width: 155px;
  }
  .brand-title-wrap strong {
    font-size: 12.5px;
  }
}
@media (max-width: 1220px) {
  .nav-return-link {
    display: none;
  }
}
