/* LAUNCH CHECK — the readiness panel (launchcheck.js). Builds on Ship it's classes in ship.css and the builder's tokens. */
.drawer.lcheck{width:760px;max-width:100%;display:flex;flex-direction:column}
.lcpad{margin:16px}
.lcempty{display:flex;align-items:center;gap:10px;padding:20px;color:var(--muted);font-size:13px}
.lcempty .spin,.lcprog .spin{width:13px;height:13px;border-radius:50%;border:2px solid var(--sun);border-top-color:transparent;animation:fx-spin .8s linear infinite;flex:none}
.lchl{display:flex;align-items:center;gap:14px;min-width:0}
.lcring{position:relative;width:64px;height:64px;flex:none}
.lcring svg{display:block}
.lcring .lcr-bg{fill:none;stroke:var(--line);stroke-width:6}
.lcring .lcr-fg{fill:none;stroke:var(--faint);stroke-width:6;stroke-linecap:round;transition:stroke-dasharray .5s ease}
.lcring.ok .lcr-fg{stroke:var(--ok)}.lcring.mid .lcr-fg{stroke:var(--sun)}.lcring.low .lcr-fg{stroke:var(--bad)}
.lcring b{position:absolute;inset:0;display:grid;place-items:center;font:400 22px/1 var(--serif);color:var(--ink)}
.lcstale{display:inline-block;margin-top:4px;font-size:11.5px;color:var(--sun)}
.lcrail .spstep i{font-size:11px}
.lcg.pass i{background:rgba(92,208,143,.16);border-color:rgba(92,208,143,.5);color:var(--ok)}
.lcg.warn i{border-color:var(--sun);color:var(--sun)}
.lcg.fail i{background:rgba(255,92,92,.12);border-color:rgba(255,92,92,.55);color:var(--bad)}
.lcg.needs i{border-style:dashed;color:var(--muted)}
.lcprog{flex-wrap:wrap}.lcprog>div:first-of-type{flex:1;min-width:0;display:flex;flex-direction:column}.lcprog small{color:var(--muted);font-size:11.5px}
.lcbar{flex-basis:100%;height:3px;border-radius:3px;background:var(--line);overflow:hidden}.lcbar i{display:block;height:100%;background:var(--sun);transition:width .4s ease}
.lcsec .sprow:first-of-type{border-top:0}
.lcrow.pass .lcico{background:rgba(92,208,143,.16);border-color:rgba(92,208,143,.5);color:var(--ok)}
.lcrow.warn .lcico{border-color:var(--sun);color:var(--sun);background:rgba(255,215,49,.08)}
.lcrow.fail .lcico{border-color:rgba(255,92,92,.6);color:var(--bad);background:rgba(255,92,92,.1)}
.lcrow.needs .lcico{border-style:dashed;color:var(--muted)}
.lcrow.running .lcico{border-color:var(--sun);border-top-color:transparent;animation:fx-spin .8s linear infinite}
.lcrow.pass .sprm b{color:var(--ink)}
.lcrow.notrun .sprm p{color:var(--faint)}
.lctag{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:999px;border:1px solid rgba(255,92,92,.45);color:#ffb3b3;font:600 10px/1.6 var(--sans);font-style:normal;letter-spacing:.04em;text-transform:uppercase;vertical-align:1px}
.lcfoot{margin:6px 2px 0;font-size:11.5px;color:var(--faint)}
.lcblock{margin-bottom:12px}
.lcsum{display:flex;align-items:center;gap:12px;padding:10px 12px;margin-bottom:12px;border-radius:14px;background:var(--card2);border:1px solid var(--line)}
.lcsum .lcring{width:44px;height:44px}.lcsum .lcring svg{width:44px;height:44px}.lcsum .lcring b{font-size:16px}
.lcsumt{flex:1;min-width:0;display:flex;flex-direction:column}.lcsumt b{font-size:13px}.lcsumt small{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#lcBtn .lcdot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:2px;background:#55545c}
#lcBtn .lcdot.ok{background:var(--ok)}#lcBtn .lcdot.mid{background:var(--sun)}#lcBtn .lcdot.low{background:var(--bad)}
@media (max-width:760px){.drawer.lcheck{width:100vw;border-left:0}.lchead{flex-wrap:wrap}.lcring{width:52px;height:52px}.lcring svg{width:52px;height:52px}}
