/* Launchpad in the INGRAM OS look: phosphor ice on black, mono type, windows with title bars */
body.os-app{
  --bg:#030d15; --bg2:#041320; --card:#051724; --card2:#07202f; --line:rgba(191,230,255,.16); --line2:rgba(191,230,255,.42);
  --ink:#DDF2FF; --soft:#BFE6FF; --mute:#8fb5cf; --dim:#6a8ea8; --ice:#BFE6FF; --ice-d:#8FD3FF; --ice-ink:#030d15;
  --disp:'JetBrains Mono',ui-monospace,monospace; --body:'JetBrains Mono',ui-monospace,monospace;
  background:#030d15;color:var(--soft);font-family:var(--mono);font-size:15px;text-shadow:0 0 5px rgba(143,211,255,.28)}
body.os-app:before{background:radial-gradient(120% 90% at 50% 40%,transparent 55%,rgba(0,0,0,.6));opacity:1;-webkit-mask-image:none;mask-image:none;background-size:auto}
body.os-app:after{opacity:1;background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.12) 0 1px,transparent 1px 3px);z-index:60}
body.os-app ::selection{background:var(--ice);color:var(--ice-ink);text-shadow:none}

/* menubar */
.osbar{background:#041320;border-bottom:1.5px solid var(--ice);backdrop-filter:none;-webkit-backdrop-filter:none}
.osbar .wrap{height:54px;gap:26px}
.osbar .logo{font-size:14px;letter-spacing:.06em;font-weight:700;color:var(--ink)}
.osbar .logo .sub{font-weight:400;color:var(--mute)}
.osbar .mark{width:26px;height:26px;border-color:var(--ice);font-family:var(--mono);font-size:14px}
.osbar .links{gap:4px;font-size:14px;color:var(--soft)}
.osbar .links a{padding:5px 10px}
.osbar .links a:hover,.osbar .links a[aria-current=page]{background:var(--ice);color:var(--ice-ink);text-shadow:none}
.osbar .links a[aria-current=page]:after{display:none}
.osbar .clock{color:var(--soft);font-size:14px}
.osbar .btn.sm{padding:8px 14px}

/* buttons, inputs, labels */
.os-app .btn{border:1.5px solid var(--ice);color:var(--soft);font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em;background:transparent;border-radius:0}
.os-app .btn:hover{background:rgba(191,230,255,.12);transform:none}
.os-app .btn.pri{background:var(--ice);color:var(--ice-ink);text-shadow:none}
.os-app .btn.pri:hover{background:#fff}
.os-app .soon{border-color:var(--line2);color:var(--mute)}
.os-app .label{color:var(--mute);letter-spacing:.12em}
.os-app .label b{color:var(--ink)}
.os-app .tf,.os-app .inp{background:#020a11;border:1.5px solid var(--line2);color:var(--ink)}
.os-app .inp button{background:var(--ice);color:var(--ice-ink);border-left:1.5px solid var(--ice);text-shadow:none}
.os-app .ca{background:#041320;border:1.5px solid var(--line2)}
.os-app .ca .t b{font-family:var(--mono)}

/* page header like a terminal prompt */
.os-app .page-h .h2{font-family:var(--mono);font-weight:700;letter-spacing:-.01em;font-size:clamp(34px,4vw,60px);color:var(--ink);text-shadow:0 0 12px rgba(143,211,255,.35)}
.os-app .page-h .h2:before{content:"> ";color:var(--mute)}
.os-app .page-h .h2 .m{color:var(--mute)}
.os-app .page-h p{color:var(--mute)}

/* windows */
.os-app .win{position:relative;background:#041320;border:1.5px solid var(--ice);box-shadow:6px 6px 0 rgba(0,0,0,.55);padding-top:34px}
.os-app .win:before{content:attr(data-title);position:absolute;left:0;right:0;top:0;height:34px;display:flex;align-items:center;padding:0 44px 0 12px;font-size:13.5px;letter-spacing:.02em;color:var(--ink);border-bottom:1.5px solid var(--ice);
  background:repeating-linear-gradient(0deg,rgba(191,230,255,.14) 0 2px,transparent 2px 4px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.os-app .win:after{content:"×";position:absolute;right:8px;top:7px;width:20px;height:20px;border:1.5px solid var(--ice);display:grid;place-items:center;font-size:12px;line-height:1;color:var(--soft)}

/* shelf */
.os-app .shelves{padding:28px 18px 8px}
.os-app .shelf-board{background:#062030;border-color:var(--line2)}
.os-app .shelf-board:before,.os-app .shelf-board:after{background:#041320;border-color:var(--line2)}
.os-app .jar svg{filter:grayscale(1) sepia(1) hue-rotate(160deg) saturate(1.9) brightness(1.08)}
.os-app .jar .cap b{color:var(--ink)}
.os-app .jar.sel .cap b{color:var(--ice);text-decoration:underline}

/* microscope viewer */
.os-app .viewer{top:84px}
.os-app .viewer-top{border-bottom:1.5px solid var(--line2)}
.os-app .mags,.os-app .mags button{border-color:var(--line2)}
.os-app .mags button.on{background:var(--ice);color:var(--ice-ink);text-shadow:none}
.os-app .viewer .scope canvas{filter:grayscale(1) invert(.93) sepia(.7) hue-rotate(165deg) saturate(2.4) brightness(1.15)}
.os-app .stats,.os-app .stats div{border-color:var(--line2)}
.os-app .log div{border-color:var(--line)}

/* launch */
.os-app .proc{background:#041320}
.os-app .pstep{border-color:var(--line2)}
.os-app .pstep-h h3{font-family:var(--mono);font-weight:700;font-size:22px;color:var(--ink)}
.os-app .pstep-h h3:before{content:"> ";color:var(--mute)}
.os-app .picks button{border:1.5px solid var(--line2);color:var(--soft)}
.os-app .picks button:hover{background:var(--ice);color:var(--ice-ink);text-shadow:none}
.os-app .hostcard,.os-app .verdict{border-color:var(--line2)}
.os-app .hostcard b,.os-app .verdict b{font-family:var(--mono)}
.os-app .file{border-color:var(--line2)}
.os-app .kv div{border-color:var(--line)}
.os-app .card-wrap{padding:34px 12px 12px;top:84px}
.os-app .card-wrap canvas{border:0}
.os-app .ok{color:#9EEBC6}.os-app .bad{color:#FF8F80}.os-app .warn{color:#F2D48A}

/* docs */
.os-app .toc{padding:44px 14px 14px;top:84px;gap:6px}
.os-app .toc a{padding:4px 6px}
.os-app .toc a:hover{background:var(--ice);color:var(--ice-ink);text-shadow:none}
.os-app .prose{padding:52px clamp(18px,3vw,40px) 40px}
.os-app .prose h2{font-family:var(--mono);font-weight:700;font-size:clamp(24px,2.4vw,32px);color:var(--ink)}
.os-app .prose h2 span{color:var(--mute)}
.os-app .prose p,.os-app .prose li{font-size:16px;color:var(--soft)}
.os-app .prose b{color:var(--ink)}
.os-app .prose td,.os-app .prose th{border-color:var(--line2)}
.os-app .callout{background:#062030;border-color:var(--line2);border-left-color:var(--ice)}

/* footer as a status bar */
.osfoot{border-top:1.5px solid var(--ice);background:#041320;padding:14px 0}
.osfoot .wrap{display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:13px}
.osfoot nav{display:flex;gap:18px;grid-template-columns:none}
.osfoot .dimmed{color:var(--dim)}
.os-app .toast{background:var(--ice);color:var(--ice-ink);text-shadow:none}

@media (max-width:860px){ .osbar .clock{display:none} .os-app .viewer,.os-app .card-wrap,.os-app .toc{top:0} }

/* launch wizard: one step at a time */
.os-app .proc .pstep{display:none;border-bottom:0}
.os-app .proc .pstep.cur{display:block}
.os-app .pstep.lock{opacity:1;pointer-events:auto}
.wiz{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:14px clamp(18px,2.4vw,32px) 0}
.wiz button{font-family:var(--mono);font-size:13px;text-align:left;padding:7px 10px;border:1.5px solid var(--line2);color:var(--mute);background:transparent;text-shadow:none;cursor:pointer}
.wiz button.cur{border-color:var(--ice);color:var(--ink);text-shadow:0 0 5px rgba(143,211,255,.35)}
.wiz button.done{border-color:rgba(158,235,198,.55);color:#9EEBC6}
.wiz button[disabled]{opacity:.45;cursor:default}
.wnav{display:flex;justify-content:space-between;gap:10px;margin-top:22px}
.os-app #s4 .cta{display:flex;justify-content:space-between;gap:10px}
.os-app .proc{min-height:520px}
.walletrow{display:flex;align-items:center;gap:14px;margin-top:18px;flex-wrap:wrap}
.walletrow .mono{font-size:13px;color:var(--soft)}
#launchStatus{min-height:1.2em;color:var(--ink)}
.done{border:1.5px solid rgba(158,235,198,.6);padding:14px 16px;margin-top:14px}
.done b{color:#9EEBC6}.done a{color:var(--ink);text-decoration:underline}
.trade{border-top:1.5px solid var(--line2);margin-top:12px;padding-top:12px;display:grid;gap:10px}
.trade .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.trade input{width:110px;background:#020a11;border:1.5px solid var(--line2);color:var(--ink);font-family:var(--mono);padding:8px 10px}
.trade .msg{font-size:13px;color:var(--mute);min-height:1.2em}
.done .ca{margin:12px 0 10px}.done .ca .v{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);color:var(--ink)}
.done .links{display:flex;flex-wrap:wrap;gap:6px 4px;line-height:1.6}.done .hint{margin:8px 0 0}
/* wallet in the header */
.wwrap{position:relative;display:inline-flex}
.osbar .wbtn{text-transform:none;letter-spacing:.02em;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.osbar .wbtn.on{border-color:var(--ice);color:var(--ink)}
.wbtn .wd{width:7px;height:7px;border-radius:50%;background:#9EEBC6;box-shadow:0 0 6px #9EEBC6}
.wmenu{position:absolute;right:0;top:calc(100% + 6px);z-index:80;display:grid;min-width:200px;background:#041320;border:1.5px solid var(--ice);box-shadow:6px 6px 0 rgba(0,0,0,.55)}
.wmenu button{font-family:var(--mono);font-size:13px;text-align:left;padding:10px 12px;color:var(--soft);background:none;border:0;border-bottom:1px solid var(--line);cursor:pointer}
.wmenu button:last-child{border-bottom:0}.wmenu button:hover{background:var(--ice);color:var(--ice-ink);text-shadow:none}
/* launch form extras */
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.fl span em{font-style:normal;text-transform:none;letter-spacing:0;color:var(--dim);margin-left:6px}
textarea.tf{resize:vertical;min-height:58px;line-height:1.45;padding:12px 16px}
.devbuy{margin:14px 0 4px}.devbuy .inrow{display:flex;align-items:center;gap:10px;margin:0;text-transform:none;letter-spacing:0}
.devbuy .inrow .tf{max-width:160px}.devbuy .inrow .mono{display:inline;margin:0;color:var(--soft);font-size:14px}
.devbuy small{display:block;margin-top:8px;color:var(--mute);font-size:13px;line-height:1.5}
@media (max-width:860px){.grid3{grid-template-columns:1fr}}

/* sticky side windows: .win sets position:relative, which turned top:84px into an offset (windows out of line) */
.os-app .viewer.win,.os-app .card-wrap.win,.os-app .toc.win{position:sticky}
.os-app .hint,.os-app .page-h p{color:var(--mute)}

/* shelf toolbar, legend, list */
.shelf-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px 6px}
.shelf-tools #colCount{margin-left:auto}
.seg{display:inline-flex;border:1.5px solid var(--line2)}
.seg button{font-family:var(--mono);font-size:13px;padding:6px 12px;color:var(--soft);background:none;border:0;cursor:pointer;text-shadow:none}
.seg button+button{border-left:1.5px solid var(--line2)}
.seg button.on{background:var(--ice);color:var(--ice-ink)}
.os-app .shelves #jarsView{padding-top:22px}
.legend{margin:0;padding:14px 18px 18px;border-top:1.5px solid var(--line);font-size:13px;line-height:1.6;color:var(--mute)}
.legend b{color:var(--ink);font-weight:500}.legend a{color:var(--ice);text-decoration:underline}
.ptable-wrap{overflow-x:auto;padding:8px 12px 12px}
.ptable{width:100%;border-collapse:collapse;font-size:13.5px;min-width:640px}
.ptable th{font-weight:400;text-align:left;color:var(--mute);font-size:12px;letter-spacing:.08em;text-transform:uppercase;padding:8px 8px;border-bottom:1.5px solid var(--line2)}
.ptable td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:middle;color:var(--soft)}
.ptable td b{color:var(--ink);font-weight:600;display:block}.ptable td span{display:block;color:var(--mute);font-size:12px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ptable tbody tr{cursor:pointer}.ptable tbody tr:hover td{background:rgba(191,230,255,.06)}.ptable tbody tr.sel td{background:rgba(191,230,255,.12)}
.ptable td.empty{text-align:center;padding:28px;color:var(--mute)}.ptable td.empty a{color:var(--ice);text-decoration:underline}
.ptable .bar{display:inline-block;width:56px;height:6px;border:1px solid var(--line2);margin-right:8px;vertical-align:middle}.ptable .bar i{display:block;height:100%;background:var(--ice)}
.ptable .cacell{white-space:nowrap}
.mini{font-family:var(--mono);font-size:12px;padding:4px 7px;border:1px solid var(--line2);color:var(--soft);background:none;cursor:pointer;margin-right:6px;text-decoration:none}
.mini:hover{background:var(--ice);color:var(--ice-ink);text-shadow:none}
/* contract + links of the selected parasite */
.cablock{margin:12px 0 4px}.cablock .ca{max-width:none}
.cablock .links{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:13px}.cablock .links a{color:var(--ice);text-decoration:underline}
