:root{--bg-primary: #0a0a0a;--bg-secondary: #141414;--bg-tertiary: #1a1a1a;--border-color: #2a2a2a;--text-primary: #e5e5e5;--text-secondary: #a0a0a0;--text-muted: #666;--accent-blue: #3b82f6;--accent-blue-hover: #2563eb;--accent-green: #22c55e;--accent-yellow: #eab308;--accent-red: #ef4444}*{box-sizing:border-box;margin:0;padding:0}body{font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh}code,pre,.mono{font-family:IBM Plex Mono,monospace}.app{min-height:100vh;display:flex;flex-direction:column}.header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;border-bottom:1px solid var(--border-color);background:var(--bg-secondary)}.header h1{font-size:1.25rem;font-weight:600}.header-actions{display:flex;align-items:center;gap:1rem}.user-email{color:var(--text-secondary);font-size:.875rem}.btn{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;border:none}.btn-primary{background:var(--accent-blue);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-blue-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--border-color)}.btn:disabled{opacity:.5;cursor:not-allowed}.main-content{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;color:var(--text-secondary)}.spinner{width:32px;height:32px;border:3px solid var(--border-color);border-top-color:var(--accent-blue);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.error{background:#ef44441a;border:1px solid var(--accent-red);color:var(--accent-red);padding:1rem;border-radius:8px;margin-bottom:1rem}.services-grid{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}.service-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem}.service-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.service-name{font-size:1.125rem;font-weight:600}.service-type{font-size:.75rem;color:var(--text-muted);background:var(--bg-tertiary);padding:.25rem .5rem;border-radius:4px;text-transform:uppercase}.version-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--border-color)}.version-row:last-of-type{border-bottom:none}.version-label{font-size:.875rem;color:var(--text-secondary);min-width:80px}.version-info{flex:1;text-align:right}.version-tag{font-family:IBM Plex Mono,monospace;font-size:.875rem;color:var(--text-primary)}.version-time{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.commit-message{font-size:.75rem;color:var(--text-secondary);margin-top:.375rem;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.in-sync{display:inline-flex;align-items:center;gap:.5rem;color:var(--accent-green);font-size:.875rem}.status-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500}.status-passing{background:#22c55e1a;color:var(--accent-green)}.status-failing{background:#ef44441a;color:var(--accent-red)}.status-pending{background:#eab3081a;color:var(--accent-yellow)}.service-card-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem}.login-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:2rem;width:100%;max-width:400px;text-align:center}.login-card h1{font-size:1.5rem;margin-bottom:.5rem}.login-card p{color:var(--text-secondary);margin-bottom:1.5rem}.login-card .btn{width:100%}.refresh-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}.last-updated{font-size:.875rem;color:var(--text-secondary)}.workflows-section{margin-top:2rem}.workflows-section h2{font-size:1.125rem;margin-bottom:1rem}.workflow-list{display:flex;flex-direction:column;gap:.5rem}.workflow-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px}.workflow-name{font-weight:500}.workflow-meta{display:flex;align-items:center;gap:1rem;color:var(--text-secondary);font-size:.875rem}
