*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0f1419;color:#e7e9ea;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#1a1f29}::-webkit-scrollbar-thumb{background:#2a3441;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#3a4451}.dashboard{margin:0 auto;max-width:1400px;min-height:100vh;padding:20px}.dashboard.loading{align-items:center;display:flex;flex-direction:column;gap:20px;justify-content:center}.spinner{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.dashboard-header{border-bottom:1px solid #2a3441;margin-bottom:30px;padding-bottom:20px}.header-content{align-items:center;display:flex;justify-content:space-between}.dashboard-header h1{align-items:center;display:flex;font-size:32px;font-weight:600;gap:12px}.logo-icon{color:#1d9bf0}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:40px}.stat-card{background:#1a1f29;border:1px solid #2a3441;border-radius:12px;padding:24px;transition:transform .2s}.stat-card:hover{transform:translateY(-2px)}.stat-card.success{border-color:#00ba7c}.stat-card.warning{border-color:#ffd400}.stat-card.error{border-color:#f4212e}.stat-label{color:#8b98a5;font-size:14px;margin-bottom:8px}.stat-value{font-size:36px;font-weight:700}.deployments-section{margin-top:30px}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.section-header h2{font-size:24px;font-weight:600}.empty-state{background:#1a1f29;border:2px dashed #2a3441;border-radius:12px;padding:80px 20px;text-align:center}.empty-state svg{color:#8b98a5;margin-bottom:20px}.empty-state h3{font-size:20px;margin-bottom:10px}.empty-state p{color:#8b98a5;margin-bottom:30px}.deployments-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}.deployment-card{background:#1a1f29;border:1px solid #2a3441;border-radius:12px;cursor:pointer;padding:20px;transition:all .2s}.deployment-card:hover{border-color:#3a4451;box-shadow:0 4px 12px #0000004d;transform:translateY(-2px)}.deployment-card.running{border-left:4px solid #00ba7c}.deployment-card.stopped{border-left:4px solid #ffd400}.deployment-card.failed{border-left:4px solid #f4212e}.deployment-card.building,.deployment-card.starting{border-left:4px solid #1d9bf0}.card-header{justify-content:space-between;margin-bottom:16px}.card-header,.card-title{align-items:center;display:flex}.card-title{gap:10px}.card-title h3{font-size:18px;font-weight:600}.status-icon{height:20px;width:20px}.status-icon.success{color:#00ba7c}.status-icon.warning{color:#ffd400}.status-icon.error{color:#f4212e}.status-icon.info{animation:pulse 2s ease-in-out infinite;color:#1d9bf0}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.health-badge{border-radius:12px;font-size:12px;font-weight:600;padding:4px 12px;text-transform:uppercase}.health-badge.healthy{background:#00ba7c33;color:#00ba7c}.health-badge.unhealthy{background:#f4212e33;color:#f4212e}.card-body{margin-bottom:16px}.deployment-info{border-bottom:1px solid #2a3441;display:flex;font-size:14px;justify-content:space-between;padding:8px 0}.deployment-info:last-child{border-bottom:none}.info-label{color:#8b98a5;font-weight:500}.subdomain-link{align-items:center;color:#1d9bf0;display:flex;gap:4px;text-decoration:none;transition:color .2s}.subdomain-link:hover{color:#4ab3f4}.status-text{font-weight:600;text-transform:capitalize}.status-text.running{color:#00ba7c}.status-text.stopped{color:#ffd400}.status-text.failed{color:#f4212e}.status-text.building,.status-text.starting{color:#1d9bf0}.card-actions{border-top:1px solid #2a3441;display:flex;gap:8px;padding-top:16px}.btn{align-items:center;background:#0000;border:none;border-radius:8px;color:#e7e9ea;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:#1d9bf0;color:#fff}.btn-primary:hover{background:#1a8cd8}.btn-secondary{background:#2a3441;color:#e7e9ea}.btn-secondary:hover{background:#3a4451}.btn-icon{border-radius:6px;padding:8px}.btn-success{background:#00ba7c33;color:#00ba7c}.btn-success:hover{background:#00ba7c4d}.btn-warning{background:#ffd40033;color:#ffd400}.btn-warning:hover{background:#ffd4004d}.btn-danger{background:#f4212e33;color:#f4212e}.btn-danger:hover{background:#f4212e4d}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#1a1f29;border:1px solid #2a3441;border-radius:16px;box-shadow:0 8px 32px #0006;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #2a3441;display:flex;justify-content:space-between;padding:24px}.modal-header h2{font-size:20px;font-weight:600}.close-btn{align-items:center;background:#0000;border:none;border-radius:4px;color:#8b98a5;cursor:pointer;display:flex;padding:4px;transition:all .2s}.close-btn:hover{background:#2a3441;color:#e7e9ea}.modal-body{padding:24px}.upload-area{background:#0f1419;border:2px dashed #2a3441;border-radius:12px;cursor:pointer;margin-bottom:24px;padding:60px 20px;text-align:center;transition:all .3s}.upload-area:hover{background:#151a24;border-color:#3a4451}.upload-area.drag-active{background:#1d9bf01a;border-color:#1d9bf0}.upload-area.has-file{background:#00ba7c0d;border-color:#00ba7c;border-style:solid}.file-info{align-items:center;display:flex;flex-direction:column;gap:12px}.file-info svg{color:#00ba7c}.file-name{color:#e7e9ea;font-size:16px;font-weight:600}.file-size{color:#8b98a5;font-size:14px}.upload-prompt svg{color:#8b98a5;margin-bottom:16px}.prompt-title{font-size:16px;font-weight:600;margin-bottom:8px}.prompt-subtitle{color:#8b98a5;font-size:14px;margin-bottom:4px}.prompt-hint{color:#6b7885;font-size:12px;margin-top:12px}.form-group{margin-bottom:24px}.form-group label{color:#e7e9ea;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.input-with-suffix{align-items:center;background:#0f1419;border:1px solid #2a3441;border-radius:8px;display:flex;overflow:hidden}.input-with-suffix input{background:#0000;border:none;color:#e7e9ea;flex:1 1;font-size:14px;outline:none;padding:12px}.input-with-suffix input:disabled{cursor:not-allowed;opacity:.5}.input-suffix{color:#8b98a5;font-size:14px;padding:12px;white-space:nowrap}.input-help{color:#8b98a5;font-size:12px;margin-top:8px}.progress-section{background:#0f1419;border:1px solid #2a3441;border-radius:8px;padding:20px}.progress-bar{background:#2a3441;border-radius:3px;height:6px;margin-bottom:12px;overflow:hidden}.progress-fill{animation:progress 2s ease-in-out infinite;background:linear-gradient(90deg,#1d9bf0,#00ba7c);height:100%;width:100%}@keyframes progress{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.progress-text{align-items:center;color:#8b98a5;display:flex;font-size:14px;gap:8px}.modal-footer{border-top:1px solid #2a3441;display:flex;gap:12px;justify-content:flex-end;padding:24px}.deployment-detail{margin:0 auto;max-width:1200px;min-height:100vh;padding:20px}.deployment-detail.error,.deployment-detail.loading{align-items:center;display:flex;flex-direction:column;gap:20px;justify-content:center}.detail-header{border-bottom:1px solid #2a3441;gap:20px;margin-bottom:30px;padding-bottom:20px}.detail-header,.header-info{align-items:center;display:flex}.header-info{flex:1 1;gap:12px}.header-info h1{font-size:28px;font-weight:600}.status-badge{border-radius:16px;font-size:12px;font-weight:600;padding:6px 16px;text-transform:uppercase}.status-badge.running{background:#00ba7c33;color:#00ba7c}.status-badge.stopped{background:#ffd40033;color:#ffd400}.status-badge.failed{background:#f4212e33;color:#f4212e}.status-badge.building,.status-badge.starting{background:#1d9bf033;color:#1d9bf0}.header-actions{display:flex;gap:12px}.detail-tabs{border-bottom:1px solid #2a3441;margin-bottom:30px}.detail-tabs,.tab{display:flex;gap:8px}.tab{align-items:center;background:#0000;border:none;border-bottom:2px solid #0000;color:#8b98a5;cursor:pointer;font-size:14px;font-weight:600;padding:12px 20px;transition:all .2s}.tab:hover{background:#2a34414d;color:#e7e9ea}.tab.active{border-bottom-color:#1d9bf0;color:#1d9bf0}.detail-content{background:#1a1f29;border:1px solid #2a3441;border-radius:12px;padding:30px}.tab-content{animation:fadeIn .3s}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.info-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:30px}.info-card{background:#0f1419;border:1px solid #2a3441;border-radius:8px;display:flex;gap:16px;padding:20px}.info-icon{color:#1d9bf0;flex-shrink:0}.info-card h3{color:#8b98a5;font-size:14px;margin-bottom:8px}.info-card p,.info-link{font-size:16px;font-weight:600}.info-link{align-items:center;color:#1d9bf0;display:flex;gap:6px;text-decoration:none;transition:color .2s}.info-link:hover{color:#4ab3f4}.mono{font-family:monospace;font-size:14px}.info-section{margin-bottom:30px}.info-section:last-child{margin-bottom:0}.info-section h2{font-size:18px;font-weight:600;margin-bottom:16px}.code-block{word-wrap:break-word;background:#0f1419;border:1px solid #2a3441;border-radius:8px;font-family:Courier New,monospace;font-size:13px;line-height:1.6;overflow-x:auto;padding:20px;white-space:pre-wrap}.timeline{display:flex;flex-direction:column;gap:20px}.timeline-item{align-items:flex-start;display:flex;gap:16px}.timeline-dot{background:#2a3441;border-radius:50%;flex-shrink:0;height:12px;margin-top:4px;width:12px}.timeline-dot.success{background:#00ba7c}.timeline-item strong{display:block;margin-bottom:4px}.timeline-item p{color:#8b98a5;font-size:14px}.config-section{margin-bottom:30px}.config-section:last-child{margin-bottom:0}.config-section h2{font-size:18px;font-weight:600;margin-bottom:16px}.logs-section{margin-bottom:30px}.logs-section:last-child{margin-bottom:0}.logs-section h2{font-size:18px;font-weight:600;margin-bottom:16px}.logs-container{background:#0f1419;border:1px solid #2a3441;border-radius:8px;font-family:Courier New,monospace;font-size:13px;max-height:400px;overflow-y:auto;padding:16px}.log-entry{border-bottom:1px solid #2a3441;display:flex;gap:12px;padding:8px 0}.log-entry:last-child{border-bottom:none}.log-time{color:#8b98a5;flex-shrink:0}.log-type{color:#1d9bf0;flex-shrink:0;font-size:11px;font-weight:600;text-transform:uppercase}.log-entry.log-error .log-type{color:#f4212e}.log-entry.log-success .log-type{color:#00ba7c}.log-entry.log-warning .log-type{color:#ffd400}.log-message{flex:1 1;word-break:break-word}.container-logs{line-height:1.5;white-space:pre}.stats-grid-detail{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:30px}.stat-card-detail{background:#0f1419;border:1px solid #2a3441;border-radius:8px;padding:24px}.stat-card-detail h3{color:#8b98a5;font-size:14px;margin-bottom:12px}.stat-value-detail{font-size:24px;font-weight:700;margin-bottom:16px}.stat-bar{background:#2a3441;border-radius:4px;height:8px;margin-bottom:8px;overflow:hidden}.stat-bar-fill{border-radius:4px;height:100%;transition:width .3s}.stat-bar-fill.cpu{background:linear-gradient(90deg,#1d9bf0,#00ba7c)}.stat-bar-fill.memory{background:linear-gradient(90deg,#ffd400,#f4212e)}.stat-percent{color:#8b98a5;font-size:12px;text-align:right}.empty-stats{align-items:center;display:flex;flex-direction:column;gap:16px;padding:60px 20px}.empty-stats,.empty-stats svg{color:#8b98a5}.App{background-color:#0f1419;min-height:100vh}
/*# sourceMappingURL=main.f422b4ef.css.map*/