.project{margin-bottom:18px;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.project-title{display:flex;align-items:center;padding:17px 20px;border-bottom:1px solid var(--line);background:#fafbfa;gap:12px}.project-title h2{margin:0}.project-title code{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-title button{margin-left:auto;flex:none}.project .grid{padding:15px}.project-empty{padding:22px;color:var(--muted)}
.workspace{margin-bottom:30px}.workspace-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding:0 4px}.workspace-title h2{margin:2px 0 0;font-size:22px}.workspace-empty{padding:24px;border:1px dashed var(--line);border-radius:13px;color:var(--muted);background:#fff}
.service-advanced{border-top:1px solid var(--line);padding-top:14px;margin-top:4px}.service-advanced summary{cursor:pointer;color:var(--muted);font-weight:650;margin-bottom:14px}.service-advanced:not([open]) summary{margin-bottom:0}
.deploy-progress{padding:25px}.deploy-progress h2{margin-bottom:18px}.deploy-progress-bar{height:8px;background:#e8ecea;border-radius:99px;overflow:hidden;margin:8px 0 16px}.deploy-progress-bar i{display:block;width:38%;height:100%;border-radius:inherit;background:var(--green);animation:deploy-slide 1.2s ease-in-out infinite}.deploy-progress-bar.done i{width:100%;animation:none}.deploy-progress-bar.failed i{width:100%;animation:none;background:var(--danger)}.deploy-progress-error{white-space:pre-wrap;max-height:220px;overflow:auto;background:#fff1f1;color:#9c2929;padding:12px;border-radius:8px}.deploy-progress-error[hidden]{display:none}@keyframes deploy-slide{0%{transform:translateX(-110%)}100%{transform:translateX(290%)}}
.deploy-progress-log{height:min(52vh,480px);overflow:auto;background:#101714;color:#d8ede4;padding:14px;border-radius:10px;white-space:pre-wrap;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.deployment-history{display:grid;gap:8px;min-width:min(560px,80vw)}.deployment-history button{display:flex;justify-content:space-between;gap:18px;text-align:left}.deployment-history span{color:var(--muted);font-size:12px}
.connection-test{display:flex;align-items:center;gap:10px;margin:-3px 0 15px}.connection-test span,#globalGithubTestResult{font-size:12px}.test-ok{color:#087d53}.test-bad{color:var(--danger)}
.card-actions{position:relative;justify-content:flex-end}.card-menu{margin-right:auto}.card-menu summary{list-style:none;cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 13px}.card-menu summary::-webkit-details-marker{display:none}.card-menu-items{position:absolute;left:0;bottom:48px;z-index:5;display:grid;min-width:170px;padding:7px;background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 14px 36px #10201922}.card-menu-items button{text-align:left;border:0;background:transparent}.card-menu-items button:hover{background:#edf6f1}
.login-page{display:grid;place-items:center;background:#eef2f0}.login-box{width:min(390px,calc(100% - 32px));background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:0 20px 60px #17332612}.login-brand{display:flex;align-items:center;gap:10px;font-weight:750;font-size:18px;margin-bottom:30px}.login-box h1{font-size:27px}.login-box>p{margin-bottom:25px}.login-box button{width:100%;margin-top:6px}.login-error{color:var(--danger);min-height:22px;margin-top:12px}
@media(max-width:760px){.project-title{align-items:flex-start;flex-wrap:wrap}.project-title code{order:3;width:100%}}
