:root{
  --navy:#081C34;--navy2:#102A46;--navy3:#123658;--teal:#0F766E;--cyan:#06B6D4;--blue:#2563EB;--blue2:#0EA5E9;--violet:#8B5CF6;--green:#10B981;--amber:#F59E0B;--red:#EF4444;--bg:#F6F9FD;--surface:#fff;--border:#DFE7F1;--text:#0F172A;--muted:#64748B;--muted2:#94A3B8;--shadow:0 1px 2px rgba(15,23,42,.04),0 8px 28px rgba(15,23,42,.055)
}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button,a,select,input{outline-color:#60a5fa}button{cursor:pointer}.auth-body{background:#fff}.app-shell{min-height:100vh;display:grid;grid-template-columns:228px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;overflow:hidden;background:radial-gradient(circle at 80% 75%,rgba(6,182,212,.14),transparent 24%),linear-gradient(180deg,#081c34 0%,#09213b 58%,#07192c 100%);padding:22px 12px 16px;color:#cbd5e1;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px}.sidebar .brand{padding:0 8px 21px}.brand-copy{display:block;min-width:0}.brand-copy strong{display:block;color:#fff;font-size:14px;letter-spacing:.18em;white-space:nowrap}.brand-copy small{display:block;color:#5ee7ff;font-size:7px;letter-spacing:.31em;margin-top:4px;white-space:nowrap}.brand-mark{position:relative;width:36px;height:31px;display:inline-block;flex:0 0 auto}.node{position:absolute;width:9px;height:9px;border:2px solid #27d7f5;border-radius:50%;background:#0c2946;z-index:2}.n1{left:1px;top:12px}.n2{right:1px;top:1px}.n3{left:17px;bottom:1px}.bond{position:absolute;left:8px;top:15px;height:2px;background:#27d7f5;transform-origin:left;z-index:1}.b1{width:22px;transform:rotate(-29deg)}.b2{width:18px;transform:rotate(39deg)}
.nav{display:grid;gap:4px}.nav-item{height:44px;padding:0 12px;border:1px solid transparent;border-radius:8px;display:flex;align-items:center;gap:12px;font-size:13px;color:#cbd5e1;transition:.15s ease}.nav-item:hover{background:rgba(255,255,255,.055);color:white}.nav-item.active{background:linear-gradient(90deg,rgba(37,99,235,.28),rgba(14,165,233,.18));border-color:rgba(34,211,238,.35);box-shadow:inset 3px 0 #22c7f2;color:#fff}.nav-icon{width:22px;text-align:center;font-size:18px;color:#b6d9ff}.side-footer{margin-top:auto;border-top:1px solid rgba(148,163,184,.14);padding:17px 11px 2px;font-size:9px;letter-spacing:.27em;color:#b4dfff;line-height:2}.side-footer div:nth-child(2){color:#3fe8ff}.side-footer small{display:block;margin-top:26px;color:#718aa5;letter-spacing:.08em;font-size:8px}.side-molecule{position:absolute;left:-20px;bottom:130px;width:205px;height:210px;opacity:.38;background:radial-gradient(circle at 28% 60%,rgba(34,211,238,.72) 0 5px,transparent 6px),radial-gradient(circle at 50% 28%,rgba(34,211,238,.58) 0 7px,transparent 8px),radial-gradient(circle at 78% 65%,rgba(96,165,250,.7) 0 8px,transparent 9px)}.side-molecule:before,.side-molecule:after{content:"";position:absolute;height:1px;background:linear-gradient(90deg,transparent,#4ce2f9,transparent);width:160px;left:12px;top:108px;transform:rotate(-28deg)}.side-molecule:after{top:121px;transform:rotate(24deg)}
.main-shell{min-width:0}.topbar{height:64px;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:15}.project-switcher,.top-actions{display:flex;align-items:center;gap:11px}.project-app-icon{width:34px;height:34px;border:1px solid var(--border);border-radius:7px;display:grid;place-items:center;color:#245a94;background:#f8fbff}.project-switcher label{border:1px solid var(--border);height:44px;border-radius:7px;padding:5px 10px;min-width:230px;display:grid;align-content:center;background:#fff}.project-switcher label>span{font-size:9px;color:#64748b;line-height:1}.project-switcher select{border:0;background:transparent;padding:0;font-weight:700;color:#10264b;min-width:200px}.status-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;font-size:10px;font-weight:700}.status-pill.success{background:#e8f9f0;color:#0a8a5e}.status-pill i{width:7px;height:7px;border-radius:50%;background:currentColor}.global-search{height:38px;width:315px;border:1px solid var(--border);border-radius:8px;background:#fbfdff;display:flex;align-items:center;padding:0 10px;gap:7px;color:#8ba0b7}.global-search input{border:0;background:transparent;min-width:0;flex:1;color:#64748b}.global-search kbd{font-size:9px;border:1px solid #dce4ee;border-radius:4px;padding:2px 5px;color:#8ca0b5;background:white}.icon-btn{border:0;background:transparent;color:#2a4d74;width:34px;height:34px;border-radius:8px;display:grid;place-items:center}.icon-btn:hover{background:#f1f5f9}.avatar{width:34px;height:34px;border-radius:50%;background:#203f62;color:white;display:grid;place-items:center;font-size:11px;font-weight:800}.logout{font-size:10px;color:#8493a6}.page{padding:22px 18px 34px}.flash-stack{position:fixed;right:24px;top:78px;z-index:100;display:grid;gap:8px}.flash{padding:11px 14px;border-radius:8px;border:1px solid;box-shadow:var(--shadow);font-size:12px;background:white}.flash.success{border-color:#a7f3d0;color:#047857}.flash.error{border-color:#fecaca;color:#b91c1c}.flash.warning{border-color:#fde68a;color:#92400e}.auth-flashes{position:fixed;z-index:40;right:25px;top:25px;max-width:420px}
.page-banner{min-height:98px;display:flex;justify-content:space-between;align-items:flex-start;padding:4px 12px 15px;position:relative;overflow:hidden}.page-banner h1{font-size:31px;line-height:1.05;margin:5px 0 4px;color:#0f2448;letter-spacing:-.025em}.page-banner p{margin:0;color:#3f5f8a;font-size:14px}.eyebrow{font-size:9px;letter-spacing:.27em;color:#41618c;font-weight:800}.banner-copy{text-align:left;font-size:9px;letter-spacing:.29em;line-height:1.7;color:#294b75;padding:7px 72px 0 0;position:relative;z-index:1}.banner-copy b{font-size:10px}.coffee-banner:before{content:"";position:absolute;inset:-12px 0 0 44%;background:radial-gradient(circle at 35% 55%,rgba(126,164,199,.24),transparent 28%),linear-gradient(110deg,transparent 0,rgba(215,230,243,.62) 35%,rgba(244,248,252,.2) 72%);opacity:.85;pointer-events:none}.coffee-banner:after{content:"";position:absolute;width:220px;height:110px;right:-25px;top:-18px;border-radius:60% 0 0 70%;background:radial-gradient(circle at 60% 50%,#7b2234 0 4px,transparent 5px),radial-gradient(circle at 72% 40%,#a63e51 0 5px,transparent 6px),radial-gradient(circle at 50% 33%,#7f2d3d 0 5px,transparent 6px),radial-gradient(circle at 84% 58%,#b54b58 0 6px,transparent 7px),radial-gradient(ellipse at 32% 30%,rgba(34,118,73,.75),transparent 42%);opacity:.5}
.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow)}.card-head{min-height:60px;padding:14px 16px 10px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.card-head h3,.workspace-head h3{margin:0;color:#112650;font-size:14px}.card-head p,.workspace-head p{margin:3px 0 0;font-size:10px;color:#667d99}.title-with-icon{display:flex;align-items:center;gap:10px}.large-icon{width:36px;height:36px;border-radius:8px;background:#edf4ff;color:#2d6ff0;display:grid;place-items:center;font-size:20px}.btn{height:38px;border:1px solid var(--border);border-radius:7px;padding:0 14px;background:#fff;color:#17345f;font-weight:700;font-size:11px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.14s}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px rgba(15,23,42,.08)}.btn:disabled{opacity:.48;cursor:not-allowed}.btn.small{height:31px;padding:0 10px;font-size:9px}.btn-primary{border-color:#1b70ed;background:linear-gradient(90deg,#1267ed,#239df0);color:#fff}.btn-soft{background:#fff;border-color:#d9e4f0}.btn-success{background:#14ad69;border-color:#0f9f60;color:#fff}.btn-wide{width:100%}.text-link,.table-action{color:#176cf0;font-size:10px;font-weight:700}.badge{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:700}.badge.success{background:#dff8ec;color:#07835a}.badge.warning{background:#fff3d8;color:#b36900}.badge.danger{background:#fee8e8;color:#ba2f2f}.badge.info{background:#eaf3ff;color:#1b64ca}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.green{background:#17bd7a}.dot.blue{background:#2c7bf1}.dot.violet{background:#8a4cf2}.dot.amber{background:#f2a40a}
.kpi-grid{display:grid;gap:10px;margin-bottom:12px}.kpi-grid.six{grid-template-columns:repeat(6,minmax(0,1fr))}.kpi-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi-card{min-height:114px;border:1px solid var(--border);background:#fff;border-radius:9px;box-shadow:var(--shadow);padding:15px;display:flex;gap:11px;align-items:flex-start}.kpi-card:hover{border-color:#c7d8eb}.kpi-icon{width:37px;height:37px;border-radius:9px;background:#edf5ff;color:#2675ef;display:grid;place-items:center;font-size:19px;flex:0 0 auto}.kpi-icon.green{background:#e5faf0;color:#0eae6a}.kpi-icon.violet{background:#f2eeff;color:#7a55ec}.kpi-card small{display:block;font-size:9px;color:#657b96}.kpi-card strong{display:block;font-size:25px;line-height:1.06;margin-top:4px;color:#10264b}.kpi-card strong.date-value{font-size:17px;margin-top:8px}.kpi-card em{display:block;font-style:normal;font-size:8px;color:#8da0b5;margin-top:4px}.pipeline-card{margin-bottom:12px}.pipeline{padding:7px 28px 19px;display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr auto 1fr auto 1fr auto 1fr auto;align-items:start}.pipe-step{text-align:center;min-width:66px;color:#6b809b}.pipe-step span{margin:auto;width:26px;height:26px;border-radius:50%;background:#edf2f7;color:#9aabbd;display:grid;place-items:center;font-size:10px;font-weight:800}.pipe-step b{display:block;font-size:10px;color:#284364;margin-top:5px}.pipe-step small{display:block;font-size:8px;color:#91a1b3;margin-top:2px}.pipe-step.done span{background:#1d9e79;color:white}.pipe-step.current span{background:#2563eb;color:white}.pipe-line{height:2px;background:#d9e3ee;margin-top:12px}.pipe-line.done{background:#1d9e79}.dashboard-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:12px;margin-bottom:12px}.chart-card{min-height:340px}.bar-chart{padding:3px 15px 17px;max-height:270px;overflow:auto}.bar-row{height:28px;display:grid;grid-template-columns:130px 1fr 48px;gap:8px;align-items:center;font-size:9px}.bar-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#405a7a}.bar-row>div{height:9px;background:#f0f4f8;border-radius:99px;overflow:hidden}.bar-row i{display:block;height:100%;background:#27a2ef;border-radius:99px}.bar-row i.good{background:#13b77a}.bar-row i.warn{background:#f0a20d}.bar-row b{text-align:right;color:#223f65}.empty-chart{min-height:245px;display:grid;place-content:center;text-align:center;padding:30px;color:#7b8ea4}.empty-chart.compact{min-height:100px}.empty-chart h4{margin:9px 0 5px;color:#375272}.empty-chart p{margin:0;font-size:11px;max-width:360px}.empty-plot{font-size:42px;color:#83a9d2}.planned-plot{height:262px;margin:3px 15px 17px;border:1px solid #e7edf4;background:linear-gradient(#fff,#fbfdff),linear-gradient(90deg,#edf2f7 1px,transparent 1px),linear-gradient(#edf2f7 1px,transparent 1px);background-size:auto,48px 48px,48px 48px;position:relative;overflow:hidden}.planned-plot .cluster{position:absolute;width:120px;height:65px;border-radius:50%;opacity:.16}.planned-plot .c1{left:18%;top:36%;background:#10b981;transform:rotate(-22deg)}.planned-plot .c2{left:48%;top:22%;background:#2563eb;transform:rotate(-10deg)}.planned-plot .c3{left:61%;top:57%;background:#8b5cf6;transform:rotate(17deg)}.planned-plot .cluster:after{content:"";position:absolute;left:22px;top:20px;width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:18px 11px currentColor,34px -5px currentColor,47px 17px currentColor,65px -3px currentColor,75px 21px currentColor,90px 7px currentColor;opacity:4}.planned-plot span{position:absolute;left:16px;right:16px;bottom:12px;padding:8px 10px;border-radius:6px;background:rgba(255,255,255,.9);font-size:9px;color:#6f849e;border:1px solid #e2e8f0}.dashboard-bottom{display:grid;grid-template-columns:1.1fr .9fr;gap:12px}.activity-list{padding:0 16px 14px}.activity{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;min-height:52px;border-bottom:1px solid #eef2f7}.activity-dot{width:21px;height:21px;border-radius:50%;background:#16b875;color:white;display:grid;place-items:center;font-size:10px}.activity b{display:block;font-size:10px;color:#243f63}.activity small{display:block;font-size:8px;color:#8a9aad;margin-top:2px;max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity time{font-size:8px;color:#7f91a6}
.projects-layout{display:grid;grid-template-columns:360px 1fr;gap:14px}.create-project{padding-bottom:18px}.form-grid{display:grid;gap:13px;padding:3px 16px}.form-grid label,.parameter-panel label,.sample-select-wrap label{font-size:10px;font-weight:700;color:#375170}.form-grid input,.form-grid textarea,.parameter-panel input,.parameter-panel select,.sample-select-wrap select,.class-select,.boundary-inputs input,.inline-upload select{width:100%;border:1px solid #dbe5ef;border-radius:7px;background:#fff;color:#18345c;padding:9px 10px;margin-top:5px}.form-grid textarea{resize:vertical}.project-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-content:start}.project-card{padding:17px;min-height:158px}.project-card-top{display:flex;justify-content:space-between}.file-symbol{font-size:28px;color:#6d77e8}.project-card h3{margin:13px 0 5px;color:#122a52}.project-card p{font-size:10px;color:#73869b;min-height:28px}.project-meta{display:flex;justify-content:space-between;border-top:1px solid #eef2f7;padding-top:10px;margin-top:11px;font-size:9px;color:#8092a7}.empty-project,.placeholder-module{text-align:center;padding:40px 24px}.empty-project h3,.placeholder-module h2{color:#294664}.empty-project p,.placeholder-module p{color:#6d8199;font-size:12px;max-width:680px;margin:0 auto 20px}
.project-summary{margin-bottom:12px}.summary-kv{display:grid;grid-template-columns:repeat(6,1fr);padding:0 16px 16px}.summary-kv>div{padding:7px 12px;border-right:1px solid #e8eef5}.summary-kv>div:first-child{padding-left:0}.summary-kv>div:last-child{border-right:0}.summary-kv span{font-size:9px;color:#72869f;display:block}.summary-kv b{font-size:11px;color:#1b365c}.summary-panels{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px}.small-summary{min-height:178px}.role-list{padding:0 16px 14px}.role-list>div{height:27px;display:grid;grid-template-columns:15px 1fr 35px;align-items:center;font-size:10px}.role-list b{text-align:right}.future-info,.milestone-box{margin:0 16px 15px;border-radius:7px;background:#f7faff;border:1px solid #e1e9f3;padding:13px;color:#526b89}.future-info span,.future-info b,.future-info small,.milestone-box b,.milestone-box small{display:block}.future-info span{font-size:9px}.future-info b{font-size:11px;color:#294967;margin:5px 0}.future-info small,.milestone-box small{font-size:9px;line-height:1.5}.milestone-box b{font-size:10px;line-height:1.7;color:#185ebd}.sample-table-card{overflow:hidden}.table-scroll{overflow:auto;padding:0 14px 14px}.scientific-table{width:100%;border-collapse:collapse;font-size:10px}.scientific-table th{text-align:left;padding:10px 9px;background:#f6f9fc;color:#49617d;font-size:8px;letter-spacing:.02em;border-bottom:1px solid #dfe7f0;white-space:nowrap}.scientific-table td{padding:9px;border-bottom:1px solid #edf2f7;color:#314d6e;white-space:nowrap}.scientific-table tbody tr:hover td{background:#fbfdff}.scientific-table b{color:#19385f}.empty-cell{text-align:center!important;color:#8fa0b2!important;padding:24px!important}.class-select{margin:0;padding:5px 7px;font-size:9px;min-width:110px}
.action-bar{display:flex;justify-content:flex-end;gap:8px;margin:-3px 0 10px}.inline-upload{display:flex;gap:8px}.inline-upload select{width:auto;min-width:130px;margin:0;height:38px;padding:0 8px}.raw-workspace{display:grid;grid-template-columns:280px minmax(380px,.9fr) minmax(450px,1.1fr);gap:10px;min-height:690px}.file-browser,.file-detail,.transition-panel{min-width:0;overflow:hidden}.workspace-head{min-height:62px;padding:13px 14px 8px;display:flex;align-items:flex-start;justify-content:space-between;border-bottom:1px solid #ebf0f5}.tabs{height:38px;display:flex;border-bottom:1px solid #e8eef5;padding:0 8px}.tabs button{border:0;background:transparent;color:#6b7f96;font-size:9px;font-weight:700;padding:0 8px;border-bottom:2px solid transparent}.tabs button.active{color:#1f6feb;border-bottom-color:#2563eb}.tabs b{font-size:8px;background:#edf3fb;padding:2px 4px;border-radius:4px}.mini-search{height:44px;margin:9px 10px;display:flex;align-items:center;gap:6px;border:1px solid #dce5ef;border-radius:7px;padding:0 9px;color:#91a2b4}.mini-search input{border:0;width:100%;font-size:10px;color:#415c7d}.file-list{height:532px;overflow:auto}.file-row{width:100%;border:0;border-bottom:1px solid #eef2f7;background:#fff;min-height:42px;padding:0 9px;display:flex;align-items:center;gap:7px;text-align:left;font-size:9px;color:#31506f}.file-row:hover,.file-row.active{background:#eaf4ff}.file-row.active{box-shadow:inset 3px 0 #2584ed}.file-check{color:#91a4b8}.file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.browser-foot{height:42px;border-top:1px solid #edf2f7;display:flex;align-items:center;justify-content:space-between;padding:0 12px;font-size:8px;color:#71869f}.browser-foot a{color:#1e6eef}.detail-tabs{height:39px;display:flex;border-bottom:1px solid #e6edf4;padding:0 10px}.detail-tabs button{border:0;background:transparent;color:#657d99;font-size:9px;padding:0 10px;border-bottom:2px solid transparent}.detail-tabs button.active{color:#1f6feb;border-bottom-color:#2a73ed}.file-meta{display:grid;grid-template-columns:1fr 1fr;padding:13px 16px 10px;gap:9px 18px;min-height:175px}.file-meta>div{border-bottom:1px solid #eff3f7;padding-bottom:6px}.file-meta span{display:block;font-size:8px;color:#74889f}.file-meta b{font-size:10px;color:#2a4668}.file-meta .meta-error{grid-column:1/-1}.file-meta .meta-error b{color:#b64242;white-space:normal}.empty-detail{display:grid!important;place-content:center;color:#93a4b6!important;text-align:center}.signal-section{border-top:1px solid #e9eef5;padding-bottom:10px}.section-title{padding:10px 14px 0;display:flex;justify-content:space-between}.section-title h4{margin:0;font-size:10px;color:#294a70}.section-title p{margin:3px 0 0;font-size:8px;color:#8495a9}.select-chip{font-size:8px;color:#506b8d;background:#f7faff;border:1px solid #dce6f0;border-radius:6px;padding:5px 8px;height:max-content}.signal-chart{height:235px;margin:7px 11px;position:relative}.signal-chart svg{width:100%;height:100%;display:block}.chart-placeholder{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:#91a2b4;font-size:10px}.signal-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:0 12px}.signal-kpis>div{border:1px solid #e1e8f0;border-radius:6px;padding:7px}.signal-kpis span{display:block;font-size:7px;color:#7b8fa6}.signal-kpis b{font-size:9px;color:#244568}.transition-table-wrap{height:535px;overflow:auto;padding:0 8px}.transition-table{font-size:9px}.transition-row{cursor:pointer}.transition-row.active td{background:#dcecff!important}.transition-foot{height:53px;border-top:1px solid #e7edf5;display:flex;align-items:center;justify-content:space-between;padding:0 11px;font-size:8px;color:#72879e}.scientific-note{margin-top:10px;border:1px solid #d7e6f4;border-radius:7px;padding:10px 13px;background:#f3f8ff;color:#466482;font-size:9px;line-height:1.6}.scientific-note.compact{margin:13px 0 0}.scientific-note code{font-size:8px;color:#235a9a}.empty-list{min-height:100px;display:grid;place-content:center;text-align:center;color:#8b9db1;font-size:9px}.empty-list b,.empty-list span{display:block}
.chroma-workspace{display:grid;grid-template-columns:290px minmax(520px,1fr) 310px;gap:10px}.feature-browser{height:720px;overflow:hidden}.sample-select-wrap{padding:10px 12px 0}.sample-select-wrap select{margin-top:5px}.peak-list{height:570px;overflow:auto}.peak-item{width:100%;min-height:53px;border:0;border-bottom:1px solid #edf2f7;background:#fff;text-align:left;padding:8px 12px;display:flex;justify-content:space-between;align-items:center}.peak-item:hover,.peak-item.active{background:#ebf5ff}.peak-item.active{box-shadow:inset 3px 0 #2a7ae9}.peak-item b{display:block;font-size:10px;color:#264666}.peak-item small{display:block;margin-top:3px;font-size:8px;color:#7f92a7}.peak-item i{width:8px;height:8px;border-radius:50%;background:#b6c3d1}.peak-item.active i{background:#f2a20d}.chroma-center{display:grid;gap:10px}.chromatogram-card{min-height:520px}.legend{display:flex;gap:14px;padding:0 16px 2px;font-size:8px;color:#627891}.leg{width:16px;height:2px;display:inline-block;vertical-align:middle;margin-right:4px;background:#94a3b8}.leg.qual{background:#10b981}.leg.baseline{border-top:2px dashed #10b981;background:transparent}.leg.bound{border-top:2px dashed #06b6d4;background:transparent}.leg.apex{border-top:2px dashed #ef4444;background:transparent}.chrom-chart-wrap{height:393px;margin:5px 12px 0;position:relative}.chrom-chart-wrap svg{width:100%;height:100%;touch-action:none}.chart-hint{padding:0 15px 13px;font-size:8px;color:#74889d}.overlay-card{min-height:190px}.planned-overlay{height:127px;margin:0 14px 12px;position:relative;overflow:hidden;border:1px solid #e6edf5;background:linear-gradient(#fff,#fbfdff)}.planned-overlay svg{width:100%;height:100%;opacity:.9}.planned-overlay span{position:absolute;right:8px;bottom:8px;background:rgba(255,255,255,.92);border:1px solid #e2e8f0;border-radius:5px;padding:5px 7px;font-size:7px;color:#7f91a5}.peak-info{height:max-content;min-height:650px}.peak-kv{padding:3px 14px}.peak-kv>div{display:grid;grid-template-columns:105px 1fr;gap:10px;min-height:31px;align-items:center;border-bottom:1px solid #edf2f7}.peak-kv span{font-size:8px;color:#72879f}.peak-kv b{font-size:9px;color:#284568;word-break:break-word}.boundary-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 14px 0}.boundary-inputs label{font-size:8px;color:#677e98;font-weight:700}.boundary-inputs input{margin-top:4px;padding:7px 8px}.peak-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:12px 14px 0}
.qc-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:12px}.parameter-panel{padding-bottom:14px}.parameter-panel label{display:block;margin:10px 14px}.parameter-panel input,.parameter-panel select{margin-top:5px}.normalization-seq{margin:15px 14px;display:flex;align-items:center;gap:5px;font-size:8px;color:#7e8fa3}.normalization-seq span{padding:7px 8px;background:#edf4ff;color:#2967be;border-radius:6px}.parameter-panel>.btn{margin:0 14px;width:calc(100% - 28px)}.matrix-wrap{padding:0 14px 16px;overflow:auto}.matrix{font-size:9px}.matrix th,.matrix td{padding:7px 8px}.roadmap-row{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:20px 0}.roadmap-row span{padding:8px 10px;background:#f2f5f8;border-radius:6px;color:#77899e;font-size:9px}.roadmap-row .done{background:#e9f9f1;color:#07855b}
.login-layout{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.login-hero{position:relative;overflow:hidden;padding:56px 64px;color:#fff;background:radial-gradient(circle at 78% 34%,rgba(24,160,238,.25),transparent 26%),radial-gradient(circle at 20% 84%,rgba(22,119,184,.17),transparent 22%),linear-gradient(145deg,#07182b,#0c2d50 75%,#143c65)}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(148,163,184,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.05) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(180deg,transparent,black 30%,black 82%,transparent)}.hero-brand{position:relative;z-index:2}.hero-brand .brand-copy strong{font-size:24px;letter-spacing:.2em}.hero-brand .brand-copy small{font-size:9px}.hero-brand .brand-mark{width:50px;height:42px;transform:scale(1.25);transform-origin:left center}.hero-kicker{position:relative;z-index:2;margin-top:82px;color:#dbeafe;font-size:13px;letter-spacing:.25em}.login-hero h1{position:relative;z-index:2;font-size:39px;line-height:1.14;letter-spacing:-.025em;margin:60px 0 18px;max-width:650px}.login-hero h1 em{font-style:normal;color:#31b6ff}.login-hero>p{position:relative;z-index:2;color:#b9d2eb;max-width:540px;line-height:1.7;font-size:14px}.hero-features{position:relative;z-index:2;display:grid;gap:16px;margin-top:35px}.hero-features>div{display:flex;align-items:center;gap:14px}.hero-feature-icon{width:45px;height:45px;border:1px solid #24c9ec;border-radius:50%;display:grid;place-items:center;color:#e7fbff;font-size:21px}.hero-features p{margin:0}.hero-features b{display:block;font-size:12px}.hero-features small{font-size:9px;color:#9fc2e1}.hero-chroma{position:absolute;right:-20px;bottom:57px;width:58%;height:250px;opacity:.7}.hero-foot{position:absolute;left:64px;bottom:61px;display:grid;gap:4px;font-size:8px;letter-spacing:.32em;color:#d8e9f9}.hero-foot span:last-child{color:#30d8f7}.login-panel{position:relative;display:grid;place-items:center;background:linear-gradient(180deg,#fff,#f9fcff);padding:50px}.science-today{position:absolute;right:84px;top:55px;text-align:center;color:#536b96;font-size:8px;letter-spacing:.35em;line-height:2.2}.science-today span{display:block;width:34px;height:1px;background:#18b9db;margin:8px auto}.login-card{width:min(490px,100%);border:1px solid #e1e8f0;border-radius:11px;background:white;box-shadow:0 14px 35px rgba(22,46,81,.06);padding:36px 37px}.login-card h2{text-align:center;margin:0;color:#0f2148;font-size:23px}.login-card>p{text-align:center;margin:6px 0 30px;color:#566d95;font-size:13px}.login-card>label{display:block;font-size:10px;font-weight:800;color:#18335e;margin-bottom:15px}.login-card input{width:100%;height:44px;border:1px solid #cfdbea;border-radius:8px;margin-top:6px;padding:0 12px;color:#18385f}.login-options{display:flex;justify-content:space-between;align-items:center;margin:4px 0 19px;font-size:10px;color:#455d83}.login-options .check{display:flex;align-items:center;gap:6px}.login-options input{width:auto;height:auto;margin:0}.fake-link{color:#1268ed}.or{text-align:center;position:relative;margin:21px 0 13px;font-size:9px;color:#7789a4}.or:before,.or:after{content:"";position:absolute;top:50%;height:1px;background:#e4eaf0;width:36%}.or:before{left:0}.or:after{right:0}.or span{background:white;position:relative;z-index:2;padding:0 9px}.btn-provider{width:100%;margin-bottom:9px;background:white}.btn-provider small{margin-left:auto;color:#94a3b8;font-weight:500}.login-meta{text-align:center;font-size:8px;color:#667c9f;letter-spacing:.08em;margin-top:31px}.setup-hero h1{margin-top:95px}
@media(max-width:1320px){.kpi-grid.six{grid-template-columns:repeat(3,1fr)}.raw-workspace{grid-template-columns:250px 1fr}.transition-panel{grid-column:1/-1}.transition-table-wrap{height:360px}.chroma-workspace{grid-template-columns:250px 1fr}.peak-info{grid-column:1/-1}.summary-kv{grid-template-columns:repeat(3,1fr)}.summary-kv>div:nth-child(3){border-right:0}.summary-kv>div{border-bottom:1px solid #eef2f7}.global-search{display:none}}
@media(max-width:980px){.app-shell{grid-template-columns:72px 1fr}.sidebar{padding:18px 7px}.sidebar .brand-copy,.nav-item span:not(.nav-icon),.side-footer,.side-molecule{display:none}.sidebar .brand{justify-content:center;padding-left:0;padding-right:0}.nav-item{justify-content:center;padding:0}.project-switcher label{min-width:170px}.project-switcher select{min-width:140px}.status-pill{display:none}.dashboard-grid,.dashboard-bottom,.projects-layout,.summary-panels,.qc-layout{grid-template-columns:1fr}.project-cards{grid-template-columns:1fr 1fr}.login-layout{grid-template-columns:1fr}.login-hero{display:none}.page{padding:15px 10px}.raw-workspace,.chroma-workspace{grid-template-columns:1fr}.file-browser{height:480px}.file-list{height:310px}.feature-browser{height:500px}.peak-list{height:345px}.transition-panel,.peak-info{grid-column:auto}.action-bar{justify-content:flex-start;flex-wrap:wrap}}
@media(max-width:680px){.topbar{padding:0 10px}.project-app-icon,.top-actions .icon-btn,.logout{display:none}.project-switcher label{min-width:135px}.project-switcher select{min-width:110px;width:110px}.page-banner{min-height:88px}.page-banner h1{font-size:25px}.banner-copy{display:none}.kpi-grid.six,.kpi-grid.four{grid-template-columns:1fr 1fr}.pipeline{overflow:auto;grid-template-columns:repeat(13,72px)}.project-cards{grid-template-columns:1fr}.summary-kv{grid-template-columns:1fr 1fr}.summary-kv>div:nth-child(3){border-right:1px solid #e8eef5}.action-bar{display:grid;grid-template-columns:1fr 1fr}.inline-upload{grid-column:1/-1}.inline-upload select{flex:1}.login-panel{padding:20px}.login-card{padding:27px 22px}.science-today{display:none}.peak-actions{grid-template-columns:1fr}.boundary-inputs{grid-template-columns:1fr}.dashboard-grid,.dashboard-bottom{display:block}.dashboard-grid>.card,.dashboard-bottom>.card{margin-bottom:10px}}

/* METABOLYSIS Web v0.2 — Production Raw Data Engine */
.hidden{display:none!important}.btn-danger{background:#fff5f5;border-color:#fecaca;color:#b91c1c}.detail-head-actions{display:flex;align-items:center;gap:7px}.raw-job-panel{margin:-2px 0 10px;padding:13px 15px}.raw-job-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.raw-job-head h3{margin:3px 0 2px;font-size:13px;color:#17345f}.raw-job-head p{margin:0;font-size:9px;color:#71869f}.job-percent{font-size:24px;font-weight:800;color:#1267ed}.job-progress{height:8px;background:#edf3f8;border-radius:999px;overflow:hidden;margin:11px 0 8px}.job-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#1267ed,#19b9dc);border-radius:999px;transition:width .25s ease}.job-meta{display:flex;gap:18px;flex-wrap:wrap;color:#71869f;font-size:8px}.job-current{margin-top:9px;padding:8px 10px;border-radius:7px;background:#f6f9fd;display:flex;justify-content:space-between;gap:12px;font-size:9px;color:#526b88}.job-current b{color:#244568}.batch-validation{margin:-2px 0 10px;padding:13px 15px;font-size:9px;color:#526b88}.validation-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.validation-head>div:first-child{display:flex;align-items:center;gap:10px}.validation-classes{display:flex;gap:12px;flex-wrap:wrap}.validation-issues{display:grid;gap:5px;margin-top:10px}.validation-issues>div{display:flex;gap:8px;align-items:flex-start;border-radius:6px;padding:7px 9px;background:#f8fafc}.validation-issues .error{background:#fff2f2;color:#a92d2d}.validation-issues .warning{background:#fff8e8;color:#9a6500}.validation-issues .info{background:#eef6ff;color:#245e9e}.validation-issues b{font-size:7px;min-width:48px}.validation-issues span{line-height:1.5}.hash-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:8px!important;word-break:break-all}.log-detail{display:block!important;padding:11px 14px!important;max-height:175px;overflow:auto}.parse-log-list{display:grid;gap:5px}.parse-log-list>div{display:grid;grid-template-columns:95px 38px 1fr;align-items:center;gap:8px;border-bottom:1px solid #edf2f7;padding:5px 0}.parse-log-list span{font-size:8px;text-transform:uppercase;color:#426991}.parse-log-list b{font-size:8px;color:#1267ed}.parse-log-list p{margin:0;font-size:8px;color:#6f8298}.empty-log{display:grid;place-content:center;min-height:120px;text-align:center;color:#91a2b4}.file-row .badge{min-width:54px}.file-row[data-status="PROCESSING"] .file-name,.file-row[data-status="QUEUED"] .file-name{color:#0f67c9;font-weight:700}
@media(max-width:980px){.validation-head{align-items:flex-start;flex-direction:column}.raw-job-head{align-items:center}.job-meta{gap:9px}.parse-log-list>div{grid-template-columns:80px 34px 1fr}}

/* METABOLYSIS Web v0.3 — Batch Alignment & Peak Selection */
.workbench-status{margin:-4px 0 10px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:9px;color:#5d7390}.workbench-status>div{display:flex;align-items:center;gap:10px}.workbench-status b{color:#17345f}.workbench-status.ready{border-color:#b8ead4;background:#f4fcf8}.workbench-status.pending{border-color:#f2ddb0;background:#fffaf0}.aligned-overlay{height:190px;position:relative;padding:0 10px 10px}.aligned-overlay svg{width:100%;height:100%;display:block}.overlay-empty{position:absolute;inset:0;display:grid;place-items:center;font-size:9px;color:#8a9caf}.batch-actionbar{padding:13px 15px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;gap:14px}.batch-actionbar h3{margin:3px 0 2px;color:#17345f;font-size:14px}.batch-actionbar p{margin:0;font-size:9px;color:#71869f}.batch-job-card{padding:13px 15px;margin-bottom:10px}.batch-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:12px;margin-top:12px}.batch-table{max-height:430px;overflow:auto}.batch-kpis{margin-top:10px}.warning-note{background:#fff8e8!important;border-color:#f5dfad!important;color:#8b6200!important}.matrix-status-row{display:flex;gap:12px;align-items:center;margin:-2px 0 10px;padding:0 2px;font-size:9px;color:#617894}.matrix-status-row span:not(.badge){padding:6px 9px;border:1px solid var(--border);border-radius:999px;background:#fff}.matrix-status-row b{color:#17345f;margin-left:4px}.overlay-card{min-height:245px}
@media(max-width:1180px){.batch-grid{grid-template-columns:1fr}.batch-actionbar{align-items:flex-start;flex-direction:column}.workbench-status{align-items:flex-start;flex-direction:column}}

/* METABOLYSIS Web v0.3.1 — Chromatogram Overlay & Full Viewer */
.overlay-controls{display:flex;align-items:end;gap:8px;flex-wrap:wrap;padding:0 14px 7px}.overlay-controls label,.full-overlay-controls label{display:grid;gap:4px;font-size:8px;font-weight:700;color:#667e99}.overlay-controls select,.full-overlay-controls select{height:29px;min-width:92px;border:1px solid var(--border);border-radius:6px;background:#fff;color:#284568;padding:0 7px;font-size:9px}.overlay-check{display:flex!important;grid-auto-flow:column;align-items:center;justify-content:start;gap:6px!important;height:29px;padding:0 8px;border:1px solid var(--border);border-radius:6px;background:#fbfdff;white-space:nowrap}.overlay-check input{margin:0}.overlay-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:0 15px 6px;font-size:8px;color:#6e8299}.overlay-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:4px}.overlay-dot.qc{background:#10b981}.overlay-dot.sample{background:#2563eb}.overlay-dot.blank{background:#8b5cf6}.overlay-dot.standard{background:#f59e0b}.overlay-current{margin-left:auto;color:#8798aa}.overlay-card{min-height:300px}.aligned-overlay{height:205px}
body.modal-open{overflow:hidden}.chrom-modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:18px}.chrom-modal-backdrop{position:absolute;inset:0;background:rgba(3,12,25,.72);backdrop-filter:blur(5px)}.chrom-modal-panel{position:relative;z-index:1;width:min(1540px,97vw);height:min(900px,94vh);background:#f8fbff;border:1px solid #b9c9db;border-radius:13px;box-shadow:0 26px 70px rgba(0,0,0,.34);display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;overflow:hidden}.chrom-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:18px 20px 12px;background:#fff;border-bottom:1px solid var(--border)}.chrom-modal-head h2{margin:3px 0 3px;color:#10264b;font-size:22px}.chrom-modal-head p{margin:0;color:#647b95;font-size:10px}.chrom-modal-close{font-size:15px;border:1px solid var(--border);background:#fff}.full-overlay-controls{display:flex;align-items:end;gap:9px;flex-wrap:wrap;padding:10px 20px;background:#fff;border-bottom:1px solid var(--border)}.full-legend{padding:8px 20px;background:#fbfdff;border-bottom:1px solid #edf2f7}.full-chart-wrap{position:relative;min-height:0;margin:12px 16px;background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden}.full-chart-wrap svg{width:100%;height:100%;display:block}.full-chart-wrap .overlay-empty{background:rgba(255,255,255,.93);z-index:2}.full-chart-footer{display:flex;justify-content:space-between;gap:20px;padding:9px 18px 12px;color:#71869e;font-size:8px;background:#fff;border-top:1px solid var(--border)}.full-chart-footer span:first-child{color:#294b74;font-weight:700}.toolbar .btn-primary.small{box-shadow:0 3px 9px rgba(37,99,235,.14)}
@media(max-width:980px){.overlay-current{margin-left:0}.chrom-modal{padding:6px}.chrom-modal-panel{width:99vw;height:98vh}.chrom-modal-head{padding:12px}.chrom-modal-head .toolbar{flex-wrap:wrap;justify-content:flex-end}.full-overlay-controls{padding:8px 12px}.full-chart-wrap{margin:8px}.full-chart-footer{padding:7px 10px;flex-direction:column;gap:3px}}
/* v0.3.2 Full TIC/BPC + single-QGD multi-transition viewer */
.viewer-tabs{flex-wrap:wrap;justify-content:flex-end}.profile-controls{display:flex;align-items:end;gap:9px;flex-wrap:wrap;padding:10px 20px;background:#fff;border-bottom:1px solid var(--border)}.profile-controls label{display:grid;gap:4px;font-size:8px;font-weight:700;color:#667e99}.profile-controls select{height:29px;min-width:110px;border:1px solid var(--border);border-radius:6px;background:#fff;color:#284568;padding:0 7px;font-size:9px}.profile-tip{font-size:8px;color:#71869f;align-self:center}.profile-workspace{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:10px;padding:12px 16px;background:#f8fbff;overflow:hidden}.profile-chart-panel{min-width:0;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);background:#fff;border:1px solid var(--border);border-radius:8px;overflow:hidden}.profile-legend{display:flex;align-items:center;gap:15px;flex-wrap:wrap;padding:9px 12px;border-bottom:1px solid #edf2f7;font-size:8px;color:#60758e}.profile-line{width:18px;height:2px;display:inline-block;vertical-align:middle;margin-right:5px}.profile-line.tic{background:#2563eb}.profile-line.bpc{background:#8b5cf6}.profile-marker-key{width:8px;height:8px;border-radius:50%;display:inline-block;background:#06b6d4;margin-right:5px}.profile-chart-wrap{position:relative;min-height:0}.profile-chart-wrap svg{width:100%;height:100%;display:block}.transition-navigator{min-width:0;min-height:0;background:#fff;border:1px solid var(--border);border-radius:8px;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.transition-nav-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 12px;border-bottom:1px solid #edf2f7}.transition-nav-head h3{font-size:12px;margin:2px 0 0;color:#17345f}.profile-transition-list{overflow:auto;min-height:0}.profile-transition-row{width:100%;border:0;border-bottom:1px solid #edf2f7;background:#fff;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left}.profile-transition-row:hover,.profile-transition-row.selected{background:#eef6ff}.profile-transition-row span b{display:block;color:#264666;font-size:9px}.profile-transition-row span small{display:block;margin-top:2px;color:#7f92a7;font-size:7.5px}.profile-transition-row em{font-style:normal;font-size:7.5px;color:#71869f}.profile-transition-row label{display:flex;align-items:center;gap:7px;min-width:0;flex:1;cursor:pointer}.profile-transition-row label input{margin:0}.transition-open{border:1px solid var(--border);background:#fff;border-radius:5px;width:26px;height:25px;color:#2563eb;cursor:pointer}.transition-open:hover{background:#eff6ff}.profile-rt-marker:hover circle{stroke:#0f172a;stroke-width:2px}.multi-trace-line:hover{stroke-width:4px!important;opacity:1!important}.hidden{display:none!important}
@media(max-width:1100px){.profile-workspace{grid-template-columns:1fr 260px}.viewer-tabs{max-width:680px}}
@media(max-width:820px){.profile-workspace{grid-template-columns:1fr;overflow:auto}.transition-navigator{min-height:280px}.profile-chart-panel{min-height:520px}.viewer-tabs{justify-content:flex-start}.chrom-modal-head{flex-direction:column}}

/* v0.3.3 interactive chromatogram workstation */
.viewer-interaction-controls{display:flex;align-items:end;gap:8px;flex-wrap:wrap;padding:9px 20px;background:#f6faff;border-bottom:1px solid var(--border)}
.viewer-interaction-controls label{display:grid;gap:3px;font-size:8px;font-weight:700;color:#667e99}
.viewer-interaction-controls input{width:92px;height:29px;border:1px solid var(--border);border-radius:6px;background:#fff;color:#284568;padding:0 7px;font-size:9px}
.viewer-tool-group{display:flex;gap:4px;padding:3px;border:1px solid #dbe6f1;border-radius:7px;background:#fff}
.viewer-range-label{margin-left:auto;align-self:center;padding:5px 8px;border:1px solid #dbe6f1;border-radius:999px;background:#fff;color:#617894;font-size:8px;white-space:nowrap}
.viewer-drag-rect{pointer-events:none}
.viewer-selection-rect{pointer-events:none}
.full-chart-wrap svg.tool-zoom,.profile-chart-wrap svg.tool-zoom{cursor:crosshair}
.full-chart-wrap svg.tool-pan,.profile-chart-wrap svg.tool-pan{cursor:grab}
.full-chart-wrap svg.tool-pan.dragging,.profile-chart-wrap svg.tool-pan.dragging{cursor:grabbing}
.full-chart-wrap svg.tool-select,.profile-chart-wrap svg.tool-select{cursor:crosshair}
.window-extract-panel{padding:10px 16px;background:#fffdf7;border-bottom:1px solid #f0dfb8;max-height:240px;overflow:auto}
.window-extract-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.window-extract-head h3{margin:2px 0 2px;color:#17345f;font-size:12px}
.window-extract-head p{margin:0;color:#6e8299;font-size:8px}
.window-extract-summary{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px}
.window-extract-summary span{padding:4px 7px;border-radius:999px;border:1px solid #ead7aa;background:#fff;color:#6b5a2b;font-size:8px}
.window-extract-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:5px;margin-top:8px}
.extract-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border:1px solid #edf1f5;border-radius:7px;background:#fff;padding:7px 8px}
.extract-row:hover{background:#f8fbff;border-color:#d7e6f6}
.extract-row b{display:block;font-size:9px;color:#264666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.extract-row small{display:block;margin-top:2px;font-size:7.5px;color:#7f92a7}
.extract-row .extract-actions{display:flex;gap:4px}
.extract-row .extract-actions button{height:24px;padding:0 7px;border:1px solid var(--border);border-radius:5px;background:#fff;color:#2563eb;font-size:8px;cursor:pointer}
.extract-row .extract-actions button:hover{background:#eff6ff}
.extract-role{font-size:7px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#0f766e}
.viewer-focus-label{font-size:8px;fill:#0f172a;font-weight:700}
@media(max-width:980px){.viewer-range-label{margin-left:0}.window-extract-panel{max-height:300px}.window-extract-list{grid-template-columns:1fr}}
/* Flexible modal stacking for optional v0.3.3 extraction panel. */
.chrom-modal-panel{display:flex;flex-direction:column}
.full-chart-wrap{flex:1 1 auto;min-height:0}
.profile-workspace{flex:1 1 auto;min-height:0}
.full-chart-footer{flex:0 0 auto}

/* v0.3.4 Advanced Chromatogram Review */
.profile-controls input[type="number"]{width:84px;height:29px;border:1px solid var(--border);border-radius:6px;background:#fff;color:#284568;padding:0 7px;font-size:9px}
.viewer-minimap-wrap{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:10px;padding:6px 16px;background:#f9fbfe;border-bottom:1px solid var(--border);flex:0 0 auto}
.viewer-minimap-wrap.hidden{display:none!important}.viewer-minimap-label{display:grid;gap:2px;color:#49647f}.viewer-minimap-label span{font-size:8px;font-weight:800;letter-spacing:.08em}.viewer-minimap-label small{font-size:7px;color:#8394a8}.viewer-minimap-wrap svg{width:100%;height:62px;display:block;cursor:crosshair;border-radius:6px}.minimap-viewport{pointer-events:none}.viewer-tooltip{position:fixed;z-index:420;min-width:165px;max-width:280px;padding:8px 10px;border:1px solid #cbd9e8;border-radius:7px;background:rgba(8,28,52,.96);box-shadow:0 10px 28px rgba(8,28,52,.24);color:#e7f3ff;font-size:8px;pointer-events:none}.viewer-tooltip b{display:block;margin-bottom:4px;color:#fff;font-size:9px}.viewer-tooltip span{display:flex;justify-content:space-between;gap:12px;padding:2px 0;color:#c8daed}.viewer-tooltip strong{color:#fff;font-weight:700}.profile-pick-marker:hover path{stroke-width:2px!important;filter:drop-shadow(0 1px 2px rgba(146,64,14,.3))}.profile-pick-row{border-color:#f4dfae;background:#fffdf7}.class-compare-line:hover{opacity:1!important;stroke-width:3px!important}.full-channel-controls>.eyebrow,.class-compare-controls>.eyebrow{align-self:center;margin-right:2px}.profile-peak-panel{border-color:#f0dfb8}.profile-peak-panel .extract-row{background:#fffdf8}
@media(max-width:900px){.viewer-minimap-wrap{grid-template-columns:1fr;padding:6px 10px}.viewer-minimap-label{display:none}.viewer-minimap-wrap svg{height:52px}}
.profile-pick-key{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:9px solid #f59e0b;display:inline-block;margin-right:5px;vertical-align:middle}

/* v0.3.4.1 — explicit file-to-file reference chromatogram overlay */
.leg.bound{border-top-color:#f59e0b}.reference-overlay-panel{margin:0 12px 7px;border:1px solid #d9e5f2;border-radius:8px;background:#f8fbff;box-shadow:inset 0 1px 0 #fff}.reference-overlay-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:9px 10px 7px;border-bottom:1px solid #e5edf6}.reference-overlay-head b{display:block;margin-top:2px;font-size:9px;color:#244669}.reference-overlay-head small{display:block;margin-top:2px;font-size:7.5px;color:#778aa0}.reference-overlay-tools{display:flex;align-items:end;gap:7px;flex-wrap:wrap;padding:8px 10px}.reference-overlay-tools>label{display:grid;gap:3px;font-size:7.5px;font-weight:700;color:#657d97}.reference-overlay-tools select{height:29px;border:1px solid var(--border);border-radius:6px;background:#fff;color:#284568;padding:0 7px;font-size:8.5px}.mini-search.compact{width:190px;height:29px;margin:0;padding:0 8px}.mini-search.compact input{font-size:8.5px}.reference-file-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;max-height:132px;overflow:auto;padding:0 10px 8px}.reference-file-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px;min-height:39px;padding:5px 7px;border:1px solid #e1eaf4;border-radius:6px;background:#fff;cursor:pointer}.reference-file-row:hover,.reference-file-row.selected{border-color:#9fc8f5;background:#edf6ff}.reference-file-row.disabled{opacity:.48;cursor:not-allowed}.reference-file-row input{margin:0}.reference-file-row span{min-width:0}.reference-file-row b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px;color:#244669}.reference-file-row small{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:6.8px;color:#8192a4}.reference-file-row em{font-style:normal;font-size:6.8px;color:#607b97;background:#f1f5f9;border-radius:999px;padding:3px 5px}.reference-selected{display:flex;gap:5px;align-items:center;flex-wrap:wrap;padding:0 10px 8px}.reference-chip{height:25px;border:1px solid #dbe6f1;border-radius:999px;background:#fff;display:flex;align-items:center;gap:5px;padding:0 7px;color:#294d75;font-size:7.5px;cursor:pointer}.reference-chip:hover{background:#fff5f5;border-color:#fecaca}.reference-chip i,.reference-legend i{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.reference-chip small{font-size:6.5px;color:#8293a5}.muted-mini,.reference-message{font-size:7.5px;color:#7f91a5}.reference-message{color:#b45309}.reference-legend{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:2px 15px 2px;padding:5px 7px;border-radius:6px;background:#f8fafc;border:1px solid #edf2f7;font-size:7.5px;color:#526b86}.reference-legend span{display:flex;align-items:center;gap:4px}.reference-legend small{font-size:6.5px;color:#8a99aa}.reference-legend em{margin-left:auto;font-style:normal;color:#71869f}.reference-trace:hover{stroke-width:3px!important;opacity:1!important}.compact-empty{min-height:36px;grid-column:1/-1}
@media(max-width:1250px){.reference-file-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.reference-file-list{grid-template-columns:1fr}.reference-overlay-tools{align-items:stretch}.reference-overlay-tools .mini-search.compact{width:100%}}

/* v0.3.4.2 — persistent reference lock */
.reference-lock-control{height:29px;display:flex!important;grid-template-columns:auto auto!important;align-items:center;gap:5px!important;padding:0 8px;border:1px solid #dbe6f1;border-radius:6px;background:#fff;color:#365777!important;white-space:nowrap}.reference-lock-control input{margin:0}.reference-lock-control:has(input:checked){border-color:#6ea8e8;background:#edf6ff;color:#184f87!important;box-shadow:inset 0 0 0 1px rgba(37,99,235,.05)}.reference-lock-status{align-self:center;font-size:7.2px;color:#7b8fa4;padding:4px 7px;border-radius:999px;background:#f1f5f9;border:1px solid #e3ebf3;white-space:nowrap}.reference-lock-status.locked{color:#155e75;background:#ecfeff;border-color:#a5f3fc;font-weight:700}.reference-lock-status.warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.reference-chip.locked{border-color:#b8d8f7;background:#f4f9ff}.reference-chip .chip-lock{font-size:6.8px;line-height:1;font-weight:400}.reference-overlay-panel:has(#reference-lock-toggle:checked){border-color:#b8d8f7;box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(37,99,235,.03)}

/* v0.3.5 — Intelligent Peak Review */
.review-intel-status{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.7fr) auto;gap:18px;align-items:center;padding:16px 18px;margin-bottom:14px;border-color:#d8e5f2}.review-intel-status.ready{border-color:#b7e4d4;background:linear-gradient(90deg,#f8fffc,#fff)}.review-intel-status.pending{background:linear-gradient(90deg,#fbfdff,#fff)}.review-intel-status-main{display:flex;align-items:center;gap:12px}.review-intel-status-main h3{margin:3px 0 4px;font-size:14px;color:#17345f}.review-intel-status-main p{margin:0;font-size:9px;color:#6f839b}.review-intel-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#eaf4ff;color:#2563eb;font-size:20px;font-weight:800}.review-intel-status.ready .review-intel-icon{background:#eafbf4;color:#0f9f6e}.review-intel-job{display:grid;gap:5px}.review-intel-job span{font-size:8px;color:#6f839b}.review-progress-track{height:7px;border-radius:999px;background:#e9eff6;overflow:hidden}.review-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#06b6d4);transition:width .25s ease}.review-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}.review-kpi{padding:13px 14px}.review-kpi span{display:block;font-size:8px;color:#6f839b}.review-kpi b{display:block;margin:5px 0 2px;font-size:24px;color:#102a46}.review-kpi small{font-size:7px;color:#91a0b1}.review-kpi.critical{border-color:#fecaca;background:#fffafa}.review-kpi.critical b{color:#b91c1c}.review-kpi.high{border-color:#fed7aa;background:#fffdf8}.review-kpi.high b{color:#c2410c}.review-queue-head{gap:14px}.review-filterbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.review-filterbar input,.review-filterbar select{height:31px;border:1px solid var(--border);border-radius:7px;background:#fff;padding:0 8px;color:#385773;font-size:8px}.review-filterbar input{width:190px}.review-intel-note{margin:0 14px 10px;padding:9px 10px;border:1px solid #dbe8f5;border-radius:7px;background:#f8fbff;color:#58728c;font-size:8px}.review-intel-note b{color:#244669}.review-table td{vertical-align:top}.review-table .reason-cell{max-width:300px;white-space:normal}.reason-cell>span{display:block;color:#405b77}.reason-cell small{display:block;margin-top:4px;color:#8192a4;line-height:1.35}.priority-pill{display:inline-flex;align-items:center;justify-content:center;min-width:74px;height:23px;padding:0 7px;border-radius:999px;border:1px solid;font-size:7px;font-weight:800;letter-spacing:.03em;white-space:nowrap}.priority-pill.critical{color:#991b1b;background:#fef2f2;border-color:#fecaca}.priority-pill.high{color:#9a3412;background:#fff7ed;border-color:#fed7aa}.priority-pill.medium{color:#92400e;background:#fffbeb;border-color:#fde68a}.priority-pill.low{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.priority-pill.unavailable{color:#64748b;background:#f8fafc;border-color:#e2e8f0}.review-flag-list{display:flex;flex-wrap:wrap;gap:3px;max-width:220px}.review-flag-list span,.review-intelligence-flags span{display:inline-flex;align-items:center;min-height:19px;padding:2px 5px;border-radius:999px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;font-size:6.5px;font-weight:700;text-transform:capitalize;white-space:nowrap}.review-flag-list em{font-style:normal;color:#94a3b8}.review-intelligence-panel{margin:10px 0 2px;padding:10px;border:1px solid #d8e5f2;border-radius:9px;background:linear-gradient(180deg,#f9fcff,#fff)}.review-intelligence-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.review-intelligence-head b{display:block;margin-top:3px;color:#244669;font-size:10px}.review-intelligence-metrics{display:grid;grid-template-columns:1fr 1fr;gap:5px 8px;margin-top:8px}.review-intelligence-metrics div{padding:6px 7px;border:1px solid #e8eef5;border-radius:6px;background:#fff}.review-intelligence-metrics span{display:block;font-size:6.8px;color:#7a8ea4}.review-intelligence-metrics b{display:block;margin-top:2px;font-size:8.5px;color:#284b70}.review-intelligence-flags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.review-intelligence-flags .clear{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.review-intelligence-panel>p{margin:8px 0 0;color:#7f91a4;font-size:6.8px;line-height:1.45}
@media(max-width:1250px){.review-intel-status{grid-template-columns:1fr}.review-kpi-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.review-kpi-grid{grid-template-columns:repeat(2,1fr)}.review-filterbar{width:100%}.review-filterbar input{width:100%}.review-intelligence-metrics{grid-template-columns:1fr}}

/* v0.3.6 — Assisted Peak Decision */
.assisted-decision-card{border-color:#cfe1f4;background:linear-gradient(180deg,#fbfdff 0,#fff 38%);overflow:hidden}.assisted-head{align-items:flex-start}.assisted-head h3{margin:2px 0 3px}.assisted-confidence{display:inline-flex;align-items:center;justify-content:center;min-width:96px;height:24px;padding:0 8px;border:1px solid;border-radius:999px;font-size:7px;font-weight:800;letter-spacing:.06em}.assisted-confidence.high{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.assisted-confidence.medium{color:#92400e;background:#fffbeb;border-color:#fde68a}.assisted-confidence.low{color:#64748b;background:#f8fafc;border-color:#e2e8f0}.assisted-confidence.correct{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.assisted-body{padding:0 14px 14px}.assisted-empty{margin:0 14px 14px;padding:11px 12px;border:1px dashed #cfdbe8;border-radius:8px;background:#f8fbff;color:#6f839b;font-size:8px}.assisted-compare-grid{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:8px;align-items:stretch}.assisted-side{border:1px solid #e0e8f1;border-radius:9px;background:#fff;overflow:hidden}.assisted-side.current{box-shadow:inset 3px 0 #64748b}.assisted-side.suggested{box-shadow:inset 3px 0 #2563eb}.assisted-side-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 10px 5px}.assisted-side-head span{display:block;font-size:6.6px;color:#8294a8;letter-spacing:.08em;font-weight:800}.assisted-side-head b{display:block;margin-top:2px;font-size:9px;color:#27496e}.support-score{min-width:58px;height:23px;display:grid;place-items:center;border-radius:999px;background:#eef5ff;color:#1d4ed8;font-size:7px;font-weight:800}.assisted-side svg{display:block;width:100%;height:150px;border-top:1px solid #eef2f6;border-bottom:1px solid #eef2f6;background:linear-gradient(#fff,#fbfdff)}.assisted-arrow{display:grid;place-items:center;color:#5e7ea2;font-size:20px;font-weight:800}.assist-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:8px}.assist-metrics div{min-width:0;padding:5px 6px;border:1px solid #edf2f7;border-radius:6px;background:#fbfdff}.assist-metrics span{display:block;font-size:6px;color:#8395a8}.assist-metrics b{display:block;margin-top:2px;font-size:7.8px;color:#284b70;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assisted-evidence-row{display:grid;grid-template-columns:1.2fr .8fr;gap:10px;margin-top:10px}.assisted-evidence{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.assisted-evidence span{display:inline-flex;align-items:center;min-height:21px;padding:3px 6px;border-radius:999px;background:#f0f7ff;border:1px solid #d7e7f8;color:#315b84;font-size:6.7px;font-weight:700}.assisted-evidence span.warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.assisted-notes{padding:8px 9px;border:1px solid #e8eef5;border-radius:7px;background:#fff;color:#647b94;font-size:7px;line-height:1.45}.assisted-notes div+div{margin-top:3px}.assisted-guardrail{margin-top:9px;padding:8px 9px;border:1px solid #dce8f5;border-radius:7px;background:#f8fbff;color:#58728c;font-size:7.2px;line-height:1.45}.assisted-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap;margin-top:9px}.assist-bound-current{stroke:#f59e0b;stroke-width:2}.assist-bound-suggest{stroke:#2563eb;stroke-width:2.4}.assist-apex{stroke:#ef4444;stroke-width:1.5;stroke-dasharray:4 4}.assist-baseline{stroke:#10b981;stroke-width:1.4;stroke-dasharray:5 4}.assist-trace{fill:none;stroke:#7baef0;stroke-width:2}.assist-area-current{fill:#f59e0b;opacity:.08}.assist-area-suggest{fill:#2563eb;opacity:.08}
@media(max-width:1100px){.assisted-compare-grid{grid-template-columns:1fr}.assisted-arrow{transform:rotate(90deg);height:24px}.assisted-evidence-row{grid-template-columns:1fr}}

/* v0.3.7 — Batch Assisted Review */
.batch-assist-status{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr) auto;gap:18px;align-items:center;padding:16px 18px;margin-bottom:12px;border-color:#d8e5f2;background:linear-gradient(90deg,#fbfdff,#fff)}
.batch-assist-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:12px}.batch-assist-kpis>.card{padding:12px 13px}.batch-assist-kpis span{display:block;font-size:7.5px;color:#6f839b}.batch-assist-kpis b{display:block;margin:4px 0 2px;font-size:22px;color:#102a46}.batch-assist-kpis small{font-size:6.8px;color:#91a0b1}.batch-assist-kpis .critical{border-color:#fecaca;background:#fffafa}.batch-assist-kpis .critical b{color:#b91c1c}.batch-assist-kpis .high{border-color:#fed7aa;background:#fffdf8}.batch-assist-kpis .high b{color:#c2410c}
.batch-review-workspace{display:grid;grid-template-columns:260px minmax(0,1fr) 265px;gap:12px;align-items:start}.batch-review-queue-panel,.batch-review-evidence-panel{position:sticky;top:78px;max-height:calc(100vh - 94px);overflow:hidden}.batch-review-filters{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:0 10px 9px}.batch-review-filters input,.batch-review-filters select{height:30px;border:1px solid var(--border);border-radius:6px;padding:0 7px;background:#fff;color:#385773;font-size:7.5px}.batch-review-filters input{grid-column:1/-1}.batch-review-list{max-height:calc(100vh - 245px);overflow:auto;border-top:1px solid #edf2f7}.batch-review-item{position:relative;width:100%;border:0;border-bottom:1px solid #edf2f7;background:#fff;text-align:left;padding:10px 10px 11px;display:grid;gap:4px;color:#334e68}.batch-review-item:hover{background:#f8fbff}.batch-review-item.active{background:#edf6ff;box-shadow:inset 3px 0 #2563eb}.batch-review-item b{font-size:8.5px}.batch-review-item small{font-size:6.7px;color:#8193a6;padding-right:64px}.batch-state{position:absolute;right:8px;bottom:9px;font-style:normal;font-size:6px;font-weight:800;padding:3px 5px;border-radius:999px;background:#f1f5f9;color:#64748b}.batch-state.approved{background:#ecfdf5;color:#047857}.batch-state.accepted{background:#eff6ff;color:#1d4ed8}.batch-state.kept{background:#f0fdf4;color:#166534}.batch-state.needs-refresh,.batch-state.error{background:#fef2f2;color:#b91c1c}.batch-state.skipped{background:#fffbeb;color:#92400e}
.batch-review-main{overflow:hidden}.batch-review-main-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:14px 15px 10px;border-bottom:1px solid #edf2f7}.batch-review-main-head h2{margin:3px 0 3px;font-size:17px;color:#122d53}.batch-review-main-head p{margin:0;font-size:8px;color:#72879b}.batch-review-nav{display:flex;align-items:center;gap:6px}.batch-review-nav span{min-width:55px;text-align:center;font-size:7.5px;color:#71859a}.batch-review-compare{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px}.batch-review-chart-side{border:1px solid #dfe8f2;border-radius:9px;overflow:hidden;background:#fff}.batch-review-chart-side.current{box-shadow:inset 3px 0 #f59e0b}.batch-review-chart-side.suggested{box-shadow:inset 3px 0 #2563eb}.chart-label{display:flex;justify-content:space-between;align-items:center;padding:9px 10px 6px}.chart-label span{font-size:6.5px;color:#8294a8;font-weight:800;letter-spacing:.07em}.chart-label b{display:block;margin-top:2px;font-size:10px;color:#27496e}.mini-pill{padding:4px 6px;border:1px solid #dce7f2;border-radius:999px;background:#f8fbff;color:#466785!important;white-space:nowrap}.batch-review-chart-side svg{width:100%;height:230px;display:block;background:#fbfdff;border-top:1px solid #eef2f6;border-bottom:1px solid #eef2f6}.batch-metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:8px}.batch-metric-grid div{padding:5px 6px;border:1px solid #edf2f7;border-radius:6px;background:#fbfdff;min-width:0}.batch-metric-grid span{display:block;font-size:6px;color:#8395a8}.batch-metric-grid b{display:block;margin-top:2px;font-size:7.6px;color:#284b70;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.batch-review-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap;padding:0 12px 10px}.btn-success{background:#10b981;color:#fff;border-color:#10b981}.btn-success:hover{background:#059669}.btn-success:disabled{opacity:.45;cursor:not-allowed}
.batch-review-evidence-panel{padding-bottom:12px}.batch-state-pill{margin:0 12px 9px;padding:7px 8px;border-radius:7px;background:#f1f5f9;color:#64748b;font-size:7px;font-weight:800;text-align:center}.batch-state-pill.approved{background:#ecfdf5;color:#047857}.batch-state-pill.accepted{background:#eff6ff;color:#1d4ed8}.batch-state-pill.kept{background:#f0fdf4;color:#166534}.batch-state-pill.needs-refresh,.batch-state-pill.error{background:#fef2f2;color:#b91c1c}.evidence-section{padding:9px 12px;border-top:1px solid #edf2f7}.support-component-list{display:grid;gap:6px;margin-top:7px}.support-component-list>div{display:grid;grid-template-columns:74px 1fr 30px;gap:5px;align-items:center;font-size:6.8px;color:#627a92}.support-component-list i{height:6px;background:#e9eff6;border-radius:999px;overflow:hidden}.support-component-list em{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#06b6d4);border-radius:inherit}.support-component-list b{text-align:right;color:#365b7f}.shortcut-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:6px;font-size:6.7px;color:#6f839b}.shortcut-grid kbd{display:inline-grid;place-items:center;min-width:19px;height:18px;border:1px solid #dce6f0;border-bottom-width:2px;border-radius:4px;background:#fff;color:#365777;font-size:6.5px}.btn.full{width:calc(100% - 24px);margin:0 12px;justify-content:center}
@media(max-width:1350px){.batch-review-workspace{grid-template-columns:230px minmax(0,1fr)}.batch-review-evidence-panel{position:static;grid-column:1/-1;max-height:none}.batch-assist-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1000px){.batch-assist-status{grid-template-columns:1fr}.batch-review-workspace{grid-template-columns:1fr}.batch-review-queue-panel{position:static;max-height:none}.batch-review-list{max-height:300px}.batch-review-compare{grid-template-columns:1fr}.batch-assist-kpis{grid-template-columns:repeat(2,1fr)}}
.batch-review-launch{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;margin-bottom:14px;border-color:#cfe1f4;background:linear-gradient(90deg,#f8fbff,#fff)}.batch-review-launch h3{margin:3px 0 4px;color:#17345f}.batch-review-launch p{margin:0;max-width:760px;font-size:8px;color:#6f839b}.batch-review-launch-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}@media(max-width:900px){.batch-review-launch{align-items:flex-start;flex-direction:column}.batch-review-launch-status{justify-content:flex-start}}

/* v0.3.8 — Integration Release Gate */
.release-summary-strip{display:flex;align-items:center;gap:16px;padding:18px 20px;margin:16px 0}.release-summary-strip.ready{border-color:#a7f3d0;background:linear-gradient(90deg,#f0fdf4,#fff)}.release-summary-strip.blocked{border-color:#fde68a;background:linear-gradient(90deg,#fffbeb,#fff)}.release-summary-icon,.release-hero-mark{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:22px;font-weight:800;flex:0 0 auto}.release-summary-strip.ready .release-summary-icon,.release-hero.ready .release-hero-mark{background:#d1fae5;color:#047857}.release-summary-strip.blocked .release-summary-icon,.release-hero.blocked .release-hero-mark{background:#fef3c7;color:#b45309}.release-summary-copy{min-width:0;flex:1}.release-summary-copy h3{margin:3px 0 4px;font-size:15px}.release-summary-copy p{margin:0;color:var(--muted);font-size:12px}.release-summary-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.release-hero{padding:22px;display:flex;align-items:center;gap:18px;margin-bottom:16px}.release-hero.ready{border-color:#a7f3d0;background:linear-gradient(100deg,#f0fdf4 0%,#fff 58%)}.release-hero.blocked{border-color:#fde68a;background:linear-gradient(100deg,#fffbeb 0%,#fff 58%)}.release-hero-copy{flex:1}.release-hero-copy h2{font-size:20px;margin:4px 0 5px}.release-hero-copy p{margin:0;color:var(--muted);font-size:12px;max-width:760px}.release-hero-action{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.release-hero-action form{margin:0}.release-hero-action .btn[disabled]{opacity:.45;cursor:not-allowed}
.release-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:16px}.release-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:16px;margin-bottom:16px}.release-check-list{padding:4px 16px 16px}.release-check{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #eef2f7}.release-check:last-child{border-bottom:0}.release-check-icon{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;font-weight:800}.release-check.pass .release-check-icon{background:#ecfdf5;color:#047857}.release-check.fail .release-check-icon{background:#fff7ed;color:#c2410c}.release-check b{display:block;font-size:12px}.release-check small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.release-check>span{font-size:9px;font-weight:800;letter-spacing:.08em}.release-check.pass>span{color:#047857}.release-check.fail>span{color:#c2410c}.release-warning-box{margin:0 16px 16px;padding:12px 14px;border:1px solid #fde68a;background:#fffbeb;border-radius:10px;color:#92400e;font-size:11px}.release-warning-box p{margin:5px 0 0}.release-fingerprint-card{padding-bottom:16px}.fingerprint-value{margin:12px 16px;padding:12px;border-radius:10px;background:#07192c;color:#80eaff;font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}.release-flow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 16px 16px;font-size:9px;color:#64748b}.release-flow span,.release-flow strong{border:1px solid var(--border);border-radius:999px;padding:6px 8px;background:#fff}.release-flow strong{border-color:#99f6e4;background:#f0fdfa;color:#0f766e}.release-flow i{font-style:normal;color:#94a3b8}.release-next-stage{margin:0 16px;padding:14px;border-radius:12px;background:linear-gradient(135deg,#eff6ff,#f5f3ff);border:1px solid #dbeafe}.release-next-stage span{font-size:8px;letter-spacing:.16em;font-weight:800;color:#64748b}.release-next-stage b{display:block;margin-top:5px;font-size:12px;color:#1e3a8a}.release-next-stage p{margin:5px 0 0;color:#64748b;font-size:10px;line-height:1.5}.release-history code{font-size:10px;color:#475569}
@media(max-width:1200px){.release-kpis{grid-template-columns:repeat(3,1fr)}.release-grid{grid-template-columns:1fr}.release-hero{align-items:flex-start}.release-hero-action{flex-direction:column;align-items:stretch}}@media(max-width:760px){.release-kpis{grid-template-columns:1fr 1fr}.release-summary-strip,.release-hero{flex-direction:column;align-items:flex-start}.release-summary-actions,.release-hero-action{width:100%;justify-content:flex-start}.release-check{grid-template-columns:34px 1fr}.release-check>span{grid-column:2}.release-flow{align-items:flex-start}}

/* METABOLYSIS Web v0.4 — QC-RLSC & Normalization */
.norm-context{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;margin-bottom:14px}.norm-context-main{min-width:0;flex:1}.norm-context-main small{display:block;color:#74879d;font-size:10px;margin-top:5px}.norm-release-select{display:block;width:min(760px,100%);margin-top:5px;border:1px solid #d8e3ef;border-radius:8px;background:#fff;color:#17345a;padding:9px 10px;font-weight:700}.norm-context-actions{display:flex;gap:8px;flex-wrap:wrap}.norm-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:14px}.norm-pipeline{display:flex;align-items:center;justify-content:center;gap:8px;padding:15px 18px;margin-bottom:14px;overflow:auto}.norm-pipeline>b{color:#9aaabc}.norm-node{min-width:128px;text-align:center;padding:10px 9px;border:1px solid #e3eaf2;border-radius:10px;background:#fff}.norm-node i{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;margin:0 auto 5px;background:#eaf2ff;color:#2563eb;font-style:normal;font-size:10px;font-weight:800}.norm-node span{display:block;color:#16365e;font-size:10px;font-weight:800}.norm-node small{display:block;color:#8798aa;font-size:8px;margin-top:2px}.norm-node.done{background:#f0fdf4;border-color:#bbf7d0}.norm-node.done i{background:#d1fae5;color:#047857}.norm-node.active{background:#f8fbff;border-color:#bfdbfe}.norm-node.final{background:linear-gradient(135deg,#eff6ff,#f5f3ff);border-color:#c4b5fd}.norm-main-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;margin-bottom:14px}.norm-diagnostics-card{min-width:0}.norm-feature-label{font:700 10px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;color:#24558b;background:#edf5ff;border-radius:999px;padding:7px 10px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.norm-chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 14px 12px}.chart-caption{display:flex;justify-content:space-between;align-items:end;gap:8px;padding:2px 2px 7px}.chart-caption b{font-size:11px;color:#193a64}.chart-caption span{font-size:8px;color:#8798aa}.norm-chart{height:286px;border:1px solid #e1e8f0;border-radius:9px;background:#fbfdff;display:grid;place-items:center;overflow:hidden}.norm-chart svg{width:100%;height:100%;display:block}.empty-chart{color:#8a9bae;font-size:10px;padding:16px;text-align:center}.chart-loading{color:#64748b;font-size:10px}.norm-chart-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:0 16px 12px;color:#73869b;font-size:9px}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.legend-dot.qc{background:#0f9f8f}.legend-dot.sample{background:#6b8cc7}.legend-line{display:inline-block;width:18px;height:2px;background:#0f766e;vertical-align:middle;margin-right:5px}.norm-run-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:0 14px 14px}.norm-run-summary>div{padding:10px;border:1px solid #e6edf5;border-radius:8px;background:#fbfdff}.norm-run-summary span{display:block;color:#7b8da2;font-size:8px}.norm-run-summary b{display:block;color:#17365f;font-size:14px;margin-top:4px}.norm-params .card-head{align-items:flex-start}.param-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 14px}.param-pair label{margin-left:0;margin-right:0}.check-row{display:flex!important;align-items:flex-start;gap:8px}.check-row input{width:auto!important;margin:1px 0 0!important}.check-row span{font-size:10px;line-height:1.35;color:#3b5574}.norm-validation{margin:12px 14px;padding:11px;border-radius:9px;border:1px solid #dbe5ef;background:#f8fbff;font-size:9px;color:#536a84}.norm-validation.ok{border-color:#a7f3d0;background:#f0fdf4;color:#166534}.norm-validation.bad{border-color:#fecaca;background:#fff7f7;color:#991b1b}.norm-validation b{display:block;font-size:10px;margin-bottom:4px}.norm-validation p{margin:3px 0}.norm-validation .warn{color:#a16207}.btn-wide+.btn-wide{margin-top:8px}.norm-job{margin:12px 14px 0;padding:10px;border:1px solid #dbe5ef;border-radius:9px;background:#fbfdff}.norm-job-head{display:flex;justify-content:space-between;gap:8px;font-size:9px;color:#506985;text-transform:uppercase}.norm-progress{height:7px;background:#e8eef5;border-radius:999px;overflow:hidden;margin:7px 0}.norm-progress i{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#06b6d4);border-radius:999px;transition:width .25s}.norm-job p{margin:0;color:#71849a;font-size:9px}.norm-metadata-card,.norm-feature-table,.norm-history{margin-bottom:14px}.norm-import{display:flex;align-items:end;gap:8px;padding:0 16px 12px}.norm-import label{font-size:9px;font-weight:700;color:#516985}.norm-import input[type=file]{display:block;margin-top:4px;font-size:9px}.norm-metadata-scroll{max-height:470px}.norm-metadata-card input.meta-order,.norm-metadata-card input.meta-weight,.norm-metadata-card input.meta-batch{width:100%;min-width:90px;border:1px solid #dbe5ef;border-radius:6px;padding:6px 7px;color:#18345c;background:#fff;font-size:10px}.norm-feature-table .diag-row{cursor:pointer}.norm-feature-table .diag-row:hover td,.norm-feature-table .diag-row.selected td{background:#f1f7ff}.link-button{appearance:none;border:0;background:none;color:#1e5fae;padding:0;cursor:pointer}.row-reason{display:block;color:#9a6a29;font-size:8px;margin-top:3px;max-width:220px}.client-toast{position:fixed;right:22px;bottom:22px;z-index:999;background:#08213b;color:#fff;border-radius:9px;padding:11px 14px;box-shadow:0 14px 34px rgba(6,20,38,.28);font-size:10px;max-width:390px}.client-toast.bad{background:#7f1d1d}.toolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
@media(max-width:1200px){.norm-kpis{grid-template-columns:repeat(3,1fr)}.norm-main-grid{grid-template-columns:1fr}.norm-chart-grid{grid-template-columns:1fr 1fr}}
@media(max-width:780px){.norm-context{align-items:flex-start;flex-direction:column}.norm-kpis{grid-template-columns:1fr 1fr}.norm-pipeline{justify-content:flex-start}.norm-chart-grid{grid-template-columns:1fr}.norm-run-summary{grid-template-columns:1fr 1fr}.param-pair{grid-template-columns:1fr}.norm-import{align-items:flex-start;flex-direction:column}}

/* METABOLYSIS Web v0.5 — Data Preparation & Feature Matrix Engine */
.prep-context{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;margin-bottom:14px}.prep-context-main{min-width:0;flex:1}.prep-context-main small{display:block;color:#74879d;font-size:10px;margin-top:5px}.prep-source-select{display:block;width:min(820px,100%);margin-top:5px;border:1px solid #d8e3ef;border-radius:8px;background:#fff;color:#17345a;padding:9px 10px;font-weight:700}.prep-context-actions{display:flex;gap:8px;flex-wrap:wrap}.prep-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:14px}.prep-pipeline{display:flex;align-items:center;justify-content:center;gap:7px;padding:15px 18px;margin-bottom:14px;overflow:auto}.prep-pipeline>b{color:#9aaabc}.prep-node{min-width:118px;text-align:center;padding:10px 8px;border:1px solid #e3eaf2;border-radius:10px;background:#fff}.prep-node i{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;margin:0 auto 5px;background:#eaf2ff;color:#2563eb;font-style:normal;font-size:10px;font-weight:800}.prep-node span{display:block;color:#16365e;font-size:10px;font-weight:800}.prep-node small{display:block;color:#8798aa;font-size:8px;margin-top:2px}.prep-node.done{background:#f0fdf4;border-color:#bbf7d0}.prep-node.done i{background:#d1fae5;color:#047857}.prep-node.active{background:#f8fbff;border-color:#bfdbfe}.prep-node.final{background:linear-gradient(135deg,#ecfeff,#f5f3ff);border-color:#a5f3fc}.prep-main-grid{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:14px;margin-bottom:14px}.prep-preview-card{min-width:0}.prep-pca-wrap{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px;padding:0 14px 12px}.prep-pca{height:370px;border:1px solid #e1e8f0;border-radius:10px;background:#fbfdff;overflow:hidden;position:relative}.prep-pca svg{width:100%;height:330px;display:block}.prep-pca-legend{height:40px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:4px 10px;border-top:1px solid #edf2f7;color:#60758d;font-size:8px}.prep-pca-legend span{display:flex;align-items:center;gap:4px}.prep-pca-legend i{display:inline-block;width:7px;height:7px;border-radius:50%}.prep-impact{display:grid;gap:8px;align-content:start}.prep-impact>div{padding:11px;border:1px solid #e5edf5;border-radius:9px;background:#fbfdff}.prep-impact span{display:block;color:#7a8da3;font-size:8px}.prep-impact b{display:block;color:#17365f;font-size:18px;margin-top:3px}.prep-impact p{font-size:9px;color:#6f8298}.prep-pca-note{margin:0 14px 14px;padding:9px 11px;border-radius:8px;background:#f8fafc;border:1px solid #e5ebf1;color:#6f8196;font-size:9px}.prep-params .compact{margin:23px 0 0!important}.prep-guardrail{margin:10px 14px;padding:11px 12px;border-radius:9px;background:#f0fdfa;border:1px solid #99f6e4;color:#115e59}.prep-guardrail b{font-size:9px}.prep-guardrail p{margin:4px 0 0;font-size:8px;line-height:1.45}.prep-source-warnings{margin:10px 14px;padding:9px 11px;border-radius:9px;background:#fffbeb;border:1px solid #fde68a;color:#92400e;font-size:8px}.prep-source-warnings p{margin:3px 0}.prep-metadata-card,.prep-history{margin-bottom:14px}.prep-meta-scroll{max-height:440px}.prep-group{width:100%;min-width:140px;border:1px solid #dbe5ef;border-radius:6px;padding:6px 7px;color:#18345c;background:#fff;font-size:10px}.prep-lower-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;margin-bottom:14px}.prep-feature-table,.prep-matrix-card{min-width:0}.prep-feature-table .table-scroll,.prep-matrix-card .table-scroll{max-height:500px}.prep-removed td{background:#fff8f8!important;color:#7c6670}.prep-feature-table small{font-size:8px;color:#8a5a61}.prep-matrix{font-size:9px!important}.prep-matrix th,.prep-matrix td{padding:7px 8px!important}.prep-history code{font-size:9px;color:#425b78}.btn-tiny{padding:5px 8px!important;font-size:8px!important}.badge.danger{background:#fee2e2;color:#991b1b}.muted{color:#8a9aac}.empty-state{padding:26px;text-align:center;color:#8192a5;font-size:10px}
@media(max-width:1200px){.prep-kpis{grid-template-columns:repeat(3,1fr)}.prep-main-grid,.prep-lower-grid{grid-template-columns:1fr}.prep-pca-wrap{grid-template-columns:1fr 160px}}@media(max-width:780px){.prep-context{align-items:flex-start;flex-direction:column}.prep-kpis{grid-template-columns:1fr 1fr}.prep-pipeline{justify-content:flex-start}.prep-pca-wrap{grid-template-columns:1fr}.prep-impact{grid-template-columns:1fr 1fr}.prep-params .compact{margin:0!important}}
.prep-import{display:flex;align-items:end;gap:8px;padding:0 16px 12px}.prep-import label{font-size:9px;font-weight:700;color:#516985}.prep-import input[type=file]{display:block;margin-top:4px;font-size:9px}@media(max-width:780px){.prep-import{align-items:flex-start;flex-direction:column}}

/* METABOLYSIS Web v0.6 — Statistics & PCA Analysis Engine */
.science-analysis-banner:after{content:"";position:absolute;right:40px;top:6px;width:260px;height:86px;opacity:.25;background:linear-gradient(110deg,transparent 5%,rgba(37,99,235,.17) 6% 7%,transparent 8% 15%,rgba(15,118,110,.16) 16% 17%,transparent 18%),radial-gradient(circle at 26% 55%,#06b6d4 0 3px,transparent 4px),radial-gradient(circle at 62% 27%,#2563eb 0 3px,transparent 4px),radial-gradient(circle at 82% 68%,#8b5cf6 0 3px,transparent 4px)}
.analysis-context{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;margin-bottom:14px}.analysis-context-main{min-width:0;flex:1}.analysis-context-main small{display:block;color:#75889f;font-size:9px;margin-top:5px}.analysis-source-select{display:block;width:min(880px,100%);margin-top:5px;border:1px solid #d8e3ef;border-radius:8px;background:#fff;color:#17345a;padding:9px 10px;font-weight:700}.analysis-context-actions{display:flex;gap:8px;flex-wrap:wrap}.analysis-grid-top{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;margin-bottom:14px}.analysis-setup,.analysis-methods{padding-bottom:14px}.analysis-param-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:0 14px}.analysis-param-grid label,.pca-controls label{display:grid;gap:4px;color:#536a84;font-size:9px;font-weight:700}.analysis-param-grid select,.analysis-param-grid input,.pca-controls select,.pca-controls input[type=number]{width:100%;border:1px solid #dbe5ef;border-radius:7px;background:#fff;padding:8px;color:#17365f;font-size:10px}.analysis-group-pills{display:flex;gap:7px;flex-wrap:wrap;padding:12px 14px 0}.analysis-group-pills span{border:1px solid #d8e7f6;background:#f7fbff;border-radius:999px;padding:6px 9px;color:#526b87;font-size:8px}.analysis-group-pills b{color:#1d4ed8}.analysis-warning{margin:12px 14px 0;padding:9px 11px;border:1px solid #fde68a;background:#fffbeb;border-radius:8px;color:#92400e;font-size:9px}.analysis-action-row{display:flex;gap:8px;padding:13px 14px 0}.method-list{display:grid;gap:9px;padding:0 14px}.method-list>div{display:flex;gap:10px;align-items:center;padding:9px;border:1px solid #e5edf5;border-radius:9px;background:#fbfdff}.method-list i{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:#eaf2ff;color:#2563eb;font-style:normal;font-weight:800}.method-list span{min-width:0}.method-list b,.method-list small{display:block}.method-list b{color:#17365f;font-size:10px}.method-list small{color:#7b8da2;font-size:8px;margin-top:2px}.analysis-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:14px}.analysis-two-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;margin-bottom:14px}.analysis-chart{min-height:340px;margin:0 14px 14px;border:1px solid #e1e8f0;border-radius:10px;background:#fbfdff;display:grid;place-items:center;overflow:hidden}.analysis-chart.large{height:405px}.analysis-chart.heatmap{height:690px;overflow:auto}.analysis-chart svg{width:100%;height:100%;display:block}.analysis-table-scroll{max-height:405px}.analysis-sig-row td{background:#f0fdf4!important}.analysis-corr-card,.analysis-history{margin-bottom:14px}.analysis-history code{font-size:8px;color:#425b78}.pca-toolbar{display:flex;justify-content:space-between;align-items:end;gap:18px;padding:13px 16px;margin-bottom:14px}.pca-controls{display:grid;grid-template-columns:110px 110px 150px 110px auto auto;gap:9px;align-items:end;flex:1}.pca-controls .check-row{display:flex!important;align-items:center;gap:7px;padding-bottom:8px;white-space:nowrap}.pca-controls .check-row span{font-size:9px}.pca-export{display:flex;gap:7px}.pca-main-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:14px;margin-bottom:14px}.analysis-chart.pca-large{height:500px}.analysis-chart.scree{height:365px}.pca-legend{display:flex;gap:12px;flex-wrap:wrap;padding:0 16px 13px;color:#60758d;font-size:9px}.pca-legend span{display:flex;align-items:center;gap:5px}.pca-legend i{display:inline-block;width:8px;height:8px;border-radius:50%}
@media(max-width:1200px){.analysis-grid-top,.analysis-two-grid,.pca-main-grid{grid-template-columns:1fr}.analysis-kpis{grid-template-columns:repeat(3,1fr)}.pca-controls{grid-template-columns:repeat(3,1fr)}}@media(max-width:780px){.analysis-context,.pca-toolbar{align-items:flex-start;flex-direction:column}.analysis-param-grid,.pca-controls{grid-template-columns:1fr 1fr}.analysis-kpis{grid-template-columns:1fr 1fr}.analysis-chart.heatmap{height:520px}}

/* METABOLYSIS v0.7 — supervised multivariate workspace */
.supervised-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:16px;margin:16px 0}.supervised-params,.supervised-source-summary{padding:18px}.supervised-context{margin-top:14px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:16px}.param-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}.param-grid label span{display:block;font-size:11px;color:#64748b;margin-bottom:5px;font-weight:700}.param-grid input,.param-grid select{width:100%;height:38px;border:1px solid #dbe4ee;border-radius:9px;padding:0 10px;background:#fff}.scientific-guardrail{margin:12px 0}.source-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.source-stat-grid>div,.validation-grid>div{border:1px solid #e2e8f0;border-radius:10px;padding:12px;background:#f8fafc}.source-stat-grid span,.validation-grid span{display:block;font-size:10px;color:#64748b}.source-stat-grid b,.validation-grid b{display:block;margin-top:4px;font-size:18px}.group-chip-row{display:flex;gap:7px;flex-wrap:wrap}.supervised-tabs{display:flex;gap:7px;margin:18px 0 10px}.sup-tab{border:1px solid #dbe4ee;background:#fff;border-radius:10px;padding:9px 16px;font-weight:700;color:#475569;cursor:pointer}.sup-tab.active{background:#081c34;border-color:#081c34;color:#fff}.sup-panel{display:none}.sup-panel.active{display:block}.warning-list{display:grid;gap:9px;padding:14px}.model-warning{border:1px solid #e2e8f0;border-left:4px solid #64748b;border-radius:9px;padding:10px 12px;display:grid;gap:4px;background:#fff}.model-warning b{font-size:10px;letter-spacing:.05em}.model-warning span{font-size:11px;color:#475569;line-height:1.5}.model-warning.high{border-left-color:#ef4444;background:#fef2f2}.model-warning.medium{border-left-color:#f59e0b;background:#fffbeb}.model-warning.info{border-left-color:#06b6d4;background:#ecfeff}.validation-summary{padding:16px}.validation-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.analysis-job{margin:14px 0;padding:14px}.job-line{display:flex;justify-content:space-between}.progress-track{height:7px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin:10px 0}.progress-track i{display:block;height:100%;background:linear-gradient(90deg,#2563eb,#06b6d4)}
@media(max-width:1100px){.supervised-layout{grid-template-columns:1fr}.param-grid{grid-template-columns:1fr 1fr}.validation-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.param-grid,.validation-grid{grid-template-columns:1fr}.supervised-context{align-items:flex-start;flex-direction:column}}

/* v0.8 — Annotation & Biomarker Explorer */
.annotation-banner{background:linear-gradient(120deg,#071a31 0%,#0b2f42 58%,#0f766e 135%)}
.annotation-context{padding:18px;margin-bottom:16px}.annotation-source-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.annotation-source-grid label>span,.annotation-editor label>span{display:block;font-size:11px;font-weight:700;color:#52677f;margin-bottom:6px}.annotation-source-grid small{display:block;color:#7b8da1;margin-top:5px}.annotation-toolbar{margin-top:14px}.file-btn{position:relative;overflow:hidden}.annotation-workspace{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(330px,.65fr);gap:16px;margin:16px 0}.annotation-registry-card,.annotation-editor-card{min-width:0}.ann-registry-scroll{max-height:610px}.annotation-editor{padding:0 18px 18px;display:grid;gap:12px}.annotation-editor input,.annotation-editor select,.annotation-editor textarea,.annotation-source-grid select,.table-search,#candidate-tier{width:100%;border:1px solid #d9e2ec;border-radius:9px;background:#fff;color:#102033;padding:9px 10px;outline:none}.annotation-editor input:focus,.annotation-editor select:focus,.annotation-editor textarea:focus,.table-search:focus{border-color:#49a8bc;box-shadow:0 0 0 3px rgba(6,182,212,.08)}.ann-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ann-three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}#ann-registry-body tr{cursor:pointer}#ann-registry-body tr.selected td{background:#e9f7fa!important}.scientific-table td small{display:block;color:#7b8da1;font-size:10px;margin-top:3px}.annotation-tabs{display:flex;gap:6px;margin:18px 0 10px}.ann-tab{border:1px solid #dce4ed;background:#fff;border-radius:9px;padding:9px 14px;font-weight:700;color:#52677f;cursor:pointer}.ann-tab.active{background:#0b2f42;color:#fff;border-color:#0b2f42}.ann-panel{display:none}.ann-panel.active{display:block}.candidate-score{display:inline-flex;min-width:44px;justify-content:center;padding:4px 8px;border-radius:999px;background:#e6f6f7;color:#0f766e;font-weight:800}.evidence-stack{display:flex;flex-wrap:wrap;gap:4px;max-width:320px}.evidence-chip{font-size:9px;padding:3px 6px;border-radius:999px;background:#edf5ff;color:#1d4ed8;border:1px solid #d8e8ff;white-space:nowrap}.evidence-chip.warn{background:#fff7e6;color:#a15c00;border-color:#f8dfac}.annotation-method-card{margin-top:16px}.method-grid{padding:0 18px 18px;display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.method-grid>div{border:1px solid #e2e8f0;border-radius:12px;padding:14px;background:#fbfdff}.method-grid b{font-size:12px}.method-grid p{font-size:11px;color:#64748b;line-height:1.55;margin:6px 0 0}.empty-cell{text-align:center!important;color:#94a3b8!important;padding:28px!important}.app-toast{position:fixed;right:22px;bottom:22px;background:#081c34;color:#fff;padding:11px 14px;border-radius:10px;z-index:9999;box-shadow:0 10px 30px rgba(15,23,42,.18);font-size:12px}.app-toast.error{background:#991b1b}
@media(max-width:1100px){.annotation-workspace{grid-template-columns:1fr}.annotation-source-grid{grid-template-columns:1fr}.method-grid{grid-template-columns:1fr 1fr}.ann-three{grid-template-columns:1fr}}
@media(max-width:720px){.ann-two,.method-grid{grid-template-columns:1fr}.annotation-tabs{overflow:auto}}

/* v0.9 — Pathway & Biological Interpretation Engine */
.pathway-banner{background:linear-gradient(120deg,#061728 0%,#12365a 55%,#0f766e 130%)}
.pathway-source-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:16px;margin:16px 0}.pathway-source-card,.pathway-params-card{min-width:0}.pathway-source-body{padding:0 18px 18px}.pathway-source-body label>span,.pathway-param-grid label>span{display:block;font-size:11px;font-weight:700;color:#52677f;margin-bottom:6px}.pathway-map-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:14px 0}.pathway-map-kpis>div{border:1px solid #e0e9f2;border-radius:10px;background:#f8fbfe;padding:10px}.pathway-map-kpis span{display:block;color:#708397;font-size:9px}.pathway-map-kpis b{display:block;color:#17365f;font-size:20px;margin-top:3px}.pathway-map-actions{margin-top:10px}.pathway-param-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;padding:0 18px 14px}.pathway-param-grid input,.pathway-param-grid select{width:100%;height:38px;border:1px solid #dbe4ee;border-radius:9px;padding:0 10px;background:#fff;color:#17365f}.pathway-run-actions{padding:0 18px 12px}.pathway-params-card>.notice{margin:0 18px 18px}.pathway-tabs{display:flex;gap:7px;margin:18px 0 10px}.path-tab{border:1px solid #dbe4ee;background:#fff;border-radius:10px;padding:9px 16px;font-weight:700;color:#475569;cursor:pointer}.path-tab.active{background:#0b2f42;color:#fff;border-color:#0b2f42}.path-panel{display:none}.path-panel.active{display:block}.pathway-main-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);gap:16px;margin-bottom:16px}.pathway-bubble{height:520px}.pathway-network{height:680px}.pathway-detail{padding:0 18px 18px}.path-detail-title h3{margin:5px 0 10px;color:#153b5e}.path-detail-metrics{display:grid;grid-template-columns:1fr 1fr;gap:9px}.path-detail-metrics>div{border:1px solid #e2e8f0;border-radius:9px;background:#f8fafc;padding:10px}.path-detail-metrics span{display:block;font-size:9px;color:#64748b}.path-detail-metrics b{font-size:16px;color:#0f2740}.path-hit-list{display:grid;gap:7px;margin:13px 0}.path-hit-list>div{border:1px solid #e4edf5;border-radius:9px;padding:9px}.path-hit-list b,.path-hit-list span{display:block}.path-hit-list b{font-size:10px;color:#183b5d}.path-hit-list span{font-size:9px;color:#74879a;margin-top:3px}.pathway-network-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:0 18px 16px;color:#64748b;font-size:10px}.pathway-network-legend small{margin-left:auto}.scientific-table tr.selected td{background:#eaf7f7!important}.pathway-detail-card{min-width:0}
@media(max-width:1150px){.pathway-source-grid,.pathway-main-grid{grid-template-columns:1fr}.pathway-map-kpis{grid-template-columns:1fr 1fr}.pathway-network{height:600px}}@media(max-width:720px){.pathway-param-grid,.pathway-map-kpis{grid-template-columns:1fr}.pathway-tabs{overflow:auto}.pathway-network{height:520px}}

/* METABOLYSIS v1.0 — Reports, Audit Trail, Reproducibility & Production Release */
.production-banner{background:linear-gradient(120deg,#061728 0%,#12365a 58%,#0f766e 145%);color:#fff;border-radius:12px;padding:22px 24px;margin-bottom:14px}.production-banner h1,.production-banner p,.production-banner .eyebrow,.production-banner .banner-copy{color:#fff}.audit-banner{background:linear-gradient(120deg,#081c34,#173f67 65%,#2563eb 150%);color:#fff;border-radius:12px;padding:22px 24px;margin-bottom:14px}.audit-banner h1,.audit-banner p,.audit-banner .eyebrow,.audit-banner .banner-copy{color:#fff}.prod-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.prod-status{font-size:19px!important}.prod-status.ready{color:#07835a}.prod-status.blocked{color:#b36900}.production-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(340px,.65fr);gap:16px;margin-bottom:16px}.lineage-card,.release-create-card{min-width:0}.lineage-flow{display:flex;align-items:center;gap:6px;padding:6px 18px 18px;overflow:auto}.lineage-stage{min-width:130px;border:1px solid #dce5ef;border-radius:10px;padding:10px;background:#f8fbfe;display:flex;gap:8px;align-items:center}.lineage-stage>span{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#dbeafe;color:#1d4ed8;font-size:10px;font-weight:800;flex:0 0 auto}.lineage-stage b{display:block;font-size:10px;color:#17365f}.lineage-stage small{display:block;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#74879a;font-size:8px;margin-top:3px}.lineage-stage.ok{border-color:#b9ead7;background:#f0fbf6}.lineage-stage.ok>span{background:#dff8ec;color:#07835a}.lineage-stage.missing{border-color:#fecaca;background:#fff7f7}.lineage-stage.missing>span{background:#fee2e2;color:#b91c1c}.lineage-stage.optional-missing{opacity:.65}.lineage-arrow{font-style:normal;color:#8aa0b7}.release-blockers,.release-warnings{margin:0 18px 14px;padding:11px 13px;border-radius:9px;font-size:10px;line-height:1.55}.release-blockers{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.release-warnings{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.release-form{padding:0 18px 18px;display:grid;gap:12px}.release-form label>span,.audit-filter label>span{display:block;font-size:10px;color:#52677f;font-weight:700;margin-bottom:5px}.release-form select,.release-form textarea,.audit-filter input,.audit-filter select{width:100%;border:1px solid #dbe4ee;border-radius:9px;background:#fff;padding:9px 10px;color:#17365f}.release-form select{height:38px}.release-form textarea{resize:vertical}.reproducibility-card,.release-history-card,.audit-preview-card{margin-bottom:16px}.repro-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;padding:0 18px 18px}.repro-grid>div{border:1px solid #e1e9f1;border-radius:10px;background:#fbfdff;padding:13px}.repro-grid b{font-size:11px;color:#17365f}.repro-grid p{font-size:10px;color:#64748b;line-height:1.5;margin:5px 0 0}.release-links{display:flex;gap:7px;flex-wrap:wrap}.release-links a{font-size:9px;color:#176cf0;font-weight:800}.audit-detail{max-width:620px;white-space:normal!important;line-height:1.5}.audit-filter-card{margin-bottom:14px}.audit-filter{padding:14px 16px;display:grid;grid-template-columns:1.5fr 1fr auto auto auto;gap:10px;align-items:end}.audit-scroll{max-height:690px;overflow:auto}
@media(max-width:1200px){.prod-kpis{grid-template-columns:1fr 1fr}.production-grid{grid-template-columns:1fr}.repro-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.prod-kpis,.repro-grid,.audit-filter{grid-template-columns:1fr}.lineage-flow{align-items:stretch;flex-direction:column}.lineage-arrow{transform:rotate(90deg);align-self:center}.lineage-stage{width:100%}}

/* v1.0.1 production hardening */
.top-role{font-size:10px;color:#64748b;font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}.form-grid label,.inline-form{display:grid;gap:6px}.form-grid input,.form-grid select,.inline-form input,.panel-pad input,.panel-pad select{height:40px;border:1px solid #e2e8f0;border-radius:9px;padding:0 10px;background:#fff}.inline-form{grid-template-columns:180px auto;margin-top:8px}.btn-danger{background:#b91c1c;color:#fff;border-color:#b91c1c}.muted{color:#64748b;font-size:12px}.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:900px){.form-grid,.cols-4,.cols-5{grid-template-columns:1fr 1fr}}

.var-chips{padding:0 16px 10px;font-size:10px;color:#516985}.var-chips b{color:#17345a}.var-chips em{color:#8a9aac;font-style:normal}.var-head{display:flex;align-items:center;gap:6px;white-space:nowrap}.var-head label{display:flex;align-items:center;gap:3px;font-weight:600;font-size:9px;color:#5f7590}.var-remove{border:0;background:transparent;color:#a0aec0;cursor:pointer;font-size:10px;padding:0 2px}.var-remove:hover{color:#b91c1c}.prep-group-preview{font-weight:700;color:#17345a}
.bulk-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 16px 12px;font-size:10px;color:#516985}.bulk-bar input{border:1px solid #dbe5ef;border-radius:6px;padding:6px 8px;font-size:10px;width:150px}.bulk-bar small{flex-basis:100%;color:#7a8da3}.batch-input{width:70px;border:1px solid #dbe5ef;border-radius:6px;padding:5px 6px;font-size:10px}.ref-cell{text-align:center}.upload-batch{border:1px solid #dbe5ef;border-radius:8px;padding:8px 10px;font-size:11px;width:130px}.batch-summary-card{margin-bottom:14px}
.ref-mode-card{margin-bottom:14px}.ref-mode-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px}.ref-mode{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:start;padding:11px 12px;border:1px solid #dbe5ef;border-radius:10px;background:#fff;cursor:pointer}.ref-mode input{grid-row:span 2;margin-top:2px}.ref-mode b{font-size:11px;color:#17345a}.ref-mode small{font-size:9px;color:#6f8298;line-height:1.4}.ref-mode.active{border-color:#2563eb;background:#f5f9ff}.ref-mode-note{padding:10px 16px 14px;margin:0;font-size:10px;color:#5f7590}@media(max-width:780px){.ref-mode-options{grid-template-columns:1fr}}
.btn-new-project{margin-left:10px;padding:7px 12px!important;font-size:11px!important;white-space:nowrap}
.create-project .new-project-form{display:grid;grid-template-columns:1fr;gap:14px;align-items:stretch;padding:4px 18px 0}.create-project .new-project-form label{display:grid;gap:6px;font-size:11px;font-weight:700;color:#375170}.create-project .new-project-form label small{font-weight:500;color:#8a9aac}.create-project .new-project-form input,.create-project .new-project-form textarea{width:100%;height:auto;margin:0;border:1px solid #dbe5ef;border-radius:9px;padding:10px 12px;font-size:12px;color:#18345c;background:#fff;font-family:inherit}.create-project .new-project-form input{height:42px}.create-project .new-project-form textarea{min-height:96px;resize:vertical;line-height:1.45}.create-project .new-project-form input:focus,.create-project .new-project-form textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.create-project .new-project-form .btn{width:100%;height:42px;justify-content:center;font-size:12px}.projects-layout{align-items:start}
/* decorative molecule must never block sidebar links */
.side-molecule{pointer-events:none;z-index:0}.sidebar .nav{position:relative;z-index:1}
.workbench-status.stale{background:#fef2f2;border-color:#fecaca;color:#7f1d1d}.workbench-status.stale b{color:#991b1b}.workbench-status .toolbar{display:flex;gap:8px;align-items:center}.tic-context{position:relative;margin:4px 0 6px;border:1px solid #e2e8f0;border-radius:8px;background:#fbfdff;height:64px;overflow:hidden}.tic-context svg{width:100%;height:64px;display:block}.tic-context-label{position:absolute;left:8px;top:4px;font-size:9px;font-weight:700;color:#64748b;letter-spacing:.04em;pointer-events:none}.leg.sibling{border-top:2px dashed #8b5cf6;background:none}.leg.competitor{width:0!important;height:0!important;border-left:6px solid transparent;border-right:6px solid transparent;border-top:9px solid #dc2626;background:none}
.leg.vendor{width:0!important;height:0!important;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:9px solid #0f766e;background:none}
.meta-import{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:0 16px 10px;font-size:10px;color:#516985}.meta-import small{color:#7a8da3}.meta-scroll{max-height:620px}.meta-table td,.meta-table th{white-space:nowrap}.meta-table td small.muted-mini{display:block;font-size:9px;color:#8a9aac}.meta-num{width:78px;border:1px solid #dbe5ef;border-radius:6px;padding:5px 6px;font-size:10px}.meta-table .var-input{width:110px;border:1px solid #dbe5ef;border-radius:6px;padding:5px 6px;font-size:10px}.meta-table .group-preview{font-weight:700;color:#17345a}.meta-footer{padding:8px 16px 12px}.meta-footer .unsaved{color:#b45309;font-weight:700}.btn.pulse{box-shadow:0 0 0 3px rgba(37,99,235,.25)}

/* DATA-PREP-3: chart drag must not select browser text or invoke touch gestures. */
#profile-chart,#full-chrom-chart{user-select:none;-webkit-user-select:none;touch-action:none}
#profile-chart text,#full-chrom-chart text{user-select:none;-webkit-user-select:none;pointer-events:none}
