#splash{z-index:9999;background:#0a0a0f;flex-direction:column;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:fixed;inset:0}#splash.fade-out{opacity:0;pointer-events:none}#splash img{width:96px;height:96px;display:block}.splash-dots{gap:8px;margin-top:24px;display:flex}.splash-dots span{opacity:.3;background:#bbbdbe;border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite both splash-dot-pulse}.splash-dots span:nth-child(2){animation-delay:.15s}.splash-dots span:nth-child(3){animation-delay:.3s}@keyframes splash-dot-pulse{0%,80%,to{opacity:.3;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.splash-dots span{opacity:.8;animation:none}}.branded-loader{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100%;min-height:240px;padding:48px 24px;display:flex}.branded-loader img{opacity:.85;width:56px;height:56px;display:block}.branded-empty{text-align:center;height:100%;min-height:280px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.branded-empty img{opacity:.75;width:72px;height:72px;margin-bottom:4px;display:block}.branded-empty h2{color:var(--text);font-size:18px;font-weight:500}.branded-empty p{max-width:320px;font-size:13px;line-height:1.55}.branded-empty.error img{opacity:.55}.branded-empty.error p{color:var(--red)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a0f;--bg-surface:#12121a;--bg-elevated:#1c1c1c;--bg-hover:#22222a;--border:#2a2a2a;--border-focus:#444;--text:#e5e5e5;--text-muted:#888;--text-dim:#555;--green:#22c55e;--emerald:#10b981;--red:#f43f5e;--yellow:#f59e0b;--blue:#22c55e;--font-ui:system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Code", "Source Code Pro", monospace}html,body,#root{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-ui);font-size:13px;line-height:1.5}.layout{height:100%;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0);padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0);box-sizing:border-box;grid-template-rows:40px 1fr;grid-template-columns:240px 1fr;display:grid}.header{border-bottom:1px solid var(--border);background:var(--bg-surface);grid-column:1/-1;justify-content:space-between;align-items:center;padding:0 16px;display:flex}.header h1{letter-spacing:.04em;text-transform:uppercase;font-size:14px;font-weight:600}.brand{align-items:center;height:100%;text-decoration:none;display:inline-flex}.brand-logo{width:auto;height:28px;display:block}.header .host-status{color:var(--text-muted);font-size:11px;font-family:var(--font-mono)}.header .host-status .dot{vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.header .host-status .dot.ok{background:var(--emerald)}.header .host-status .dot.err{background:var(--red)}.sidebar{border-right:1px solid var(--border);background:var(--bg-surface);flex-direction:column;display:flex;overflow-y:hidden}.sidebar-nav-area{flex:1;min-height:0;padding-top:6px;overflow-y:auto}.sidebar-deploy-area{border-top:1px solid var(--border);flex-shrink:0}.preview-count-badge{color:#22c55e;text-align:center;background:#1a2e1a;border-radius:99px;flex-shrink:0;min-width:20px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:600}.deploy-cta{color:#22c55e;cursor:pointer;background:0 0;border:1px solid #22c55e;border-radius:8px;width:calc(100% - 32px);margin:12px 16px 16px;padding:12px;font-size:14px;font-weight:500}.deploy-cta:hover{background:#22c55e14;border-color:#22c55e}.sidebar-header{text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:10px 12px 6px;font-size:10px;font-weight:600}.main{padding:12px 20px;overflow-y:auto}.app-item{cursor:pointer;border-left:2px solid #0000;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.app-item:hover{background:var(--bg-hover)}.app-item.selected{background:var(--bg-elevated)}.app-item .status-bar{border-radius:2px;flex-shrink:0;align-self:center;width:3px;height:20px}.app-item .status-bar.running{background:#22c55e}.app-item .status-bar.stopped{background:#ef4444}.app-item .status-bar.missing,.app-item .status-bar.deploying{background:#334155}.app-item .app-name{font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.app-item .app-meta{color:var(--text-dim);white-space:nowrap;margin-left:auto;font-size:10px}.sidebar-nav-item{cursor:pointer;color:var(--text-muted);align-items:center;gap:10px;padding:10px 14px;font-size:13px;transition:background .15s,color .15s;display:flex}.sidebar-nav-item:hover{background:var(--bg-hover);color:var(--text)}.sidebar-nav-item.selected{color:var(--text);background:#22c55e14}.sidebar-section-divider{background:var(--border);height:1px;margin:4px 0}.welcome{height:100%;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:14px;display:flex}.welcome h2{color:var(--text);font-size:18px;font-weight:500}.tabs{border-bottom:1px solid var(--border);gap:0;margin-bottom:16px;display:flex}.tab{cursor:pointer;color:var(--text-muted);font-size:13px;font-family:var(--font-ui);background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 16px}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--blue)}.detail-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.detail-header h2{font-family:var(--font-mono);font-size:16px;font-weight:500}.detail-header .actions{gap:8px;display:flex}button{font-family:var(--font-ui);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);cursor:pointer;border-radius:4px;padding:6px 12px;font-size:12px}button:hover{background:var(--bg-hover);border-color:var(--border-focus)}button.danger{color:var(--red);border-color:var(--red)}button.danger:hover{background:#ef44441a}.app-action-btn{border:1px solid var(--border);background:var(--bg-surface);color:var(--text);border-radius:6px;padding:5px 12px;font-size:13px}.app-action-btn:hover{border-color:var(--border-focus);background:var(--bg-hover)}.app-action-btn.danger{color:var(--red);border-color:var(--red);background:var(--bg-surface)}.app-action-btn.danger:hover{background:#f43f5e1a}.app-action-btn:disabled{opacity:.6;cursor:default}button.primary{background:var(--blue);border-color:var(--blue);color:#fff}button.primary:hover{opacity:.9}button:disabled{opacity:.4;cursor:not-allowed}.info-grid{grid-template-columns:140px 1fr;gap:4px 12px;font-size:13px;display:grid}.info-grid dt{color:var(--text-muted)}.info-grid dd{font-family:var(--font-mono);font-size:12px}.config-table{border-collapse:collapse;width:100%;font-size:13px}.config-table th{text-align:left;border-bottom:1px solid var(--border);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;padding:6px 8px;font-size:11px;font-weight:500}.config-table td{border-bottom:1px solid var(--border);font-family:var(--font-mono);padding:6px 8px;font-size:12px}.config-table tr:hover td{background:var(--bg-hover)}.domain-list{font-family:var(--font-mono);font-size:13px;list-style:none}.domain-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:6px 0;display:flex}.log-viewer{border:1px solid var(--border);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;height:calc(100vh - 280px);color:var(--green);background:#000;border-radius:4px;padding:12px;font-size:12px;line-height:1.6;overflow:auto}.log-viewer .log-toolbar{align-items:center;gap:8px;margin-bottom:8px;display:flex}.deploy-section{border-top:1px solid var(--border);margin-top:auto;padding-top:12px}.deploy-toggle{text-align:left;width:100%;color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:8px 12px;font-size:12px}.deploy-toggle:hover{color:var(--text);background:0 0;border:none}.deploy-form{flex-direction:column;gap:8px;padding:12px;display:flex}.deploy-form label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.deploy-form input{font-family:var(--font-mono);background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:4px;outline:none;padding:6px 8px;font-size:12px}.deploy-form input:focus{border-color:var(--border-focus)}.task-status{border-radius:4px;margin-top:8px;padding:8px 12px;font-size:12px}.task-status.running{color:var(--yellow);background:#eab3081a}.task-status.completed{color:var(--green);background:#22c55e1a}.task-status.failed{color:var(--red);background:#ef44441a}.status-badge{border-radius:3px;padding:2px 6px;font-size:11px;font-weight:500}.status-badge.running{color:var(--green);background:#22c55e26}.status-badge.stopped{color:var(--red);background:#ef444426}.status-badge.missing{color:var(--yellow);background:#eab30826}.empty{text-align:center;color:var(--text-dim);padding:32px;font-size:13px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}:root{--deploy-color:#f59e0b;--deploy-glow:#f59e0b4d;--deploy-error:#ef4444}@keyframes deploy-pulse{0%,to{box-shadow:0 0 0 1px var(--deploy-color)}50%{box-shadow:0 0 8px 2px var(--deploy-glow)}}.app-item.deploying{animation:1.5s ease-in-out infinite deploy-pulse;border-color:var(--deploy-color)!important}.app-item.deploy-failed{box-shadow:0 0 0 1px var(--deploy-error);border-color:var(--deploy-error)!important}@media (prefers-reduced-motion:reduce){.app-item.deploying{animation:none}}.deploy-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--deploy-color);font-size:10px;font-weight:600;font-family:var(--font-mono);white-space:nowrap;flex-shrink:0;margin-left:auto}.deploy-badge--failed{color:var(--deploy-error)}.hamburger{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:4px;margin-right:4px;padding:8px 10px;font-size:18px;line-height:1;display:none}.hamburger:hover{background:var(--bg-hover)}.sidebar-backdrop{display:none}@media (width<=767px){.hamburger{justify-content:center;align-items:center;min-width:44px;min-height:36px;display:inline-flex}.header{gap:4px;padding:0 8px}.header .host-name{display:none}.brand{flex:1;justify-content:flex-start}.layout{grid-template-columns:1fr}.sidebar{z-index:30;border-right:1px solid var(--border);width:260px;max-width:85vw;box-shadow:none;transition:transform .2s;position:fixed;top:40px;bottom:0;left:0;transform:translate(-100%)}.layout.sidebar-open .sidebar{transform:translate(0);box-shadow:4px 0 24px #00000080}.sidebar-backdrop{z-index:20;opacity:0;pointer-events:none;background:#00000080;transition:opacity .2s;display:block;position:fixed;inset:40px 0 0}.layout.sidebar-open .sidebar-backdrop{opacity:1;pointer-events:auto}.sidebar-nav-item{padding:12px 16px}.app-item{padding:12px 16px;font-size:13px}.app-item .app-name{font-size:13px}.main{padding:12px 14px}.detail-header{flex-wrap:wrap;gap:8px}.detail-header .actions{flex-wrap:wrap;margin-left:auto}.tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;overflow:auto hidden}.tabs::-webkit-scrollbar{display:none}.tab{flex-shrink:0;min-height:44px;padding:12px 16px}.info-grid{grid-template-columns:1fr;gap:2px 0}.info-grid dt{text-transform:uppercase;letter-spacing:.04em;margin-top:8px;font-size:11px}.info-grid dt:first-child{margin-top:0}.info-grid dd{word-break:break-all}.config-table{white-space:nowrap;display:block;overflow-x:auto}.log-viewer{font-size:11px}.welcome h2{font-size:16px}.welcome{text-align:center;padding:16px}}:root{--purple:#7c3aed;--cyan:#06b6d4}.preview-list-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.preview-list-header h2{color:var(--text);font-size:20px;font-weight:700}.preview-summary-bar{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;grid-template-columns:repeat(4,1fr);margin-bottom:12px;display:grid;overflow:hidden}.preview-summary-tile{border-right:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;display:flex}.preview-summary-tile:last-child{border-right:none}.preview-summary-tile:hover{background:var(--bg-hover)}.preview-summary-tile .tile-count{color:var(--text);font-size:18px;font-weight:700;line-height:1}.preview-summary-tile .tile-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.preview-summary-tile .tile-icon{font-size:13px}.preview-summary-tile.expiring .tile-count,.preview-summary-tile.expiring .tile-icon{color:var(--yellow)}.preview-repo-filter{align-items:center;gap:8px;margin-bottom:10px;display:flex}.preview-repo-filter label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:10px;font-weight:600}.preview-repo-filter select{background:var(--bg-surface);border:1px solid var(--border);min-height:32px;color:var(--text);cursor:pointer;border-radius:8px;flex:1;padding:6px 10px;font-size:12px;font-weight:500}.preview-repo-filter select:hover{background:var(--bg-hover)}.preview-repo-filter select:focus{border-color:var(--green);outline:none}.preview-filter-tabs{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;gap:2px;margin-bottom:14px;padding:3px;display:flex}.preview-filter-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:7px;flex:1;justify-content:center;align-items:center;gap:5px;min-height:32px;padding:7px 8px;font-size:12px;font-weight:500;display:flex}.preview-filter-tab:hover{color:var(--text);background:var(--bg-hover)}.preview-filter-tab.active{background:var(--bg-elevated);color:var(--text);border-bottom:2px solid var(--green)}.preview-tab-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.preview-tab-dot.green{background:var(--green)}.preview-tab-dot.muted{background:var(--text-dim)}.preview-tab-x{color:var(--red);font-size:10px}.preview-cards{flex-direction:column;gap:10px;display:flex}.preview-card{background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid #0000;border-radius:12px;flex-direction:column;gap:10px;padding:14px;display:flex}.preview-card--ready{border-left-color:var(--green)}.preview-card--deploying{border-left-color:var(--yellow)}.preview-card--failed{border-left-color:var(--red)}.preview-card--destroyed{opacity:.7}.preview-card-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.preview-card-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:700;overflow:hidden}.preview-card-subtitle{color:var(--text-muted);margin-top:2px;font-size:11px}.preview-status-badge{white-space:nowrap;border:1px solid #0000;border-radius:99px;flex-shrink:0;padding:3px 9px;font-size:11px;font-weight:600}.preview-status-badge--ready{color:var(--green);background:#22c55e26;border-color:#22c55e4d}.preview-status-badge--deploying{color:var(--yellow);background:#f59e0b26;border-color:#f59e0b4d}.preview-status-badge--failed{color:var(--red);background:#f43f5e26;border-color:#f43f5e4d}.preview-status-badge--destroyed{color:var(--text-muted);border-color:var(--border);background:#64748b26}.preview-pr-state-badge{white-space:nowrap;border:1px solid #0000;border-radius:99px;flex-shrink:0;padding:3px 9px;font-size:11px;font-weight:600}.preview-pr-state-badge--open{color:#4ade80;background:#22c55e1f;border-color:#22c55e40}.preview-pr-state-badge--merged{color:#c084fc;background:#a855f71f;border-color:#a855f740}.preview-pr-state-badge--closed{color:var(--text-muted);border-color:var(--border);background:#64748b1f}.preview-badge-row{flex-wrap:wrap;gap:6px;display:flex}.preview-badge{border:1px solid;border-radius:99px;align-items:center;gap:4px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-flex}.preview-badge--protected{color:#60a5fa;background:#60a5fa1a;border-color:#60a5fa66}.preview-badge--db{color:var(--cyan);background:#06b6d41a;border-color:#06b6d466}.preview-badge--pulsing{animation:1.4s ease-in-out infinite badge-pulse}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}.preview-badge--auto{color:#a78bfa;background:#a78bfa1a;border-color:#a78bfa66}.preview-badge--manual{color:var(--text-muted);border-color:var(--border);background:0 0}.preview-badge--warn{color:#fbbf24;cursor:default;background:#fbbf241a;border-color:#fbbf2466}.preview-url-row{background:var(--bg-elevated);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;display:flex}.preview-url-link{color:#60a5fa;align-items:center;gap:6px;min-width:0;font-size:12px;font-weight:500;text-decoration:none;display:flex}.preview-url-link:hover{text-decoration:underline}.preview-url-text{white-space:nowrap;text-overflow:ellipsis;color:var(--text-muted);font-size:11px;overflow:hidden}.preview-copy-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:4px;font-size:14px}.preview-copy-btn:hover{color:var(--text);background:var(--bg-hover)}.preview-progress-wrap{flex-direction:column;gap:6px;padding:4px 0;display:flex}.preview-progress-bar{background:var(--bg-elevated);border-radius:99px;height:4px;overflow:hidden}.preview-progress-bar:after{content:"";background:var(--yellow);border-radius:99px;width:40%;height:100%;animation:1.4s ease-in-out infinite preview-shimmer;display:block}@keyframes preview-shimmer{0%{transform:translate(-200%)}to{transform:translate(400%)}}.preview-progress-label{color:var(--text-muted);font-size:11px}@media (prefers-reduced-motion:reduce){.preview-progress-bar:after{opacity:.5;width:100%;animation:none}}.preview-error-row{color:var(--red);align-items:flex-start;gap:6px;font-size:12px;display:flex}.preview-meta-row{color:var(--text-muted);align-items:center;gap:14px;font-size:12px;display:flex}.preview-meta-item{align-items:center;gap:4px;display:flex}.preview-meta-item.expiring{color:var(--yellow);font-weight:600}.preview-ext-count{opacity:.6;margin-left:4px;font-size:11px}.preview-action-row{gap:6px;margin-top:2px;display:flex}.preview-action-row button,.preview-action-row a{border-radius:8px;flex:1;justify-content:center;align-items:center;gap:4px;min-height:36px;font-size:12px;font-weight:500;text-decoration:none;display:flex}.preview-action-row .btn-more{flex:0 0 36px;padding:0}.preview-btn-open{color:#a78bfa;background:#7c3aed26;border-color:#7c3aed66}.preview-btn-open:hover{background:#7c3aed40}.preview-btn-open.disabled{opacity:.45;pointer-events:none}.preview-btn-extend.urgent{color:var(--yellow);border-color:#f59e0b80}.preview-sheet-backdrop{z-index:40;background:#0009;position:fixed;inset:0}.preview-bottom-sheet{border:1px solid var(--border);z-index:41;padding:0 0 env(safe-area-inset-bottom,16px);background:#1c1c1e;border-bottom:none;border-radius:20px 20px 0 0;animation:.22s ease-out sheet-slide-up;position:fixed;bottom:0;left:0;right:0}@keyframes sheet-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.preview-sheet-handle{background:var(--border);border-radius:99px;width:36px;height:4px;margin:10px auto 6px}.preview-sheet-item{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;width:100%;min-height:52px;padding:14px 20px;font-size:15px;display:flex}.preview-sheet-item:hover{background:var(--bg-hover)}.preview-sheet-item .sheet-icon{text-align:center;flex-shrink:0;width:24px;font-size:17px}.preview-sheet-item-body{flex-direction:column;gap:1px;display:flex}.preview-sheet-item-sub{color:var(--text-muted);font-size:12px}.preview-sheet-item.danger{color:var(--red)}.preview-sheet-divider{background:var(--border);height:1px;margin:4px 0}.activity-feed-v2{flex-direction:column;gap:12px;display:flex}.activity-header{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.activity-header h2{font-size:20px;font-weight:700}.activity-live{color:var(--green);align-items:center;gap:6px;font-size:13px;display:flex}.activity-live-dot{background:var(--green);border-radius:50%;width:8px;height:8px}.activity-live-dot.active{animation:1s ease-in-out infinite activity-pulse}@keyframes activity-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}@media (prefers-reduced-motion:reduce){.activity-live-dot.active{animation:none}}.activity-filter-pills{scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.activity-filter-pills::-webkit-scrollbar{display:none}.activity-filter-pill{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:99px;flex-shrink:0;padding:5px 12px;font-size:12px;font-weight:500}.activity-filter-pill:hover{color:var(--text);border-color:var(--border-focus)}.activity-filter-pill.active{background:var(--bg-elevated);color:var(--text);border-color:var(--border-focus)}.activity-timeline{flex-direction:column;gap:0;display:flex}.activity-timeline-item{align-items:stretch;gap:12px;display:flex}.activity-spine-col{flex-direction:column;flex-shrink:0;align-items:center;width:36px;display:flex}.activity-spine-icon{z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:flex}.activity-spine-icon--success{background:#22c55e33;border:1.5px solid #22c55e66}.activity-spine-icon--failed{background:#f43f5e33;border:1.5px solid #f43f5e66}.activity-spine-icon--progress{background:#f59e0b33;border:1.5px solid #f59e0b66}.activity-spine-icon--info{background:#88888826;border:1.5px solid #88888840}.activity-spine-icon--muted{background:#47556933;border:1.5px solid #4755694d}.activity-spine-line{background:var(--border);flex:1;width:2px;min-height:12px;margin:0}.activity-spine-card{flex:1;min-width:0;padding-bottom:0}.activity-story-card{background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid #0000;border-radius:12px;flex-direction:column;gap:8px;margin-bottom:8px;padding:14px;display:flex}.activity-story-card--success{border-left-color:var(--green)}.activity-story-card--failed{border-left-color:var(--red)}.activity-story-card--progress{border-left-color:var(--yellow)}.activity-story-header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.activity-story-title{flex-direction:column;gap:1px;min-width:0;display:flex}.activity-story-op{color:var(--text);font-size:14px;font-weight:700}.activity-story-verb{color:var(--text-muted);font-size:12px}.activity-story-meta{flex-shrink:0;align-items:center;gap:6px;display:flex}.activity-story-time{color:var(--text-muted);font-size:12px}.activity-outcome-icon{font-size:14px;font-weight:700}.activity-outcome-icon.success{color:var(--green)}.activity-outcome-icon.failed{color:var(--red)}.activity-outcome-icon.progress{color:var(--yellow)}.activity-story-sub{color:var(--text-muted);font-size:12px}.activity-story-user{color:var(--text-dim)}.activity-stage-bar-wrap{flex-direction:column;gap:4px;display:flex}.activity-stage-bar{background:var(--bg-elevated);border-radius:99px;gap:2px;height:6px;display:flex;overflow:hidden}.activity-stage-bar-seg{border-radius:99px;height:100%;transition:background .3s}.activity-stage-bar-labels{width:100%;display:flex}.activity-stage-bar-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;text-align:center;white-space:nowrap;text-overflow:clip;min-width:max-content;font-size:10px;overflow:visible}.activity-stage-bar-label--success{color:var(--green)}.activity-stage-bar-label--failed{color:var(--red)}.activity-stage-bar-label--active{color:var(--yellow)}.activity-stage-bar-label--pending{color:var(--text-dim);opacity:.5}.activity-stage-bar-seg--pending{opacity:.45;border:1.5px dashed #333;border-radius:3px;background:0 0!important}.activity-stage-bar-seg--active{animation:1.5s ease-in-out infinite stage-bar-pulse}@keyframes stage-bar-pulse{0%,to{opacity:1}50%{opacity:.65}}@media (prefers-reduced-motion:reduce){.activity-stage-bar-seg--active{animation:none}}.activity-expand-btn{color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:12px}.activity-expand-btn:hover{color:var(--text);background:0 0;border:none}.activity-step-list{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:4px;display:flex}.activity-step-row{align-items:center;gap:8px;font-size:11px;display:flex}.activity-step-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.activity-step-dot--success{background:var(--green)}.activity-step-dot--failure{background:var(--red)}.activity-step-dot--info{background:var(--yellow)}.activity-step-time{color:var(--text-dim);font-family:var(--font-mono);flex-shrink:0}.activity-step-op{color:var(--text-muted)}.activity-step-detail{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.activity-single-row{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;align-items:center;gap:10px;margin-bottom:8px;padding:10px 12px;display:flex}.activity-icon-dot{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.activity-icon-dot--success{background:#22c55e26}.activity-icon-dot--failed{background:#f43f5e26}.activity-icon-dot--info{background:#f59e0b26}.activity-single-body{flex:1;min-width:0}.activity-single-title{color:var(--text);font-size:13px}.activity-single-detail{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:11px;overflow:hidden}.activity-single-time{color:var(--text-dim);flex-shrink:0;font-size:11px}.login-screen{background:var(--bg);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.login-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:320px;padding:32px 28px;display:flex}.login-card img{display:block}.login-title{color:var(--text);margin:4px 0 0;font-size:20px;font-weight:600}.login-sub{color:var(--text-muted);text-align:center;margin:0 0 8px;font-size:13px}.login-input{width:100%;color:var(--text);background:var(--bg);border:1px solid var(--border);box-sizing:border-box;border-radius:8px;outline:none;padding:10px 12px;font-size:14px}.login-input:focus{border-color:var(--green)}.login-error{color:#f87171;text-align:center;width:100%;font-size:12px}.login-button{color:#06210f;background:var(--green);cursor:pointer;border:none;border-radius:8px;width:100%;padding:10px 12px;font-size:14px;font-weight:600;transition:opacity .15s}.login-button:hover:not(:disabled){opacity:.9}.login-button:disabled{opacity:.5;cursor:not-allowed}.logout-button{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;margin-left:12px;padding:6px;transition:color .15s,background .15s;display:inline-flex}.logout-button:hover{color:var(--text);background:var(--bg-hover)}.detail-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;margin-bottom:12px;padding:14px}.detail-card-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:10px;font-size:11px;font-weight:600;display:block}.detail-card-rows{flex-direction:column;gap:0;display:flex}.detail-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;padding:7px 0;font-size:13px;display:flex}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--text-muted);flex-shrink:0;font-size:12px}.detail-value{font-family:var(--font-mono);text-align:right;align-items:center;gap:6px;font-size:12px;display:flex}.sha-code{color:#a78bfa;font-family:var(--font-mono);background:0 0;padding:0;font-size:12px}.icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 4px;font-size:14px;line-height:1}.icon-btn:hover{color:var(--text);background:var(--bg-elevated);border:none}.repo-link{color:#a78bfa;word-break:break-all;text-decoration:none}.repo-link:hover{text-decoration:underline}.deploy-controls{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-top:14px;padding-top:14px;display:flex}.deploy-controls-branch{align-items:center;gap:8px;display:flex}.deploy-controls-branch label{margin:0}.deploy-controls-branch input,.deploy-controls-branch select{background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--font-mono);border-radius:4px;flex:1;padding:5px 8px;font-size:12px}.deploy-controls-branch input:disabled,.deploy-controls-branch select:disabled{opacity:.5;cursor:not-allowed}.deploy-controls-buttons{flex-wrap:wrap;gap:8px;display:flex}.process-row{border-bottom:1px solid var(--border);padding:10px 0}.process-row:last-child{border-bottom:none}.process-row-main{align-items:center;gap:10px;display:flex}.process-type{font-family:var(--font-mono);color:var(--text);flex-shrink:0;min-width:48px;font-size:12px}.process-metrics{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.cpu-bar-wrap{background:var(--bg-elevated);border-radius:99px;flex-shrink:0;width:64px;height:6px;overflow:hidden}.cpu-bar{border-radius:99px;height:100%;transition:width .3s}.metric-label{color:var(--text-muted);white-space:nowrap;font-size:11px;font-family:var(--font-mono)}.process-ports{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.port-chip{font-family:var(--font-mono);color:var(--text-muted);background:var(--bg-elevated);border-radius:4px;padding:2px 6px;font-size:11px}.stepper{border:1px solid var(--border);border-radius:6px;flex-shrink:0;align-items:center;margin-left:auto;display:flex;overflow:hidden}.stepper-btn{background:var(--bg-elevated);color:var(--text);cursor:pointer;border:none;border-radius:0;padding:4px 10px;font-size:14px;line-height:1}.stepper-btn:hover:not(:disabled){background:var(--bg-hover);border:none}.stepper-btn:disabled{opacity:.3}.stepper-count{font-family:var(--font-mono);text-align:center;min-width:28px;color:var(--text);background:var(--bg-surface);-webkit-user-select:none;user-select:none;padding:0 6px;font-size:12px;display:inline-block}.collapsible-header{cursor:pointer;width:100%;color:var(--text);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:0;display:flex}.collapsible-header:hover{background:0 0;border:none}.collapsible-chevron{color:var(--text-muted);flex-shrink:0;font-size:12px}.collapsible-controls{align-items:center;gap:6px;display:flex}.log-subtabs{align-items:center;gap:4px;display:flex}.log-subtab{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:99px;padding:3px 8px;font-size:11px}.log-subtab:hover{color:var(--text);border-color:var(--border-focus);background:0 0}.log-subtab.active{background:var(--bg-elevated);color:var(--text);border-color:var(--border-focus)}.domain-chips{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.domain-chip{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;align-items:center;display:flex;overflow:hidden}.domain-chip-link{color:var(--text);font-family:var(--font-mono);cursor:pointer;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:8px;min-width:0;padding:10px 12px;font-size:12px;display:flex}.domain-chip-link:hover{background:var(--bg-hover);border:none}.domain-chip-icon{flex-shrink:0;font-size:13px}.domain-chip-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.domain-chip-external{color:#a78bfa;flex-shrink:0;font-size:12px}.domain-chip-remove{border:none;border-left:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:0;padding:10px 12px;font-size:16px;line-height:1}.domain-chip-remove:hover{color:var(--red);border:none;border-left:1px solid var(--border);background:#ef444414}.domain-add-row{gap:8px;margin-top:8px;display:flex}.service-rows{flex-direction:column;gap:0;display:flex}.service-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:8px 0;font-size:12px;display:flex}.service-row:last-child{border-bottom:none}.service-icon{flex-shrink:0;font-size:14px}.service-name{font-family:var(--font-mono);color:var(--text);font-size:12px}.service-type-pill{background:var(--bg-elevated);border:1px solid var(--border);color:var(--text-muted);border-radius:99px;padding:2px 6px;font-size:10px}.status-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.status-dot.running{background:var(--green)}.status-dot.stopped{background:var(--red)}.feedback-section{margin-top:14px}.feedback-section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.feedback-section-title{align-items:baseline;gap:8px;display:flex}.feedback-section-title h3{color:var(--text);margin:0;font-size:14px}.feedback-unresolved-count{color:var(--yellow);font-size:11px}.feedback-section-controls{align-items:center;gap:8px;display:flex}.feedback-source-chip{color:var(--text-muted);background:var(--bg-elevated);border:1px solid var(--border);border-radius:99px;padding:2px 7px;font-size:10px}.feedback-filter-tabs{gap:2px;display:inline-flex}.feedback-filter-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:3px 9px;font-size:11px}.feedback-filter-tab:hover{color:var(--text);background:var(--bg-hover)}.feedback-filter-tab.active{color:var(--text);background:var(--bg-elevated);border-color:var(--border)}.feedback-empty{color:var(--text-muted);text-align:center;padding:14px 4px;font-size:12px}.feedback-empty.error{color:var(--red)}.feedback-rows{flex-direction:column;gap:2px;display:flex}.feedback-row{border-bottom:1px solid var(--border);align-items:flex-start;gap:10px;padding:10px 4px;display:flex}.feedback-row:last-child{border-bottom:none}.feedback-row-badge{flex-shrink:0;padding-top:1px}.feedback-row-main{flex:1;min-width:0}.feedback-row-body{color:var(--text);overflow-wrap:anywhere;font-size:13px;line-height:1.35}.feedback-empty-body{color:var(--text-dim)}.feedback-row-meta{color:var(--text-muted);overflow-wrap:anywhere;margin-top:3px;font-size:11px}.feedback-anchor{color:var(--text-muted)}.feedback-path{font-family:var(--font-mono)}.feedback-state{border:1px solid var(--border);background:var(--bg-elevated);white-space:nowrap;border-radius:99px;align-items:center;gap:5px;padding:2px 7px;font-size:10px;display:inline-flex}.feedback-state-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:6px;height:6px}.feedback-state--new{color:var(--yellow);border-color:var(--yellow)}.feedback-state--new .feedback-state-dot{background:var(--yellow)}.feedback-state--in-progress{color:var(--blue);border-color:var(--blue)}.feedback-state--in-progress .feedback-state-dot{background:var(--blue)}.feedback-state--resolved{color:var(--green);border-color:var(--green)}.feedback-state--resolved .feedback-state-dot{background:var(--green)}.feedback-thumb{border:1px solid var(--border);background:var(--bg);border-radius:6px;flex-shrink:0;width:64px;height:44px;display:block;overflow:hidden}.feedback-thumb img{object-fit:cover;width:100%;height:100%;display:block}.feedback-avatar{background:var(--bg-elevated);border:1px solid var(--border);width:24px;height:24px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.deploy-list-shell{flex-direction:column;gap:12px;display:flex}.deploy-list-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.deploy-list-heading{flex-direction:column;gap:2px;min-width:0;display:flex}.deploy-list-title{color:var(--text);font-size:16px;font-weight:700}.deploy-list-subtitle{color:var(--text-muted);font-size:12px}.deploy-mono{font-family:var(--font-mono)}.deploy-list-subtitle .deploy-mono{font-size:11px}.deploy-gh-icon{vertical-align:-2px;width:14px;height:14px}.deploy-commit-icon{color:var(--text-dim);flex-shrink:0}.deploy-list-filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.deploy-segment{border:1px solid var(--border);background:0 0;border-radius:6px;display:inline-flex;overflow:hidden}.deploy-segment-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;min-height:30px;padding:5px 12px;font-size:12px;font-weight:500}.deploy-segment-btn:hover{color:var(--text)}.deploy-segment-btn.active{background:var(--bg-elevated);color:var(--text)}.deploy-branch-filter{border:1px solid var(--border);background:var(--bg-surface);color:var(--text);border-radius:6px;min-width:140px;min-height:30px;padding:5px 10px;font-size:12px}.deploy-branch-filter:focus{border-color:var(--border-focus);outline:none}.deploy-list-state{padding:8px 0;font-size:13px}.deploy-list-muted{color:var(--text-muted)}.deploy-list-empty-filtered{border:1px dashed var(--border);border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;display:flex}.deploy-clear-filters{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:500}.deploy-clear-filters:hover{border-color:var(--border-focus)}.deploy-clear-filters--footer{align-self:flex-start}.deploy-list-panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:10px;padding:4px 12px}.deploy-list-head,.deploy-row-grid{grid-template-columns:24px minmax(108px,.8fr) minmax(150px,1.25fr) minmax(150px,1.05fr) minmax(70px,.6fr) minmax(110px,.95fr) 80px 0;align-items:center;gap:10px;display:grid}.deploy-list-head{letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);border-bottom:1px solid var(--border);padding:8px 4px 6px;font-size:11px;font-weight:600}.deploy-list{flex-direction:column;display:flex}.deploy-row{border-top:1px solid var(--border)}.deploy-row:first-child{border-top:none}.deploy-row--gone{opacity:.6}.deploy-row-grid{padding:11px 4px;font-size:13px}.deploy-cell,.deploy-cell--deployment,.deploy-cell--type,.deploy-cell--source,.deploy-cell--branch,.deploy-cell--commit{min-width:0;overflow:hidden}.deploy-cell--chevron,.deploy-cell--status,.deploy-cell--avatar{overflow:visible}.deploy-cell--avatar{width:0;padding:0}.deploy-chevron{cursor:pointer;color:var(--text-muted);background:0 0;border:none;align-items:center;padding:0;display:inline-flex}.deploy-chevron--disabled{cursor:default;color:var(--text-dim)}.deploy-status{align-items:center;gap:7px;min-width:0;display:inline-flex}.deploy-status-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.deploy-status-dot--green{background:var(--green)}.deploy-status-dot--amber{background:var(--yellow)}.deploy-status-dot--red{background:var(--red)}.deploy-status-dot--slate{background:#64748b}.deploy-status-dot--muted{background:var(--text-dim)}.deploy-status-dot--pulsing{animation:1s ease-in-out infinite activity-pulse}@media (prefers-reduced-motion:reduce){.deploy-status-dot--pulsing{animation:none}}.deploy-status-label{color:var(--text);white-space:nowrap}.deploy-status-age{color:var(--text-muted);white-space:nowrap;font-size:12px}.deploy-cell--deployment{align-items:center;gap:6px;display:inline-flex}.deploy-name,.deploy-name-link{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.deploy-name-link{color:var(--green);text-decoration:none}.deploy-name-link:hover{text-decoration:underline}.deploy-current-pill{white-space:nowrap;letter-spacing:.02em;color:var(--green);background:#22c55e26;border:1px solid #22c55e4d;border-radius:99px;flex-shrink:0;padding:3px 9px;font-size:10px;font-weight:600}.deploy-env-badge{letter-spacing:.01em;border:1px solid #0000;border-radius:99px;align-items:center;gap:5px;max-width:100%;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.deploy-env-glyph{flex-shrink:0;font-size:11px;line-height:1}.deploy-env-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.deploy-env-badge--prod{color:var(--green);background:#22c55e26;border-color:#22c55e4d}.deploy-env-badge--preview{color:var(--text-muted);background:#64748b2e;border-color:#64748b4d}.deploy-env-badge--custom{color:#a5b4fc;background:#6366f129;border-color:#6366f159}.deploy-cell--source{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap}.deploy-branch{min-width:0;color:var(--text-muted);align-items:center;gap:5px;display:flex}.deploy-branch-icon{flex-shrink:0}.deploy-branch-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.deploy-cell--commit{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis}.deploy-dash{color:var(--text-dim)}.deploy-row-config{padding:0 4px 10px 34px}.deploy-config{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:12px}.deploy-config-muted,.deploy-config-empty{color:var(--text-dim)}.deploy-config-empty{padding:4px 0}.deploy-config-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.deploy-config-hint{color:var(--text-dim)}.deploy-config-link{color:var(--green);cursor:pointer;white-space:nowrap;font-weight:500;text-decoration:none}.deploy-config-link:hover{text-decoration:underline}.deploy-config-toggle{cursor:pointer;color:var(--text-dim);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:inline-flex}.deploy-config-toggle-input{opacity:0;width:0;height:0;position:absolute}.deploy-config-toggle-track{background:var(--border);border-radius:99px;flex-shrink:0;width:32px;height:18px;transition:background .15s;position:relative}.deploy-config-toggle-track:after{content:"";background:var(--text);border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:2px;left:2px}.deploy-config-toggle-input:checked+.deploy-config-toggle-track{background:var(--green)}.deploy-config-toggle-input:checked+.deploy-config-toggle-track:after{background:#fff;transform:translate(14px)}.deploy-config-toggle-input:focus-visible+.deploy-config-toggle-track{outline:2px solid var(--border-focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){.deploy-config-toggle-track,.deploy-config-toggle-track:after{transition:none}}.deploy-config-table{border-collapse:collapse;width:100%}.deploy-config-table th{text-align:left;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;padding:4px 8px;font-size:11px;font-weight:500}.deploy-config-table td{border-top:1px solid var(--border);padding:4px 8px}.deploy-config-key{font-family:var(--font-mono);white-space:nowrap}.deploy-config-value{font-family:var(--font-mono);word-break:break-all}.deploy-config-value--secret{color:var(--text-dim)}.deploy-config-tag{font-size:10px;font-family:var(--font-sans,inherit);color:var(--text-muted);vertical-align:middle;background:#64748b2e;border:1px solid #64748b47;border-radius:99px;margin-left:6px;padding:1px 6px;font-weight:500;display:inline-block}.deploy-card{display:none}@media (width<=767px){.deploy-list-header{flex-direction:column;align-items:stretch}.deploy-list-filters{width:100%}.deploy-segment{flex:1}.deploy-segment-btn{text-align:center;flex:1;min-height:36px}.deploy-branch-filter{flex:1;min-height:36px}.deploy-list-head{display:none}.deploy-list-panel{background:0 0;border:none;border-radius:0;padding:0}.deploy-row-grid{display:none}.deploy-list{gap:10px}.deploy-row{background:var(--bg-surface);border:1px solid var(--border);border-top:1px solid var(--border);border-radius:12px;padding:2px 12px;overflow:hidden}.deploy-row:first-child{border-top:1px solid var(--border)}.deploy-card{flex-direction:column;gap:6px;display:flex}.deploy-card-tap{text-align:left;cursor:pointer;width:100%;min-height:44px;color:inherit;background:0 0;border:none;flex-direction:column;gap:4px;padding:12px 4px;display:flex}.deploy-card-tap:disabled{cursor:default}.deploy-card-primary{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.deploy-card-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:600;overflow:hidden}.deploy-card-chevron{color:var(--text-muted);margin-left:auto;display:inline-flex}.deploy-card-secondary{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.deploy-card-meta{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:4px;max-width:100%;display:inline-flex;overflow:hidden}.deploy-card-meta .deploy-branch-icon,.deploy-card-meta .deploy-commit-icon{color:var(--text-dim);flex-shrink:0}.deploy-card-url{color:var(--green);text-overflow:ellipsis;white-space:nowrap;padding:0 4px 8px;font-size:11px;text-decoration:none;display:block;overflow:hidden}.deploy-row-config{margin:0 0 10px;padding:0}}
