/* PoreStore interface: launcher-specific fields (compute tiers, queue-dependent fields, network, import and export launchers). */

/* Sections inside the launch form: target, method, compute, convergence… separated by hairlines */
.ui-launchers-group{display:flex;flex-direction:column;gap:14px;min-width:0;padding-top:18px;border-top:1px solid var(--line)}
.ui-launch>section.ui-launchers-group:first-of-type{padding-top:2px;border-top:0}
.ui-launchers-gh{margin:0}
.ui-launchers-ghrow{display:flex;justify-content:space-between;align-items:baseline;gap:6px 14px;flex-wrap:wrap}
.ui-launchers-group>.ui-note{margin:0}
.ui-launchers-target{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 16px;align-items:start}
.ui-launchers-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px}
.ui-launchers-cond{min-width:0}

/* Selects: the native control without the classic component classes, with a quiet chevron */
.ui-launch select:not([multiple]){appearance:none;-webkit-appearance:none;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,var(--ink3) 50%),linear-gradient(135deg,var(--ink3) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat;text-overflow:ellipsis}
.ui-launch select:disabled,.ui-launch input:disabled{opacity:.55;cursor:not-allowed}
.ui-launch input::placeholder{color:var(--ink3)}

/* Segmented choice (direction, axis) */
.ui-launchers-seg{display:inline-flex;flex-wrap:wrap;gap:2px;width:fit-content;max-width:100%;padding:2px;border:1px solid var(--line2);border-radius:var(--pill);background:var(--band)}
.ui-launchers-seg label{position:relative;display:flex}
.ui-launchers-seg input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.ui-launchers-seg span{display:flex;align-items:center;justify-content:center;min-height:30px;padding:0 13px;border-radius:calc(var(--pill) - 2px);font:500 14px/1.2 var(--sans);color:var(--ink2);white-space:nowrap;cursor:pointer}
.ui-launchers-seg label:hover span{color:var(--ink)}
.ui-launchers-seg input:checked+span{background:var(--accent);color:var(--accent-ink)}
.ui-launchers-seg input:focus-visible+span{outline:2px solid var(--accent);outline-offset:1px}

/* Checkboxes sit inline with their label; help text lines up under the label */
.ui-launchers-checkl{display:flex;align-items:flex-start;gap:9px;font:500 14px/1.35 var(--sans);color:var(--ink);cursor:pointer}
.ui-launchers-checkl .ui-cb{appearance:none;-webkit-appearance:none;display:grid;place-content:center;flex:none;width:16px;height:16px;margin:1px 0 0;border:1px solid var(--line2);border-radius:calc(4px*var(--rf));background:var(--surface)}
.ui-launchers-checkl .ui-cb:checked{background:var(--accent);border-color:var(--accent)}
.ui-launchers-checkl .ui-cb:checked::after{content:"";width:8px;height:4px;margin-top:-2px;border:2px solid var(--accent-ink);border-top:0;border-right:0;transform:rotate(-45deg)}
.ui-launchers-checkl .ui-cb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ui-launchers-check .ui-help,.ui-launchers-check .ui-err{padding-left:24px}
.ui-launchers-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px 16px}

/* Backend price line under the queue select */
.ui-launchers-price b{font-weight:500;color:var(--ink2)}

