:root{--bg:#f4f5f7;--surface:#fff;--surface-2:#f8f9fb;--border:#e2e5ea;--border-strong:#cdd2da;--text:#111827;--text-2:#374151;--muted:#5f6b7a;--primary:#2f5bea;--primary-hover:#2449c4;--primary-soft:#eaf0ff;--primary-text:#fff;--danger:#c8321f;--danger-hover:#a92716;--danger-soft:#fdecea;--success:#12804a;--success-soft:#e7f6ee;--warning:#9a5b00;--warning-soft:#fff4e0;--focus:#2f5bea;--shadow-sm:0 1px 2px #1018280f;--shadow-md:0 4px 16px #10182814;--shadow-lg:0 24px 48px #1018282e;--radius:10px;--radius-sm:7px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1218;--surface:#171b23;--surface-2:#1d222c;--border:#2a303c;--border-strong:#3a4250;--text:#e8ebf0;--text-2:#c9ced8;--muted:#98a2b3;--primary:#5b7fff;--primary-hover:#7a97ff;--primary-soft:#1f2a4a;--danger:#f0604c;--danger-hover:#ff7b68;--danger-soft:#3a1d1a;--success:#4cc38a;--success-soft:#16301f;--warning:#f0b453;--warning-soft:#33280f;--focus:#7a97ff;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 16px #0006;--shadow-lg:0 24px 48px #0000008c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5;overflow-x:hidden}body.modal-open{overflow:hidden}h1,h2,h3,p{margin:0}a{color:var(--primary)}button,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-family:var(--mono);font-size:13px}.break-word{overflow-wrap:anywhere}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.clipboard-fallback{opacity:0;position:fixed;top:-1000px;left:-1000px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.btn{border-radius:var(--radius-sm);white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:8px 16px;font-size:14px;font-weight:550;line-height:1.2;text-decoration:none;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-sm{min-height:36px;padding:6px 12px;font-size:13.5px}.btn-block{width:100%}.btn-primary{background:var(--primary);color:var(--primary-text)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-2);border-color:var(--muted)}.btn-ghost{color:var(--text-2);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.icon-btn{border-radius:var(--radius-sm);width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn-sm{width:32px;height:32px}.icon-btn-bordered{border-color:var(--border-strong);background:var(--surface);width:36px;height:36px;color:var(--text)}.link-btn{color:var(--primary);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;align-items:center;gap:4px;padding:2px 0;font-weight:550;text-decoration:underline;display:inline-flex}.form{flex-direction:column;gap:18px;display:flex}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label,.field .label{color:var(--text-2);font-size:14px;font-weight:550}.field input{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);width:100%;min-height:42px;padding:9px 12px;font-size:15px}.field input:focus-visible{border-color:var(--focus);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.field input:disabled{background:var(--surface-2)}.field-hint{color:var(--muted);overflow-wrap:anywhere;min-height:20px;font-size:13px}.field-error{color:var(--danger);margin-top:6px;font-size:13px}.hint-row{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.hint-ok{color:var(--success)}.hint-error{color:var(--danger)}.slug-input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);align-items:stretch;min-width:0;display:flex;overflow:hidden}.slug-input:focus-within{border-color:var(--focus);box-shadow:0 0 0 3px var(--primary-soft)}.slug-input-error{border-color:var(--danger)}.slug-input input{min-width:0;font-family:var(--mono);border:0;border-radius:0;flex:1 1 0;padding-left:2px;padding-right:2px;font-size:14px;box-shadow:none!important}.slug-prefix,.slug-suffix{color:var(--muted);font-family:var(--mono);white-space:nowrap;background:0 0;align-items:center;padding:0 0 0 12px;font-size:13px;display:flex}.slug-prefix{padding-right:0}.slug-preview{color:var(--muted);overflow-wrap:anywhere;font-size:13px}.slug-preview .mono{color:var(--text-2)}.slug-suffix{background:0 0;padding:0 12px 0 2px}.alert{border-radius:var(--radius-sm);overflow-wrap:anywhere;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;display:flex}.alert>svg{flex:none;margin-top:1px}.alert-error{background:var(--danger-soft);color:var(--danger)}.alert-error p{color:var(--text)}.alert-warning{background:var(--warning-soft);color:var(--warning)}.alert-warning p{color:var(--text)}.content>.alert{margin-bottom:16px}.badge{vertical-align:middle;border-radius:999px;align-items:center;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.badge-success{background:var(--success-soft);color:var(--success)}.url-chip{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);font-family:var(--mono);color:var(--text-2);overflow-wrap:anywhere;margin:12px 0;padding:8px 12px;font-size:13px}.form .url-chip{margin:0}.center-screen{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.center-block{justify-content:center;padding:32px 0;display:flex}.fatal-panel{text-align:center;flex-direction:column;align-items:center;gap:12px;max-width:420px;padding:32px 28px;display:flex}.fatal-panel h1{font-size:20px}.fatal-icon{color:var(--danger)}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{background:var(--primary);color:#fff;border-radius:8px;flex:none;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.brand-name{letter-spacing:-.01em;white-space:nowrap;font-size:17px;font-weight:700}.brand-lg .brand-mark{border-radius:10px;width:40px;height:40px}.brand-lg .brand-name{font-size:24px}.login-screen{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.login-card{width:100%;max-width:400px;box-shadow:var(--shadow-md);padding:36px 32px 32px}.login-subtitle{margin:8px 0 24px}.topbar{z-index:20;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(8px);backdrop-filter:saturate(1.4)blur(8px);border-bottom:1px solid var(--border);position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;gap:12px;max-width:1080px;height:60px;margin:0 auto;padding:0 24px;display:flex}.topbar-user{align-items:center;gap:6px;min-width:0;display:flex}.user-btn{border:1px solid var(--border);background:var(--surface-2);max-width:220px;min-height:36px;color:var(--text-2);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:6px 10px;font-size:14px;display:inline-flex}.user-btn:hover{border-color:var(--border-strong)}.user-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.content{max-width:1080px;margin:0 auto;padding:28px 24px 64px}.page-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-title{letter-spacing:-.015em;font-size:24px;font-weight:700}.deployments{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.deployment{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:center;gap:20px;min-width:0;padding:18px 20px;display:flex}.deployment-main{flex-direction:column;flex:auto;gap:4px;min-width:0;display:flex}.deployment-name{text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:650;overflow:hidden}.deployment-url{font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;align-self:flex-start;max-width:100%;font-size:13px;text-decoration:none;overflow:hidden}.deployment-url:hover{text-decoration:underline}.deployment-meta{color:var(--muted);flex-wrap:wrap;gap:4px 18px;margin:6px 0 0;font-size:13px;display:flex}.deployment-meta div{gap:6px;min-width:0;display:flex}.deployment-meta dt:after{content:":"}.deployment-meta dd{color:var(--text-2);overflow-wrap:anywhere;margin:0}.deployment-actions{flex:none;align-items:center;gap:8px;display:flex}.deployment-skeleton{flex-direction:column;align-items:stretch;gap:10px}.skeleton{background:linear-gradient(90deg, var(--surface-2), var(--border), var(--surface-2));background-size:200% 100%;border-radius:6px;animation:1.4s ease-in-out infinite shimmer}.skeleton-title{width:40%;height:18px}.skeleton-line{width:65%;height:12px}.skeleton-line.short{width:30%}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.empty{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:56px 24px;display:flex}.empty h2{font-size:18px}.empty .btn{margin-top:8px}.empty-icon{color:var(--primary)}.menu{position:relative}.menu-list{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:200px;box-shadow:var(--shadow-md);flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.menu-item{border-radius:var(--radius-sm);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:0;align-items:center;gap:10px;width:100%;min-height:40px;padding:8px 10px;font-size:14px;display:flex}.menu-item:hover,.menu-item:focus-visible{background:var(--surface-2);outline:none}.menu-item:focus-visible{box-shadow:inset 0 0 0 2px var(--focus)}.menu-item svg{color:var(--muted)}.menu-item-danger,.menu-item-danger svg{color:var(--danger)}.modal{background:var(--surface);width:calc(100% - 32px);max-width:520px;max-height:calc(100dvh - 48px);color:var(--text);box-shadow:var(--shadow-lg);border:0;border-radius:14px;padding:0;overflow:hidden}.modal-sm{max-width:440px}.modal-lg{max-width:640px}.modal::backdrop{background:#0f121880}.modal-panel{flex-direction:column;max-height:calc(100dvh - 48px);display:flex}.modal-header{justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 10px 24px;display:flex}.modal-title{min-width:0;padding-top:7px;font-size:18px;font-weight:650}.modal-body{min-height:0;padding:4px 24px 20px;overflow-y:auto}.modal-description{color:var(--muted);overflow-wrap:anywhere;margin-bottom:16px}.modal-footer{border-top:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 24px;display:flex}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface-2);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:26px 16px;transition:border-color .12s,background-color .12s;display:flex}.dropzone-active{border-color:var(--primary);background:var(--primary-soft)}.dropzone-error{border-color:var(--danger)}.dropzone-icon{color:var(--primary)}.dropzone-title{font-weight:600}.dropzone .btn{margin-top:2px}.dropzone-hint{margin-top:4px}.file-selected{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface-2);align-items:center;gap:12px;min-width:0;padding:12px 8px 12px 14px;display:flex}.file-selected-icon{color:var(--primary);flex:none}.file-selected-info{flex-direction:column;flex:1;min-width:0;display:flex}.file-selected-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.progress{flex-direction:column;gap:6px;display:flex}.progress-label{color:var(--muted);justify-content:space-between;font-size:13px;display:flex}.progress-track{background:var(--border);border-radius:999px;height:8px;overflow:hidden}.progress-fill{background:var(--primary);border-radius:999px;width:0;height:100%;transition:width .15s linear}.published{text-align:center;flex-direction:column;align-items:center;gap:10px;min-width:0;padding:8px 0;display:flex}.published-icon{color:var(--success)}.published-title{overflow-wrap:anywhere;font-size:16px;font-weight:650}.published-url{font-family:var(--mono);overflow-wrap:anywhere;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);max-width:100%;padding:8px 12px;font-size:14px}.published-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px;display:flex}.versions{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.version{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;min-width:0;padding:14px 16px;display:flex}.version:first-child{border-top:0}.version-current{background:var(--surface-2)}.version-main{flex-direction:column;flex:260px;gap:2px;min-width:0;display:flex}.version-main .small{overflow-wrap:anywhere}.version-title{align-items:center;gap:8px;font-weight:600;display:inline-flex}.version-confirm{border-radius:var(--radius-sm);background:var(--primary-soft);flex-direction:column;flex:100%;gap:8px;padding:12px;display:flex}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.versions-empty{border-top:1px solid var(--border);color:var(--muted);align-items:center;gap:10px;padding:18px 16px;font-size:14px;display:flex}.toast-region{z-index:1000;pointer-events:none;flex-direction:column;gap:8px;width:min(380px,100vw - 32px);display:flex;position:fixed;top:72px;right:16px}.toast{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-md);pointer-events:auto;align-items:center;gap:10px;padding:10px 8px 10px 14px;font-size:14px;animation:.16s ease-out toast-in;display:flex}.toast-message{overflow-wrap:anywhere;flex:1}.toast-success .toast-icon{color:var(--success)}.toast-error{border-color:color-mix(in srgb, var(--danger) 40%, var(--border))}.toast-error .toast-icon{color:var(--danger)}.toast-info .toast-icon{color:var(--primary)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.spinner{align-items:center;display:inline-flex}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.spin{animation:1.6s linear infinite spin!important}}@media (width<=860px){.deployment{flex-direction:column;align-items:stretch;gap:14px}.deployment-actions{flex-wrap:wrap}}@media (width<=560px){body{font-size:15px}.topbar-inner{height:56px;padding:0 16px}.content{padding:20px 16px 48px}.page-head{flex-direction:column;align-items:stretch}.page-title{font-size:21px}.user-btn{max-width:130px}.topbar .btn-ghost span,.hide-mobile{display:none}.deployment{padding:16px}.deployment-actions .btn{flex:1 1 0;min-height:44px}.deployment-actions .icon-btn-bordered{width:44px;height:44px}.login-card{padding:28px 20px 24px}.modal{width:calc(100% - 16px);max-height:calc(100dvh - 16px)}.modal-panel{max-height:calc(100dvh - 16px)}.modal-header{padding:16px 12px 8px 16px}.modal-body{padding:4px 16px 16px}.modal-footer{padding:12px 16px}.modal-footer .btn{flex:auto}.toast-region{top:auto;bottom:16px;right:16px}}
