:root{--bg: #eef2f7;--surface: #ffffff;--ink: #172033;--muted: #5d6b7c;--line: #e2e7ef;--accent: #1a4d89;--accent-hover: #14386a;--accent-ink: #ffffff;--accent-soft: #e6eef8;--danger: #b42318;--danger-soft: #fdeceb;--ok: #067647;--ok-soft: #e7f6ee;--warn: #b54708;--warn-soft: #fff4e5;--shadow: 0 1px 2px rgba(23, 32, 51, .06), 0 8px 24px rgba(23, 32, 51, .04);--font: "IBM Plex Sans", system-ui, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:radial-gradient(900px 420px at 0% -10%,#e4eef8 0%,transparent 60%),radial-gradient(700px 380px at 100% 0%,#f4f7fb 0%,transparent 55%),var(--bg);line-height:1.5}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{max-width:960px;margin:0 auto;padding:1.75rem 1.25rem 3rem}.brand,.workspace-title h1,.login-card h1,.preview-empty h2,.section-title{font-family:var(--font);font-weight:600;letter-spacing:-.02em;color:var(--ink)}.brand{font-size:1.75rem;margin:0}.lockup{display:inline-flex;align-items:center;gap:.55rem}.lockup-link{color:inherit;text-decoration:none}.lockup-link:hover{text-decoration:none}.mark{display:block;border-radius:7px}.wordmark{font-family:Fraunces,Georgia,serif;font-weight:560;font-size:1.35rem;letter-spacing:-.03em;color:var(--ink);line-height:1}.page-title{margin-top:.55rem;font-size:1.55rem}.brand-sub{margin:.35rem 0 0;color:var(--muted);max-width:36rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.35rem}.btn,a.btn,label.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:.45rem .8rem;border-radius:8px;cursor:pointer;text-decoration:none;font-weight:500;box-shadow:0 1px #1720330a}.btn:hover:not(:disabled),a.btn:hover,label.btn:hover{background:#f8fafc;text-decoration:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary,a.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled),a.btn-primary:hover{background:var(--accent-hover);color:var(--accent-ink)}.btn-danger{color:var(--danger);background:var(--surface);border-color:#f3c7c3}.btn-row{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;box-shadow:var(--shadow)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:1.5rem;background:#e7eef6 url(/hero.jpg) right center / cover no-repeat}.login-card{width:min(100%,420px)}.login-card .lockup{margin-bottom:1.1rem}.login-card h1{margin:0 0 .35rem;font-size:1.6rem}.login-card p{margin:0 0 1.1rem;color:var(--muted)}.auth-layout{min-height:100vh;display:grid;grid-template-columns:minmax(280px,400px) minmax(0,1fr)}.auth-brand{display:flex;flex-direction:column;justify-content:flex-start;gap:2rem;padding:2.25rem 2.2rem 2rem;color:#fff;background:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(165deg,#1a4d89,#163a6b 70%);background-size:28px 28px,28px 28px,auto}.auth-brand .wordmark{color:#fff}.auth-brand-copy{margin:auto 0}.auth-brand-copy h2{font-family:Fraunces,Georgia,serif;font-weight:560;font-size:clamp(1.8rem,3vw,2.35rem);letter-spacing:-.03em;line-height:1.08;margin:0 0 .55rem}.auth-brand-copy p{margin:0;color:#ffffffc7;max-width:22rem}.auth-points{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;gap:.7rem}.auth-points li{color:#ffffffeb;font-size:.95rem;padding-left:.95rem;position:relative}.auth-points li:before{content:"";position:absolute;left:0;top:.55em;width:.35rem;height:.35rem;border-radius:50%;background:#ffffffb3}.auth-form-panel{display:flex;flex-direction:column;padding:2.5rem 1.5rem;background:#fff;overflow:auto}.auth-form{width:min(100%,420px);margin:auto}.auth-form h1{font-size:1.7rem;letter-spacing:-.03em;margin:0 0 .3rem}.auth-back{display:inline-block;margin-bottom:1.5rem;color:var(--muted);font-size:.84rem;font-weight:600;text-decoration:none}.auth-back:hover{color:var(--ink);text-decoration:none}.auth-sub{margin:0 0 1.4rem;color:var(--muted)}.auth-form label,.account-card label{color:var(--ink);font-weight:600;font-size:.85rem}.auth-form input,.account-card input{padding:.7rem .85rem}.auth-name-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.auth-hint{margin:-.45rem 0 .85rem;color:var(--muted);font-size:.78rem}.auth-footer{margin:1.35rem 0 0;text-align:center;color:var(--muted);font-size:.9rem}.auth-footer a{font-weight:600}.btn-block{width:100%;margin-top:.25rem;padding:.75rem 1rem}.form-alert{background:var(--danger-soft);color:var(--danger);border-radius:10px;padding:.65rem .85rem;margin:0 0 1rem}.form-alert.ok{background:var(--ok-soft);color:var(--ok)}.account-wrap{max-width:640px}.account-card{margin-top:1rem}.account-card .section-title{margin-bottom:.9rem}label{display:block;font-size:.82rem;font-weight:500;color:var(--muted);margin-bottom:.3rem}.name-url{display:flex;align-items:stretch;margin-bottom:.85rem;border:1px solid #cfd6e1;border-radius:8px;background:var(--surface);overflow:hidden}.name-url:focus-within{outline:2px solid var(--accent-soft);border-color:var(--accent)}.name-url input{flex:1 1 auto;width:auto;border:0;margin:0;border-radius:0;outline:none;min-width:0}.name-url span{display:flex;align-items:center;flex:0 0 auto;padding:0 .85rem;color:var(--muted);background:#f4f7fb;border-left:1px solid var(--line);font-family:var(--mono);font-size:.85rem;white-space:nowrap}.warn-note{color:var(--warn);font-weight:600}input,textarea,select{width:100%;background:var(--surface);border:1px solid #cfd6e1;color:var(--ink);border-radius:8px;padding:.55rem .7rem;margin-bottom:.85rem}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}textarea{min-height:6rem;font-family:var(--mono);font-size:.85rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}@media(max-width:720px){.form-grid,.usage-summary,.auth-name-row{grid-template-columns:1fr}}.project-list{display:grid;gap:.75rem}.usage-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.usage-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.85rem .95rem;box-shadow:var(--shadow)}.usage-card strong{display:block;color:var(--muted);font-size:.78rem;font-weight:600;letter-spacing:.01em}.usage-value{margin-top:.2rem;font-size:1.05rem;font-weight:600}.usage-card .muted{display:block;margin-top:.15rem;font-size:.82rem}.meter-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.meter-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.meter-row-3 .meter-label{flex-wrap:wrap;column-gap:.4rem;row-gap:0}.meter{display:grid;gap:.25rem;min-width:0}.meter-label{display:flex;justify-content:space-between;gap:.5rem;color:var(--muted);font-size:.78rem}.meter-track{height:6px;background:#e6ebf2;border-radius:99px;overflow:hidden}.meter-fill{height:100%;background:var(--accent);border-radius:99px}.meter-fill.hot{background:var(--warn)}.dashboard{max-width:1120px}.project-card{display:grid;grid-template-columns:minmax(6.5rem,.75fr) 6.6rem minmax(0,1.5fr) 15.4rem;grid-template-areas:"name status host actions" "meters meters meters actions";align-items:center;column-gap:.85rem;row-gap:.45rem;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.85rem 1rem;box-shadow:var(--shadow)}.project-name{grid-area:name}.project-card .status{grid-area:status}.project-host{grid-area:host}.project-card .meter-row{grid-area:meters;margin:0}.project-actions{grid-area:actions;align-self:center}.meter-label span:last-child{white-space:nowrap}.project-card .status{width:6.6rem;justify-content:center;box-sizing:border-box}.project-host{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-actions{display:grid;grid-template-columns:repeat(3,4.7rem);gap:.4rem}.project-actions .btn,.action-slot{width:100%;min-height:2.15rem}.project-card .project-error{grid-column:1 / -1;margin:0}.project-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--ink);font-size:1.05rem}.project-name:hover{color:var(--accent);text-decoration:none}.project-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-top:.3rem}.status{display:inline-flex;align-items:center;padding:.12rem .5rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em;text-transform:capitalize}.status-running{background:var(--ok-soft);color:var(--ok)}.status-pending{background:var(--warn-soft);color:var(--warn)}.status-error{background:var(--danger-soft);color:var(--danger)}.status-paused,.status-stopped,.status-registered{background:#eef1f5;color:var(--muted)}.mono{font-family:var(--mono);font-size:.82rem;color:var(--muted)}.error{color:var(--danger);margin:.4rem 0}.muted{color:var(--muted)}.logs{white-space:pre-wrap;word-break:break-word;font-family:var(--mono);font-size:.78rem;max-height:280px;overflow:auto;background:#f7f8fb;color:var(--ink);padding:.75rem;border-radius:8px;border:1px solid var(--line);margin:0}.section-title{font-size:1rem;margin:0}.stack{display:flex;flex-direction:column;gap:1rem}.landing{min-height:100vh;display:flex;flex-direction:column;background:#fff}.landing-stage{position:relative;isolation:isolate;background:#e7eef6}.landing-stage:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(/hero.jpg) right 1.25rem top 1.25rem / min(980px,70vw) auto no-repeat;-webkit-mask-image:radial-gradient(ellipse 68% 72% at 82% 34%,#000 42%,transparent 74%);mask-image:radial-gradient(ellipse 68% 72% at 82% 34%,#000 42%,transparent 74%);pointer-events:none}.landing-nav,.landing-hero{position:relative;z-index:1;width:min(1100px,calc(100% - 3rem));margin:0 auto}.landing-nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.05rem 0}.landing-nav-actions{display:flex;align-items:center;gap:.35rem}.landing-nav-link{color:var(--muted);font-weight:600;font-size:.9rem;text-decoration:none;padding:.45rem .75rem;border-radius:8px}.landing-nav-link:hover{color:var(--ink);background:#ffffffb3;text-decoration:none}.landing-hero{max-width:34rem;margin-left:max(1.5rem,calc((100% - 1100px)/2));padding:4.25rem 0 4.5rem}.landing-badge{display:inline-flex;margin:0 0 1rem;padding:.28rem .7rem;border-radius:999px;background:var(--accent-soft);border:1px solid #c9d8ec;color:var(--accent);font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.landing-hero h1{font-family:Fraunces,Georgia,serif;font-weight:560;font-size:clamp(2.35rem,4.6vw,3.35rem);letter-spacing:-.03em;line-height:1.05;margin:0}.landing-lede{margin:1.1rem 0 0;max-width:28rem;color:var(--muted);font-size:1.05rem;line-height:1.65}.landing-cta{display:flex;flex-direction:column;align-items:flex-start;gap:.85rem;margin-top:1.75rem}.landing-cta-btn{min-height:48px;padding:.75rem 1.35rem;font-weight:600}.landing-proof{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f7f9fc;padding:.95rem 1.5rem}.landing-proof-inner{width:min(1100px,100%);margin:0 auto;display:flex;flex-wrap:wrap;justify-content:center;gap:.45rem 1.35rem}.landing-proof-item{display:flex;align-items:center;gap:.55rem;color:var(--muted);font-size:.88rem;font-weight:600}.landing-proof-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.45}.landing-proof-item:first-child .landing-proof-dot{display:none}.landing-proof-line{width:min(720px,100%);margin:0 auto;text-align:center;color:var(--muted);font-size:.95rem;font-weight:600}.landing-section{padding:4.5rem 1.5rem;background:#fff}.landing-section-inner{width:min(860px,100%);margin:0 auto}.landing-section-center{text-align:center}.landing-kicker{margin:0 0 .45rem;color:var(--accent);font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.landing-section h2{margin:0;font-family:Fraunces,Georgia,serif;font-weight:560;font-size:clamp(1.7rem,3vw,2.15rem);letter-spacing:-.03em;line-height:1.15}.landing-section-sub{margin:.55rem auto 2.4rem;max-width:32rem;color:var(--muted);line-height:1.6}.landing-steps{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;max-width:780px;position:relative;text-align:center}.landing-steps:before{content:"";position:absolute;top:18px;left:calc(16.67% + 18px);right:calc(16.67% + 18px);height:1px;background:var(--line)}.landing-steps li{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:.8rem;list-style:none}.landing-steps li::marker{content:none}.landing-step-num{flex:0 0 36px;width:36px;height:36px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;font-weight:700;line-height:1;box-shadow:0 0 0 5px #fff}.landing-steps h3{margin:0;font-size:1rem}.landing-steps p{margin:.3rem 0 0;color:var(--muted);font-size:.9rem;line-height:1.55}.landing-close{background:#163a6b;color:#f7f4ee;text-align:center;padding:4.25rem 1.5rem}.landing-close h2{margin:0;font-family:Fraunces,Georgia,serif;font-weight:560;font-size:clamp(1.7rem,3vw,2.2rem);letter-spacing:-.03em}.landing-close p{margin:.7rem auto 1.5rem;max-width:26rem;color:#f7f4eeb8}.landing-close-btn{background:#fff;color:#163a6b;min-height:48px;padding:.75rem 1.35rem;font-weight:600}.landing-close-btn:hover{background:#f4f7fb}.landing-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#10182a;padding:1.35rem 1.5rem}.landing-footer .wordmark{color:#ffffffe0;font-size:1.05rem}.footer-link{color:#ffffffb8;font-weight:600}.footer-link:hover{color:#fff}.docs{min-height:100vh;background:var(--bg)}.docs-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.5rem;background:#f7f9fc;border-bottom:1px solid var(--line)}.docs-bar-actions{display:flex;align-items:center;gap:.35rem}.docs-layout{width:min(1080px,calc(100% - 2.5rem));margin:0 auto;display:grid;grid-template-columns:210px minmax(0,1fr);gap:2.5rem;padding:2rem 0 4rem}.docs-toc{position:sticky;top:1.25rem;align-self:start;display:flex;flex-direction:column;gap:.45rem}.docs-toc a{color:var(--muted);font-weight:600;font-size:.92rem;text-decoration:none}.docs-toc a:hover{color:var(--accent)}.docs-article h1{margin:0 0 .75rem;font-size:2rem}.docs-article h2{margin:2.1rem 0 .55rem;font-size:1.35rem;scroll-margin-top:1rem}.docs-article h3{margin:1.2rem 0 .35rem;font-size:1.05rem}.docs-article p{margin:.55rem 0;max-width:40rem}.docs-article ul,.docs-article ol{margin:.35rem 0 .85rem;padding-left:1.2rem;max-width:40rem}.docs-article li{margin:.28rem 0}.docs-article code{font-family:var(--mono);font-size:.86em;background:#e7eef6;padding:.08em .35em;border-radius:4px}.docs-article pre{max-width:40rem;margin:.7rem 0 1rem;padding:.9rem 1rem;border-radius:10px;background:#172033;color:#f4f7fb;overflow:auto}.docs-article pre code{background:none;color:inherit;padding:0}.callout{background:var(--accent-soft);border-radius:10px;padding:.75rem .9rem;color:var(--ink)}.callout p{margin:.3rem 0 0;color:var(--muted)}.req-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}.req-list li{display:flex;gap:.65rem;align-items:flex-start}.req-mark{width:1.3rem;height:1.3rem;border-radius:50%;display:grid;place-items:center;font-size:.72rem;font-weight:700;flex-shrink:0}.req-ok .req-mark{background:var(--ok-soft);color:var(--ok)}.req-bad .req-mark{background:var(--danger-soft);color:var(--danger)}.code-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.code-list li{padding:.6rem .85rem;border-bottom:1px solid var(--line);background:var(--surface)}.code-list li:last-child{border-bottom:0}.linkish{background:none;border:none;color:var(--ink);cursor:pointer;padding:0;font:inherit;text-align:left}.linkish:hover{color:var(--accent)}.choice{display:flex;align-items:center;gap:.5rem;color:var(--ink);font-weight:600;margin:0}.choice input{width:auto;margin:0}.wizard-steps{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:1rem 0 0;padding:0}.wizard-steps button{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:.28rem .75rem .28rem .28rem;font:inherit;cursor:pointer}.wizard-steps button:disabled{color:var(--muted);cursor:default}.wizard-steps button.current{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.wizard-steps .num{width:1.45rem;height:1.45rem;border-radius:50%;display:grid;place-items:center;background:#e7eef6;font-size:.78rem;font-weight:600}.wizard-steps button.current .num{background:var(--accent);color:#fff}.wizard-panel{max-width:40rem;margin-top:1.25rem}.wizard-actions{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.name-status{margin:-.35rem 0 0;font-size:.9rem;color:var(--muted)}.name-status.ok{color:var(--ok);font-weight:600}.name-status.bad{color:var(--danger);font-weight:600}.field-help{margin:0 0 .7rem;color:var(--muted)}.source-options{display:flex;flex-direction:column;gap:.75rem}.source-card{border:1px solid var(--line);border-radius:12px;padding:.95rem 1rem;background:#f8fafc;cursor:pointer}.source-card.selected{border-color:var(--accent);background:#f4f8fc;box-shadow:inset 0 0 0 1px var(--accent)}.source-card p{margin:.35rem 0 0 1.7rem;color:var(--muted);font-size:.92rem}.source-fields{margin:.85rem 0 0 1.7rem;cursor:auto}.source-fields input,.source-fields textarea{margin-bottom:.7rem}.source-fields textarea:last-child,.source-fields input:last-child{margin-bottom:0}.ide{position:relative;height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr);background:#e7edf4;overflow:hidden}.ide.nav-collapsed{grid-template-columns:56px minmax(0,1fr)}.ide-nav{display:flex;flex-direction:column;min-width:0;min-height:0;background:#f6f8fb;border-right:1px solid var(--line)}.ide-main{min-width:0;min-height:0;overflow:auto}.ide-main:has(.workspace){overflow:hidden}.nav-brand{display:flex;align-items:center;justify-content:space-between;gap:.35rem;padding:.75rem .7rem .55rem}.nav-brand .wordmark{font-size:1.15rem}.nav-scroll{flex:1;min-height:0;overflow:auto;padding:.35rem .55rem .75rem}.nav-section{display:flex;align-items:center;justify-content:space-between;padding:.35rem .35rem .25rem}.nav-label{color:var(--muted);font-size:.72rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase}.nav-apps{display:flex;flex-direction:column;gap:.15rem}.nav-empty{margin:.35rem .4rem;color:var(--muted);font-size:.82rem}.nav-app,.nav-link{display:flex;align-items:center;gap:.55rem;width:100%;min-height:2rem;padding:.3rem .45rem;border:0;border-radius:8px;background:transparent;color:var(--ink);text-align:left;text-decoration:none;cursor:pointer}.nav-app:hover,.nav-link:hover,.nav-app.active,.nav-link.active{background:var(--accent-soft);color:var(--accent);text-decoration:none}.nav-app-name,.nav-link span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-dot{width:.5rem;height:.5rem;border-radius:50%;flex:none;background:#9aa6b5}.nav-dot.status-running{background:var(--ok)}.nav-dot.status-pending{background:var(--warn)}.nav-dot.status-error{background:var(--danger)}.nav-foot{display:flex;flex-direction:column;gap:.15rem;padding:.55rem;border-top:1px solid var(--line)}.nav-icon-btn{display:grid;place-items:center;width:1.85rem;height:1.85rem;padding:0;border:0;border-radius:7px;background:transparent;color:var(--muted);text-decoration:none;cursor:pointer;flex:none}.nav-icon-btn:hover{background:var(--accent-soft);color:var(--accent);text-decoration:none}.nav-svg{width:1.05rem;height:1.05rem}.ide.nav-collapsed .wordmark,.ide.nav-collapsed .nav-label,.ide.nav-collapsed .nav-app-name,.ide.nav-collapsed .nav-empty,.ide.nav-collapsed .nav-link span{display:none}.ide.nav-collapsed .nav-brand,.ide.nav-collapsed .nav-section,.ide.nav-collapsed .nav-foot{justify-content:center;padding-left:.3rem;padding-right:.3rem}.ide.nav-collapsed .nav-brand{flex-direction:column;gap:.45rem}.ide.nav-collapsed .nav-app,.ide.nav-collapsed .nav-link{justify-content:center;padding-left:0;padding-right:0}.ide-main .app-shell{margin:0;padding:1.5rem 1.75rem 2.5rem}.ide-main:has(.fleet-home){overflow:hidden}.new-tab-icon{width:.9rem;height:.9rem}.fleet-home{height:100%;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:.9rem;padding:1rem 1.15rem 1.5rem}.fleet-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:12px;flex:none}.fleet-stat{display:flex;flex-direction:column;gap:.2rem;min-width:0;padding:.85rem 1.1rem .95rem}.fleet-stat+.fleet-stat{border-left:1px solid var(--line)}.fleet-stat-label{color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.fleet-stat strong{font-size:1.2rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fleet-stat .muted{font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fleet-stat .meter-track{margin-top:.4rem}.fleet-note{margin:0;color:var(--muted)}.fleet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:.85rem;align-items:stretch}.fleet-card{display:flex;flex-direction:column;min-height:min(520px,62vh);background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}.fleet-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem .75rem;align-items:center;padding:.7rem .8rem .65rem}.fleet-card-title{display:flex;align-items:center;gap:.5rem;min-width:0}.fleet-card-title a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650;color:var(--ink);text-decoration:none}.fleet-card-title a:hover{color:var(--accent)}.fleet-card .meter-row{grid-column:1 / -1}.fleet-frame{flex:1;width:100%;min-height:220px;border:0;border-top:1px solid var(--line);background:#fff}.fleet-idle{display:flex;flex-direction:column;gap:.4rem}.fleet-idle h2{margin:.35rem 0 .15rem;font-size:.72rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.fleet-idle-row{display:grid;grid-template-columns:minmax(7rem,.8fr) 6.6rem minmax(0,1.4fr);gap:.75rem;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.55rem .8rem;color:inherit;text-decoration:none}.fleet-idle-row:hover{border-color:#c5d4e8;text-decoration:none}.fleet-idle-name{font-weight:600;color:var(--ink)}.fleet-idle-row .status{width:6.6rem;justify-content:center;box-sizing:border-box}.workspace{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);background:#e7edf4}.workspace-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1rem;background:var(--surface);border-bottom:1px solid var(--line)}.workspace-title{display:flex;align-items:center;gap:.65rem;min-width:0}.workspace-title h1{font-size:1.05rem;margin:0}.workspace-host{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.82rem}.workspace-host:hover{color:var(--accent)}.workspace-body{display:grid;grid-template-columns:minmax(340px,1fr) minmax(300px,1.15fr);min-height:0}.workspace.preview-collapsed .workspace-body{grid-template-columns:minmax(0,1fr)}.work-pane,.preview-pane{min-height:0;display:flex;flex-direction:column;background:var(--surface);border:0;border-radius:0;box-shadow:none;overflow:hidden}.preview-pane{border-left:1px solid var(--line)}.work-pane{overflow:hidden;padding:1.25rem 1.35rem 1.5rem}.work-pane>.meter-row{margin-bottom:1.15rem;flex:none}.work-pane>.steps,.work-pane>.error,.work-pane>.ok-note,.work-pane>.pane-tabs{flex:none}.work-pane>.explorer,.work-pane>.pane-body{flex:1 1 auto;min-height:0}.steps{list-style:none;counter-reset:step;margin:0 0 1.1rem;padding:.15rem .1rem;display:grid;gap:.75rem}.steps li{display:grid;grid-template-columns:auto 1fr;gap:.15rem .55rem;align-items:baseline}.steps li:before{counter-increment:step;content:counter(step);width:1.25rem;height:1.25rem;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-size:.72rem;font-weight:600}.steps strong{font-weight:600}.steps span{grid-column:2;color:var(--muted);font-size:.86rem}.pane-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:.3rem;margin-bottom:1rem;background:var(--bg);padding:.3rem;border-radius:12px}.pane-tab{flex:0 0 auto;background:transparent;color:var(--muted);border:0;border-radius:8px;padding:.48rem .7rem;cursor:pointer;font-weight:500}.pane-tab.active{color:var(--ink);background:var(--surface);box-shadow:var(--shadow)}.pane-body{display:flex;flex-direction:column;gap:.9rem;overflow:auto}.pane-body textarea{margin-bottom:0}.pane-body textarea.env-file{flex:1 1 auto;width:100%;min-height:0;resize:none}.pane-body>.btn{flex:none;align-self:flex-start}.explorer{display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.explorer.drag-over{outline:2px solid var(--accent);outline-offset:-2px}.explorer-bar{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;padding:.45rem .6rem;border-bottom:1px solid var(--line);background:#f6f8fb}.explorer-bar .btn{margin:0}.explorer-bar .warn-note{font-size:.82rem}.explorer-error{margin:0;padding:.45rem .7rem}.explorer-split{display:grid;grid-template-columns:minmax(190px,250px) minmax(0,1fr);flex:1;min-height:0}.explorer-tree{overflow:auto;border-right:1px solid var(--line);padding:.35rem 0;background:#fbfcfe}.explorer-row{display:flex;align-items:center;gap:.28rem;width:100%;border:0;background:transparent;color:var(--ink);text-align:left;padding-top:.22rem;padding-bottom:.22rem;padding-right:.55rem;cursor:pointer;font-size:.86rem;border-radius:0}.explorer-row:hover{background:#eef3f9}.explorer-row.active{background:var(--accent-soft);color:var(--accent)}.explorer-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.explorer-chevron,.explorer-chevron-spacer{width:.7rem;height:.7rem;flex:0 0 .7rem}.explorer-chevron{color:var(--muted);transition:transform .12s ease}.explorer-chevron.open{transform:rotate(90deg)}.explorer-icon{width:.95rem;height:.95rem;flex:none;color:#5d6b7c}.explorer-row.active .explorer-icon{color:var(--accent)}.explorer-note{color:var(--muted);font-size:.78rem}.explorer-view{display:flex;flex-direction:column;min-width:0;min-height:0}.explorer-view-bar{display:flex;align-items:center;gap:.6rem;padding:.45rem .75rem;border-bottom:1px solid var(--line);background:#fff}.explorer-view-path{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--mono);font-size:.78rem}.explorer-code{margin:0;flex:1;max-height:none;border:0;border-radius:0}textarea.explorer-code{width:100%;min-height:0;resize:none;padding:.85rem 1rem;line-height:1.45}.explorer-view-bar .btn{margin-left:auto}.explorer-empty{flex:1;display:grid;place-items:center;color:var(--muted);padding:2rem}.dropzone{display:grid;gap:.2rem;padding:1rem;border:1.5px dashed #b7c9e2;border-radius:10px;background:var(--accent-soft);color:var(--ink)}.dropzone:hover{border-color:var(--accent)}.dropzone span{color:var(--muted);font-size:.88rem;font-weight:400}.dropzone .warn-note{color:var(--warn);font-weight:600}.dropzone-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.35rem}.ok-note{color:var(--ok);margin:0}.preview-bar{display:flex;align-items:center;gap:.75rem;min-width:0;padding:.65rem .9rem;border-bottom:1px solid var(--line);background:#fbfcfe}.preview-bar>a{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-bar .btn-row{margin-left:auto;flex:none;flex-wrap:nowrap}.preview-bar span:first-child{font-weight:600}.preview-frame{flex:1;width:100%;border:0;background:#fff;min-height:0}.preview-empty{flex:1;display:grid;align-content:center;padding:2rem;background:linear-gradient(#d5e3f2 1px,transparent 1px),linear-gradient(90deg,#d5e3f2 1px,transparent 1px);background-size:28px 28px;background-color:#f4f7fb}.preview-empty h2{margin:0 0 .4rem;font-size:1.35rem}.preview-empty p{margin:0;color:var(--muted);max-width:28rem}.empty-state{background:var(--surface);border:1px dashed #cfd6e1;border-radius:12px;padding:1.5rem;color:var(--muted)}@media(max-width:860px){.ide,.ide.nav-collapsed{grid-template-columns:56px minmax(0,1fr)}.ide:not(.nav-collapsed) .ide-nav{position:absolute;z-index:5;width:248px;height:100%;box-shadow:8px 0 24px #17203314}.fleet-idle-row{grid-template-columns:minmax(0,1fr) auto}.fleet-idle-row .muted{grid-column:1 / -1}.workspace{height:100%}.workspace-body,.workspace.preview-collapsed .workspace-body{grid-template-columns:1fr}.preview-pane{min-height:50vh;border-left:0;border-top:1px solid var(--line)}.project-card{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name status" "host host" "meters meters" "actions actions"}.project-actions{justify-self:start}.workspace-bar{flex-wrap:wrap}.landing-stage{min-height:0}.landing-nav,.landing-hero{width:min(1100px,calc(100% - 2.5rem))}.landing-hero{margin-left:auto;margin-right:auto;padding:2.5rem 0 3rem}.landing-nav{flex-wrap:wrap}.explorer-split{grid-template-columns:1fr;grid-template-rows:minmax(140px,.8fr) minmax(0,1.2fr)}.explorer-tree{max-height:none;border-right:0;border-bottom:1px solid var(--line)}.fleet-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.fleet-stat+.fleet-stat{border-left:0}.fleet-stat:nth-child(2n){border-left:1px solid var(--line)}.fleet-stat:nth-child(n+3){border-top:1px solid var(--line)}.docs-layout{grid-template-columns:1fr;gap:1.25rem}.docs-toc{position:static}.source-card p,.source-fields{margin-left:0}.name-url{flex-direction:column}.name-url span{border-left:0;border-top:1px solid var(--line);padding:.45rem .7rem}.landing-steps{grid-template-columns:1fr;max-width:440px;text-align:left}.landing-steps:before{display:none}.landing-steps li{flex-direction:row;align-items:flex-start}.landing-step-num{box-shadow:none;margin-top:.05rem}.landing-steps li>div{min-width:0}.landing-stage:before{background-position:right -6.5rem top -2.5rem;background-size:auto 220px;-webkit-mask-image:radial-gradient(ellipse 70% 80% at 100% 0%,#000 18%,transparent 68%);mask-image:radial-gradient(ellipse 70% 80% at 100% 0%,#000 18%,transparent 68%)}.login-wrap{background-position:78% -1rem;background-size:auto 280px}.auth-layout{grid-template-columns:1fr}.auth-brand{flex-direction:row;align-items:center;gap:0;padding:.85rem 1.25rem}.auth-brand-copy{display:none}.auth-form-panel{padding:1.75rem 1.25rem 3rem}.auth-back{display:none}}
