.loft-install-modal{position:fixed;inset:0;z-index:var(--z-modal);background:var(--color-surface-overlay);display:flex;justify-content:center;overflow-y:auto;padding:var(--space-6) var(--space-5);backdrop-filter:blur(6px);animation:loft-install-fade-in .18s ease-out}@keyframes loft-install-fade-in{0%{opacity:0}to{opacity:1}}.loft-install-modal__panel{position:relative;width:100%;max-width:520px;margin:auto;background:var(--color-surface-elevated);border:1px solid var(--color-border-default);border-radius:var(--radius-hero);box-shadow:0 30px 80px #0009,0 0 0 1px #06b6d41f;padding:var(--space-8) var(--space-6) var(--space-6);animation:loft-install-slide-in .22s cubic-bezier(.2,.8,.2,1);outline:none;align-self:flex-start}@keyframes loft-install-slide-in{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.loft-install-modal__close{position:absolute;top:var(--space-3);right:var(--space-3);width:32px;height:32px;display:grid;place-items:center;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s,color .15s}.loft-install-modal__close:hover{background:var(--color-surface-card);border-color:var(--color-border-default);color:var(--color-text-heading)}.loft-install-modal__head{text-align:center;margin-bottom:var(--space-5)}.loft-install-modal__icon{font-size:2.2rem;color:var(--accent-cyan);display:block;margin-bottom:var(--space-3);filter:drop-shadow(0 0 12px rgba(6,182,212,.3))}.loft-install-modal__head h2{font-size:1.35rem;font-weight:800;letter-spacing:-.02em;color:var(--color-text-heading);margin:0 0 var(--space-2)}.loft-install-modal__head p{font-size:.92rem;line-height:1.55;color:var(--color-text-body);margin:0 auto;max-width:420px}.loft-install-modal__body{padding-top:var(--space-4);border-top:1px solid var(--color-border-subtle)}.loft-install-modal__body>p{color:var(--color-text-body);font-size:.9rem;line-height:1.6;margin:0 0 var(--space-3)}.loft-install-modal__cta{display:inline-flex;align-items:center;gap:var(--space-2);padding:10px 22px;margin-top:var(--space-2);background:var(--btn-cta-bg);color:var(--raw-white);border:none;border-radius:var(--radius-md);font-size:.92rem;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:var(--btn-cta-shadow);transition:transform .15s,box-shadow .15s}.loft-install-modal__cta:hover{transform:translateY(-1px);box-shadow:0 0 28px #06b6d466}.loft-install-modal__steps{counter-reset:loft-install-step;list-style:none;padding:0;margin:var(--space-3) 0;display:flex;flex-direction:column;gap:var(--space-3)}.loft-install-modal__steps li{counter-increment:loft-install-step;position:relative;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-10);background:var(--color-surface-card);border:1px solid var(--color-border-default);border-radius:var(--radius-lg);color:var(--color-text-body);font-size:.9rem;line-height:1.5}.loft-install-modal__steps li:before{content:counter(loft-install-step);position:absolute;top:50%;left:var(--space-3);transform:translateY(-50%);width:24px;height:24px;display:grid;place-items:center;background:#06b6d424;color:var(--accent-cyan);border-radius:999px;font-family:var(--font-mono);font-size:.72rem;font-weight:700}.loft-install-modal__steps strong{color:var(--color-text-heading);font-weight:600}.loft-install-modal__kbd{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:22px;padding:0 6px;background:var(--color-surface-primary);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.78rem;color:var(--accent-cyan)}.loft-install-modal__sub{font-size:.82rem;font-weight:700;color:var(--color-text-heading);text-transform:uppercase;letter-spacing:.08em;margin:var(--space-5) 0 var(--space-2)}.loft-install-modal__note{margin-top:var(--space-3);padding:var(--space-3);background:#60a5fa0f;border-left:2px solid var(--color-info);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:.82rem;line-height:1.5}.loft-install-modal__note--quiet{background:transparent;border-left-color:var(--color-border-default)}.loft-install-modal__note a{color:var(--accent-cyan);text-decoration:none}.loft-install-modal__note a:hover{text-decoration:underline}.loft-install-modal__warn{display:flex;gap:var(--space-3);padding:var(--space-4);margin:var(--space-4) 0;background:#fbbf2414;border:1px solid var(--color-warning);border-radius:var(--radius-lg);color:var(--color-text-body)}.loft-install-modal__warn>i{color:var(--color-warning);font-size:1.4rem;flex-shrink:0;margin-top:2px}.loft-install-modal__warn strong{display:block;color:var(--color-text-heading);font-weight:700;margin-bottom:6px}.loft-install-modal__warn p{font-size:.9rem;line-height:1.55;margin:0 0 var(--space-2)}.loft-install-modal__warn a{color:var(--accent-cyan);text-decoration:none}.loft-install-modal__warn a:hover{text-decoration:underline}.loft-install-modal__warn code{font-family:var(--font-mono);font-size:.85em;padding:1px 5px;background:var(--color-surface-card);border-radius:4px;color:var(--accent-cyan)}.loft-install-modal__steps--tight{margin:0;padding-left:var(--space-5)}.loft-install-modal__steps--tight li{background:transparent;border:none;padding:0;display:list-item;list-style:decimal;margin-bottom:4px}.loft-install-modal__steps--tight li:before{display:none}.loft-install-modal__footer{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-4);margin-top:var(--space-4);border-top:1px solid var(--color-border-subtle);flex-wrap:wrap}.loft-install-modal__help{display:inline-flex;align-items:center;gap:6px;color:var(--accent-cyan);text-decoration:none;font-size:.82rem;font-weight:500;transition:filter .15s}.loft-install-modal__help:hover{filter:brightness(1.2)}.loft-install-modal__actions{display:flex;gap:var(--space-2);margin-left:auto}.loft-install-modal__secondary{padding:7px 14px;background:transparent;border:1px solid var(--color-border-default);color:var(--color-text-body);border-radius:var(--radius-md);font-size:.85rem;font-weight:600;cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s}.loft-install-modal__secondary:hover{background:var(--color-surface-card);border-color:var(--color-border-hover);color:var(--color-text-heading)}@media(max-width:640px){.loft-install-modal__panel{padding:var(--space-6) var(--space-4) var(--space-4)}.loft-install-modal__head h2{font-size:1.2rem}.loft-install-modal__footer{justify-content:stretch}.loft-install-modal__actions{width:100%;justify-content:flex-end}}.loft-install-modal__banner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin:0 0 var(--space-5);padding:var(--space-4) var(--space-5);background:linear-gradient(135deg,#06b6d41a,#06b6d405);border:1px solid rgba(6,182,212,.35);border-radius:var(--radius-lg);color:var(--color-text-body);font-family:var(--font-sans);font-size:.9375rem}.loft-install-modal__banner>div{display:flex;flex-direction:column;gap:2px}.loft-install-modal__banner strong{color:var(--color-heading);font-weight:600}.loft-install-modal__banner span{color:var(--color-text-secondary);font-size:.875rem}.loft-install-modal__banner--ok{border-color:#4ade8059;background:linear-gradient(135deg,rgba(74,222,128,.1),transparent 70%)}.loft-install-modal__banner--ok i{color:var(--color-status-success, #4ade80);font-size:1.25rem}.loft-install-modal__primary{appearance:none;-webkit-appearance:none;padding:.625rem 1.25rem;background:var(--color-accent-cyan);border:none;border-radius:var(--radius-md);color:var(--color-surface-primary);font-family:var(--font-sans);font-size:.9375rem;font-weight:600;cursor:pointer;flex-shrink:0;transition:filter .12s ease}.loft-install-modal__primary:hover:not(:disabled),.loft-install-modal__primary:focus-visible:not(:disabled){filter:brightness(1.1);outline:2px solid var(--color-accent-cyan);outline-offset:2px}.loft-install-modal__primary:disabled{opacity:.6;cursor:progress}.loft-install-accordion__group{margin:0 0 var(--space-5)}.loft-install-accordion__group-label{margin:0 0 var(--space-2);font-family:var(--font-mono);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary)}.loft-install-accordion__item{margin:0 0 .5rem;background:var(--color-surface-primary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);overflow:hidden;transition:border-color .12s ease}.loft-install-accordion__item.is-open{border-color:#06b6d459}.loft-install-accordion__head{appearance:none;-webkit-appearance:none;width:100%;display:flex;align-items:center;gap:.625rem;padding:.75rem 1rem;background:transparent;border:none;color:var(--color-heading);font-family:var(--font-sans);font-size:.9375rem;font-weight:500;text-align:left;cursor:pointer}.loft-install-accordion__head:hover,.loft-install-accordion__head:focus-visible{background:#06b6d40a;outline:none}.loft-install-accordion__head-icon{color:var(--color-accent-cyan);font-size:1.125rem;flex-shrink:0}.loft-install-accordion__head-label{flex:1;min-width:0}.loft-install-accordion__badge{font-family:var(--font-mono);font-size:.6875rem;font-weight:600;padding:2px 8px;border-radius:var(--radius-pill);letter-spacing:.02em;white-space:nowrap}.loft-install-accordion__badge--ok{background:#4ade801f;color:var(--color-status-success, #4ade80)}.loft-install-accordion__badge--warn{background:#fbbf241f;color:#fbbf24}.loft-install-accordion__badge--na{background:#94a3b81f;color:var(--color-text-secondary)}.loft-install-accordion__chevron{color:var(--color-text-secondary);font-size:1rem;transition:transform .16s ease;flex-shrink:0}.loft-install-accordion__item.is-open .loft-install-accordion__chevron{transform:rotate(180deg)}.loft-install-accordion__body{padding:.25rem 1rem 1rem 2.5rem;border-top:1px solid var(--color-border-subtle);background:#06060c4d}.loft-install-accordion__body .loft-install-modal__steps{margin:.75rem 0}.loft-install-accordion__body a{color:var(--color-accent-cyan);text-decoration:underline;text-underline-offset:2px;word-break:break-all}@media(max-width:540px){.loft-install-modal__banner{flex-direction:column;align-items:flex-start}.loft-install-modal__primary{width:100%}.loft-install-accordion__body{padding-left:1rem}.loft-install-accordion__badge{white-space:normal}}