/* Compute tier comparison, filled by the launcher script after each quote */
.ui-launchers-compute>.ui-launchers-tiers{grid-column:1/-1}
.ui-launchers-tiers{border-radius:var(--r-card);background:var(--band);border:1px solid var(--line)}
.ui-launchers-tiers>summary{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:13.5px;color:var(--ink2);cursor:pointer;list-style:none}
.ui-launchers-tiers>summary::-webkit-details-marker{display:none}
.ui-launchers-tiers>summary::before{content:"";width:5px;height:5px;border-right:1.5px solid var(--ink3);border-bottom:1.5px solid var(--ink3);transform:rotate(-45deg);transition:transform .12s}
.ui-launchers-tiers[open]>summary::before{transform:rotate(45deg)}
.ui-launchers-tiers>summary:hover{color:var(--ink)}
.ui-launchers-advanced>.ui-grid2{padding:4px 12px 12px}
.ui-launch #compute-tier-options{display:flex;flex-direction:column;gap:2px;padding:0 6px 8px;color:var(--ink2);font-size:13.5px}
.ui-launch #compute-tier-options:empty::after{content:"–";padding:4px 6px;color:var(--ink3)}
.ui-launch #compute-tier-options>div{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 14px;margin:0;padding:6px;border-radius:var(--r-sm);background:none;font-weight:400}
.ui-launch #compute-tier-options>div>span:first-child{flex:1 1 16em;min-width:0}
.ui-launch #compute-tier-options>div>span:last-child{font:500 13.5px/1.3 var(--mono);color:var(--ink);white-space:nowrap}
.ui-launch #compute-tier-options>div[aria-current]{background:var(--accent-soft);color:var(--ink)}
.ui-launch #compute-tier-options>div.text-error,.ui-launch #compute-tier-options>div.text-error>span:last-child{color:var(--bad)}

/* Quote message tones set by the launcher script */
.ui-launch #credit-estimate-message.text-error{color:var(--bad)}
.ui-launch #credit-estimate-message.text-success{color:var(--accent)}
.ui-launch #credit-estimate-message.text-base-content\/70{color:var(--ink2)}

/* Import: file picker, upload progress, and the panel class the import script looks for (.card-body form) */
.ui-launchers-panel.card-body{display:block;flex:none;gap:0;padding:16px 18px;font-size:inherit}
.ui-launchers-file{width:100%;min-height:36px;padding:3px;border:1px dashed var(--line2);border-radius:var(--pill);background:var(--band);color:var(--ink2);font:14px/1.3 var(--sans);cursor:pointer}
.ui-launchers-file::file-selector-button{margin-right:12px;min-height:28px;padding:0 12px;border:1px solid var(--line2);border-radius:calc(var(--pill) - 2px);background:var(--surface);color:var(--ink);font:500 14px/1 var(--sans);cursor:pointer}
.ui-launchers-file:hover::file-selector-button{border-color:var(--ink3)}
.ui-launchers-progress{border-radius:var(--r-card);background:var(--accent-soft);padding:12px 14px}
.ui-launchers-progress-row{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-size:13.5px;color:var(--ink2)}
.ui-launchers-progress progress{display:block;width:100%;height:6px;border:0;border-radius:3px;background:var(--sunk);overflow:hidden;appearance:none;-webkit-appearance:none}
.ui-launchers-progress progress::-webkit-progress-bar{background:var(--sunk)}
.ui-launchers-progress progress::-webkit-progress-value{background:var(--accent);transition:width .3s}
.ui-launchers-progress progress::-moz-progress-bar{background:var(--accent)}
.ui-launch .ui-btn.loading{display:inline-flex;width:auto;aspect-ratio:auto;mask-image:none;-webkit-mask-image:none;background-color:var(--accent);opacity:.7;pointer-events:none}
.ui-launch .ui-btn.loading::before{content:"";width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ui-launchers-spin .7s linear infinite}
@keyframes ui-launchers-spin{to{transform:rotate(360deg)}}

@media (max-width:560px){
  .ui-launchers-target,.ui-launchers-grid3{grid-template-columns:1fr}
  .ui-launchers-seg{display:flex;width:100%}
  .ui-launchers-seg label{flex:1 1 0}
  .ui-launchers-seg span{width:100%;padding:0 8px}
  .ui-launch-foot .ui-btn-lg{flex:1;min-width:0;padding:0 10px;font-size:14px;white-space:normal}
}

/* Sub-blocks inside a section: a method's own options, the parallel backend's options */
.ui-launchers-sub{display:flex;flex-direction:column;gap:14px;min-width:0;padding:14px 16px 16px;border-radius:var(--r-card);background:var(--band);border:1px solid var(--line)}
.ui-launchers-subh{margin:0;font:600 14px/1.3 var(--sans);color:var(--ink)}
