*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0a0f1e;color:#cbd5e1;font-size:15px;line-height:1.5}.app{display:flex;flex-direction:column;min-height:100vh}header{background:#0f172a;border-bottom:1px solid #1e293b;padding:0 2rem;display:flex;align-items:center;gap:1rem;height:56px;position:sticky;top:0;z-index:10}.header-logo{width:28px;height:28px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:6px;flex-shrink:0}header h1{font-size:1rem;font-weight:600;color:#f1f5f9;margin:0;letter-spacing:-.01em}header p{margin:0 0 0 auto;color:#475569;font-size:.8rem}.header-home-link{display:flex;align-items:center;gap:1rem;text-decoration:none;cursor:pointer}.header-home-link:hover h1{color:#a5b4fc}main{flex:1;max-width:1100px;width:100%;margin:0 auto;padding:2rem 1.5rem}.card{background:#0f172a;border:1px solid #1e293b;border-radius:10px;padding:1.5rem}.deploy-form{background:#0f172a;border:1px solid #1e293b;border-radius:10px;padding:1.5rem;margin-bottom:1.5rem}.deploy-form h2{margin:0 0 1.25rem;font-size:.95rem;font-weight:600;color:#f1f5f9;text-transform:uppercase;letter-spacing:.06em}.input-row{display:flex;gap:.6rem;margin-bottom:.6rem;flex-wrap:wrap}.input-row:last-of-type{margin-bottom:0}.subdomain-row{flex-direction:column;gap:.4rem}.subdomain-input-wrap{display:flex;align-items:center;gap:0}.subdomain-input-wrap input{border-radius:7px 0 0 7px;flex:0 1 220px}.subdomain-suffix{background:#1e293b;border:1px solid #334155;border-left:none;border-radius:0 7px 7px 0;color:#64748b;font-size:.8rem;padding:.6rem .75rem;white-space:nowrap}.field-hint{margin:0;font-size:.78rem;color:#64748b}.field-hint.error{color:#f87171}.field-hint strong{color:#a5b4fc}input[type=url],input[type=text]{flex:1;background:#0a0f1e;border:1px solid #334155;border-radius:7px;color:#e2e8f0;font-size:.875rem;padding:.6rem .875rem;transition:border-color .15s;min-width:0}input[type=url]::placeholder,input[type=text]::placeholder{color:#475569}input[type=url]:focus,input[type=text]:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}input:disabled{opacity:.5}button{background:#6366f1;border:none;border-radius:7px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.6rem 1.25rem;white-space:nowrap;transition:background .15s,transform .1s}button:hover:not(:disabled){background:#4f46e5}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:#1e293b;border:1px solid #334155;color:#94a3b8}button.secondary:hover:not(:disabled){background:#263349}.error{color:#f87171;font-size:.825rem;margin:.6rem 0 0}.project-list{background:#0f172a;border:1px solid #1e293b;border-radius:10px;overflow:hidden}.list-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #1e293b}.list-header h2{margin:0;font-size:.95rem;font-weight:600;color:#f1f5f9;text-transform:uppercase;letter-spacing:.06em}.last-updated{color:#475569;font-size:.775rem}table{width:100%;border-collapse:collapse;font-size:.85rem}thead{background:#080d1a}th{text-align:left;color:#64748b;font-weight:500;font-size:.775rem;text-transform:uppercase;letter-spacing:.05em;padding:.65rem 1.5rem;border-bottom:1px solid #1e293b}td{padding:.875rem 1.5rem;border-bottom:1px solid #0f172a}tbody tr{transition:background .1s}tbody tr:hover{background:#111827}tbody tr:last-child td{border-bottom:none}.status-badge{border-radius:5px;color:#fff;font-size:.7rem;font-weight:600;padding:.2rem .55rem;letter-spacing:.03em;text-transform:uppercase}.project-detail>a{color:#6366f1;font-size:.85rem}.detail-header{display:flex;align-items:center;gap:1rem;margin:1.25rem 0 1.5rem}.detail-header h2{margin:0;font-size:1.4rem;font-weight:700;color:#f1f5f9}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1.5rem}.detail-card{background:#0f172a;border:1px solid #1e293b;border-radius:8px;padding:1rem 1.25rem}.detail-card-label{font-size:.725rem;text-transform:uppercase;letter-spacing:.06em;color:#475569;margin-bottom:.35rem}.detail-card-value{font-size:.9rem;color:#e2e8f0;word-break:break-all}.project-url-banner{background:linear-gradient(135deg,#1a1f3a,#0f172a);border:1px solid #6366f1;border-radius:8px;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;gap:1rem}.project-url-banner span{font-size:.8rem;color:#818cf8;text-transform:uppercase;letter-spacing:.06em}.project-url-banner a{color:#a5b4fc;font-size:.925rem;font-weight:500}.deploy-progress h2{font-size:1.2rem;font-weight:700;color:#f1f5f9;margin:0 0 1.5rem}.deploy-progress h2 code{background:#1e293b;border-radius:4px;padding:.1em .4em;font-size:.9em}.progress-steps{list-style:none;margin:0 0 1.5rem;padding:0;display:flex;flex-direction:column;gap:0}.step{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1.25rem;background:#0f172a;border:1px solid #1e293b;border-radius:0;border-bottom:none;font-size:.875rem}.step:first-child{border-radius:8px 8px 0 0}.step:last-child{border-radius:0 0 8px 8px;border-bottom:1px solid #1e293b}.step:only-child{border-radius:8px;border-bottom:1px solid #1e293b}.step-icon{width:18px;flex-shrink:0;font-size:.9rem;margin-top:1px}.step-label{font-weight:500;color:#e2e8f0;min-width:180px}.step-msg{color:#64748b;font-size:.8rem;margin-left:auto;text-align:right;max-width:400px}.step-running{border-left:3px solid #6366f1}.step-done{border-left:3px solid #22c55e}.step-error{border-left:3px solid #ef4444;background:#1a0a0a}@keyframes spin{to{transform:rotate(360deg)}}.spin{display:inline-block;animation:spin 1s linear infinite;color:#6366f1}.deploy-success,.deploy-error{background:#0f172a;border:1px solid #1e293b;border-radius:8px;padding:1.25rem 1.5rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.deploy-success{border-color:#166534;background:#052e16}.deploy-success p{margin:0;color:#86efac;font-weight:500}.project-link{color:#a5b4fc;font-size:.9rem;font-weight:500;word-break:break-all}.deploy-error{border-color:#7f1d1d;background:#1a0a0a}.deploy-error p{margin:0}.muted{color:#475569}a{color:#818cf8;text-decoration:none}a:hover{text-decoration:underline}.empty{color:#334155;text-align:center;padding:3rem 1rem;font-size:.9rem}
