/* LUMEN Research Hub · quiet graphite, ice-blue navigation, green evidence states */
:root{--hub-surface:#121412;--hub-raised:#181b19;--hub-hover:#202521;--hub-stroke:#2a302d;--hub-accent:#a9d5f0;--hub-muted:#9aa69e;--hub-glow:#a9d5f01a}
html,body{min-height:100%;background:radial-gradient(1000px 420px at 80% -140px,#18221f 0%,transparent 70%),var(--bg);font-family:var(--grot);color:var(--ink)}
body{display:flex;flex-direction:column}
button,input,textarea,select{font:inherit}
button{transition:background-color .15s,border-color .15s,transform .15s,box-shadow .15s}
button:hover:not(:disabled){border-color:#a9d5f077;background-color:var(--hub-hover)}
button:active:not(:disabled){transform:translateY(1px)}
:focus-visible{outline:2px solid var(--hub-accent)!important;outline-offset:2px}
.top{position:sticky;top:0;z-index:20;min-height:70px;display:flex;align-items:center;gap:24px;padding:10px clamp(16px,3vw,38px);background:#0b0d0ceF;border-bottom:1px solid var(--hub-stroke);backdrop-filter:blur(16px)}
.brand{display:flex;align-items:center;gap:11px;flex:0 0 218px;color:var(--ink);text-decoration:none}
.brandmark,.login-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;color:#101713;background:linear-gradient(145deg,#c9e9fa,#84b9db);font:700 20px/1 var(--grot);box-shadow:0 5px 20px #9cc8e822}
.brandname{display:grid;gap:0}.brandname b{font:700 15px/1.2 var(--grot);letter-spacing:.17em;color:var(--hub-accent)}
.brandname small{color:var(--hub-muted);font:600 9px/1.2 var(--grot);letter-spacing:.18em}
.hub-tools{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.global-search{position:relative;display:flex;align-items:center;gap:9px;max-width:580px;width:100%;height:42px;padding:0 12px;border:1px solid var(--hub-stroke);border-radius:12px;background:#111513;color:var(--hub-muted)}
.global-search:focus-within{border-color:#a9d5f088;box-shadow:0 0 0 3px var(--hub-glow)}
.global-search>span{font-size:22px;line-height:1}
.global-search input{width:100%;min-width:0;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:13px}
.global-search input::placeholder{color:#77827b}
.global-search input:focus{outline:0}
.global-search kbd{flex:none;padding:2px 6px;border:1px solid var(--hub-stroke);border-radius:5px;color:var(--hub-muted);font:11px JBMono,monospace;white-space:nowrap}
.quick-results{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:40;display:grid;gap:4px;max-height:min(60vh,440px);overflow:auto;padding:8px;border:1px solid var(--hub-stroke);border-radius:14px;background:#111513;box-shadow:0 18px 55px #000a}
.quick-results[hidden]{display:none}
.quick-results .search-caption{padding:6px 8px 3px;color:var(--hub-muted);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.quick-results button{display:grid;grid-template-columns:26px minmax(0,1fr);gap:9px;align-items:center;width:100%;padding:9px;border:1px solid transparent;border-radius:9px;background:transparent;text-align:left;color:var(--ink);cursor:pointer}
.search-type{display:grid;place-items:center;width:25px;height:25px;border:1px solid var(--hub-stroke);border-radius:8px;color:var(--hub-accent);font-size:12px}
.search-copy{display:grid;min-width:0}.search-copy b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.search-copy small{color:var(--hub-muted);font-size:11px}
.topr{margin-left:auto;flex:none;display:flex;align-items:center;justify-content:flex-end;gap:8px}
.pill{padding:5px 10px;border:1px solid var(--hub-stroke);border-radius:99px;background:#121714;color:var(--hub-muted);font:11px JBMono,monospace;white-space:nowrap}
.pill.on{color:#a9e7ba;border-color:#7fc79a55}.pill.off{color:#f0cf8b;border-color:#e5b45455}
#app{flex:1;width:100%;max-width:1560px;margin:0 auto;padding:26px clamp(16px,3vw,38px) 52px}
.hub-layout{display:grid;grid-template-columns:218px minmax(0,1fr);gap:30px;align-items:start}
.tabs{position:sticky;top:94px;z-index:8;display:flex;flex-direction:column;gap:5px;margin:0;padding:10px 8px;border:1px solid var(--hub-stroke);border-radius:18px;background:#101311eF;box-shadow:0 15px 50px #0002}
.tabs .nav-label{padding:10px 10px 4px;color:#718077;font-size:9px;font-weight:700;letter-spacing:.16em}
.tabs .nav-label-lower{margin-top:15px;border-top:1px solid var(--hub-stroke);padding-top:18px}
.tabs button{display:flex;align-items:center;gap:11px;min-height:42px;padding:8px 11px;border:1px solid transparent;border-radius:10px;background:transparent;color:#a6b0a9;text-align:left;font-size:13px;font-weight:600;cursor:pointer}
.tabs button:hover{background:#1a201d;color:var(--ink)}
.tabs button.on,.tabs button[aria-current=page]{border-color:#a9d5f027;background:linear-gradient(90deg,#a9d5f019,transparent);color:var(--hub-accent);box-shadow:inset 2px 0 var(--hub-accent)}
.nav-icon{display:grid;place-items:center;width:23px;height:23px;color:inherit;font-size:17px}
.nav-foot{display:grid;grid-template-columns:9px 1fr;gap:4px 8px;align-items:center;margin:18px 6px 3px;padding:13px 9px 3px;border-top:1px solid var(--hub-stroke);color:#a7b2aa;font-size:11px}
.nav-foot small{grid-column:2;color:#738078;font-size:10px}
.nav-live{width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 11px #7fc79a88}
.workspace{min-width:0}
.rview{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:15px;align-content:start;min-width:0}
.page-intro{grid-column:1/-1;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:3px 2px 7px}
.page-intro h1{margin:0;font-size:clamp(23px,2.3vw,31px);font-weight:650;letter-spacing:-.035em}
.page-intro p{max-width:760px;margin:5px 0 0;color:var(--hub-muted);font-size:13px}
.eyebrow{margin:0 0 7px;color:var(--hub-accent);font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.rview>.card{grid-column:span 6;gap:13px;padding:17px 19px;border:1px solid var(--hub-stroke);border-radius:15px;background:linear-gradient(145deg,#151916,#111412 72%);box-shadow:0 8px 25px #0002;min-width:0}
.rview>.card:first-of-type{grid-column:1/-1}
.rview>.card:has(.scroll),.rview>.card:has(.matrix),.rview>.card:has(.crit){grid-column:1/-1}
.chead{align-items:center;gap:8px 12px;padding-bottom:9px;border-bottom:1px solid #ffffff0a}
.chead h2{font:650 15px/1.35 var(--grot);letter-spacing:-.01em}
.chead .soft{margin-left:auto;font-size:11px}
.row{align-items:center;gap:9px}
button.solid,button.ghost,button.act,button.warnb{min-height:38px;border-radius:10px;padding:8px 13px;font-size:12.5px;font-weight:600}
button.solid{background:var(--hub-accent);border-color:var(--hub-accent);color:#101814;box-shadow:0 5px 18px #a9d5f01c}
button.act{background:#9ce3ad12;border-color:#7fc79a55;color:#abe5b8}
button.ghost{background:#171b19;border-color:var(--hub-stroke);color:#d4ddd7}
button.warnb{background:#e5b45412;border-color:#e5b45455;color:#f0c87c}
input,textarea,select{width:100%;min-width:0;max-width:100%;padding:10px 11px;border:1px solid var(--hub-stroke);border-radius:9px;background:#0d100f;color:var(--ink);font:13px var(--grot)}
input[type=checkbox]{width:17px;height:17px;accent-color:#9cc8e8}
input::placeholder,textarea::placeholder{color:#69756d}
input:focus,textarea:focus,select:focus{border-color:#a9d5f077;outline:0;box-shadow:0 0 0 3px var(--hub-glow)}
textarea{min-height:84px;resize:vertical;line-height:1.45}
label{display:grid;gap:6px;color:#aab5ad;font-size:11px;font-weight:600}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
fieldset{min-width:0;margin:0;padding:13px;border:1px solid var(--hub-stroke);border-radius:12px}
fieldset legend{padding:0 6px;color:var(--hub-accent);font-size:11px;font-weight:700;letter-spacing:.04em}
.card details{border:1px solid var(--hub-stroke);border-radius:11px;background:#0d100f;padding:11px 13px}
.card details summary{color:#d4ddd7;font-size:12px;font-weight:650;cursor:pointer}
.card details[open] summary{margin-bottom:12px}
.note{padding:9px 11px;border-left:2px solid #a9d5f077;border-radius:0 8px 8px 0;background:#a9d5f008;color:#a0aca4;font-size:11.5px;line-height:1.55}
.msg{margin:0;color:var(--hub-muted);font-size:12px}.msg.ok{color:var(--good)}.msg.no{color:var(--bad)}
.kpis{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:9px}
.kpi{padding:11px 12px;border:1px solid var(--hub-stroke);border-radius:11px;background:#0e110f}
.kpi span{font-size:9.5px;font-weight:700;letter-spacing:.09em}.kpi b{font:600 19px/1.35 var(--grot);letter-spacing:-.02em}.kpi small{line-height:1.4}
.scroll{overflow:auto;max-width:100%;border:1px solid var(--hub-stroke);border-radius:11px}
table{font:12px/1.45 var(--grot);min-width:600px}
th{padding:11px 12px;background:#171b19;color:#8f9c93;font-size:9px;font-weight:700;letter-spacing:.1em;position:sticky;top:0}
td{padding:10px 12px;border-bottom:1px solid #ffffff0a;color:#d2dad4;white-space:normal}
tr:last-child td{border-bottom:0}
tbody tr:hover td{background:#ffffff04}
a{color:var(--hub-accent);text-decoration-color:#a9d5f044;text-underline-offset:3px}
a:hover{text-decoration-color:currentColor}
.mono{font-family:JBMono,ui-monospace,monospace;font-size:11px;overflow-wrap:anywhere}
.soft{color:var(--hub-muted)}
.ok,.good{color:var(--good)}.no,.bad{color:var(--bad)}.warn{color:#eac674}
.st{padding:3px 9px;font:10px JBMono,monospace}
.st-observed{color:#a8e5b7;border-color:#7fc79a55;background:#7fc79a0a}
.st-vendor_claimed{color:#add5f3;border-color:#9ecbff55;background:#9ecbff0a}
.st-derived{color:#d1b4fb;border-color:#c8a6ff55;background:#c8a6ff0a}
.st-contradictory{color:#f0c87c;border-color:#e5b45466;background:#e5b4540a}
.st-not_established{color:#a0aca4}
.crit{padding:10px;border:1px solid var(--hub-stroke);border-radius:10px}
.rule{padding:13px;border:1px solid var(--hub-stroke);border-radius:12px;background:#0d100f}
.matrix{min-width:max(680px,calc(170px + var(--n,3)*190px))}
.matrix td,.matrix th{width:190px}.matrix td:first-child,.matrix th:first-child{width:170px}
.matrix .mono{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.login{display:none;max-width:440px;margin:7vh auto;padding:32px;border:1px solid var(--hub-stroke);border-radius:20px;background:linear-gradient(145deg,#151916,#101311);box-shadow:0 25px 80px #0005}
.login:not([hidden]){display:grid;gap:13px}
.login-mark{width:48px;height:48px;font-size:26px}
.login h1{margin:0;font-size:28px;letter-spacing:-.04em}
.login .eyebrow{margin:2px 0 -8px}
.login>label{margin-top:5px}
.login .solid{width:100%;margin-top:4px}
.foot{padding:15px 16px max(15px,env(safe-area-inset-bottom));border-top:1px solid var(--hub-stroke);color:#849087;font:11px/1.5 var(--grot)}
@media(min-width:1200px){.rview>.card{padding:20px 22px}}
@media(max-width:960px){
 .top{gap:14px}.brand{flex-basis:auto}.brandname small{display:none}
 #app{padding-top:17px}
 .hub-layout{grid-template-columns:1fr;gap:15px}
 .tabs{position:sticky;top:69px;flex-direction:row;align-items:center;gap:4px;padding:6px;overflow-x:auto;white-space:nowrap;border-radius:12px}
 .tabs .nav-label,.nav-foot{display:none}
 .tabs button{flex:none;min-height:38px;padding:7px 10px;font-size:12px}
 .tabs button.on,.tabs button[aria-current=page]{box-shadow:inset 0 -2px var(--hub-accent)}
 .rview>.card{grid-column:span 6}
 .rview>.card:first-of-type,.rview>.card:has(.scroll),.rview>.card:has(.matrix),.rview>.card:has(.crit){grid-column:1/-1}
}
@media(max-width:700px){
 .top{min-height:62px;padding:9px 13px;gap:10px;flex-wrap:wrap}
 .brandmark{width:32px;height:32px;border-radius:10px}.brandname b{font-size:13px}
 .hub-tools{order:3;flex:1 0 100%;gap:8px}
 .global-search{height:38px}
 .global-search kbd{display:none}
 #new-job{flex:none;min-height:38px;padding:7px 9px;font-size:11px}
 .topr{margin-left:auto;gap:5px}.pill{padding:4px 7px;font-size:9px}
 #out{min-height:32px;padding:5px 8px;font-size:10px}
 #app{padding:14px 12px 42px}
 .tabs{top:108px}
 .tabs button{padding:7px 9px}.nav-icon{font-size:15px}.tabs button span:last-child{font-size:11px}
 .rview{gap:11px}
 .rview>.card,.rview>.card:first-of-type,.rview>.card:has(.scroll),.rview>.card:has(.matrix),.rview>.card:has(.crit){grid-column:1/-1;padding:15px}
 .page-intro{align-items:flex-start}
 .page-intro h1{font-size:24px}
 .page-intro p{font-size:12px}
 .grid2{grid-template-columns:1fr}
 .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .card .row>*{max-width:100%}
 .login{margin:5vh auto;padding:24px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}


/* Research cockpit and high-frequency actions */
.rview>.card:has(.flow-steps),.rview>.card:has(.job-create){grid-column:1/-1}
.flow-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.flow-step{display:grid;grid-template-columns:28px 1fr;gap:1px 10px;align-items:center;min-width:0;padding:12px;border:1px solid var(--hub-stroke);border-radius:11px;background:#101411;text-align:left;color:var(--ink);cursor:pointer}
.flow-step>span{grid-row:span 2;display:grid;place-items:center;width:27px;height:27px;border-radius:8px;background:#a9d5f011;color:var(--hub-accent);font:11px JBMono,monospace}
.flow-step b{font-size:12px}.flow-step small{color:var(--hub-muted);font-size:10.5px}
.resume-line{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.resume-line>div{display:grid;gap:2px;flex:1 1 180px;min-width:0}
.resume-line>div b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.resume-line small{color:var(--hub-muted);font-size:11px}
.status-dot{width:9px;height:9px;flex:none;border-radius:50%;background:#758078}
.status-dot.is-running{background:var(--good);box-shadow:0 0 0 4px #7fc79a18,0 0 10px #7fc79a88}
.status-legend{display:grid;gap:8px}
.status-legend>div{display:grid;grid-template-columns:max-content 1fr;gap:10px;align-items:start}
.status-legend>div>span:last-child{color:var(--hub-muted);font-size:11px}
.toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.toolbar>select{width:auto;min-width:150px}
.toolbar .result-count{margin-left:auto;color:var(--hub-muted);font-size:11px}
.filter-search{display:flex;align-items:center;gap:8px;flex:1 1 240px;min-width:180px;padding:0 10px;border:1px solid var(--hub-stroke);border-radius:9px;background:#0d100f;color:var(--hub-muted)}
.filter-search input{border:0;background:transparent;box-shadow:none!important;padding:9px 0}
.filter-search input:focus{outline:0}
.table-sub{display:block;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--hub-muted);font-size:10.5px;margin-top:3px}
.text-link{padding:0;border:0;background:transparent;color:var(--hub-accent);font-size:11px;text-align:left;cursor:pointer}
.icon-btn{width:30px;height:30px;border:1px solid var(--hub-stroke);border-radius:8px;background:#171b19;color:var(--hub-accent);cursor:pointer}
.empty-state,.search-empty{padding:12px;border:1px dashed var(--hub-stroke);border-radius:10px;color:var(--hub-muted);font-size:12px}
.search-empty{margin:4px 8px}
.job-create{display:grid;gap:14px}
.job-create>summary{display:flex;align-items:center;justify-content:space-between;gap:10px}
.job-create>summary small{color:var(--hub-muted);font-size:10px;font-weight:400}
.job-create fieldset{display:grid;gap:11px}
.job-create fieldset .note{margin:0}
.checkline{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid var(--hub-stroke);border-radius:9px;background:#101411}
.checkline input{flex:none}.checkline input[type=checkbox]{width:17px}
button.text-link:hover{background:transparent;text-decoration:underline}
@media(max-width:700px){
 .flow-steps{grid-template-columns:1fr}
 .flow-step{min-height:54px}
 .toolbar>select{flex:1 1 140px}
 .toolbar .result-count{margin-left:0;width:100%}
 .job-create>summary{align-items:flex-start;flex-direction:column}
}
