@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap");:root{--slate-1:#fcfcfd;--slate-2:#f9f9fb;--slate-3:#f0f0f3;--slate-4:#e8e8ec;--slate-5:#e0e1e6;--slate-6:#d9d9e0;--slate-7:#cdced6;--slate-8:#b9bbc6;--slate-9:#8b8d98;--slate-10:#80838d;--slate-11:#60646c;--slate-12:#1c2024;--blue-3:#e6f4fe;--blue-7:#8ec8f6;--blue-9:#0090ff;--blue-10:#0588f0;--blue-11:#0d74ce;--green-3:#e6f6eb;--green-7:#8eceaa;--green-9:#30a46c;--green-10:#2b9a66;--green-11:#218358;--amber-3:#fff7c2;--amber-7:#e9c162;--amber-9:#ffc53d;--amber-11:#ab6400;--red-3:#feebec;--red-7:#f4a9aa;--red-9:#e5484d;--red-10:#dc3e42;--red-11:#ce2c31;--bg-default:#ffffff;--bg-screen:var(--slate-1);--bg-subtle:var(--slate-2);--bg-element:var(--slate-3);--bg-hover:var(--slate-4);--bg-selected:var(--slate-5);--bg-overlay:rgba(255,255,255,0.9);--bg-primary:var(--bg-default);--bg-secondary:var(--bg-default);--bg-tertiary:var(--bg-element);--bg-card:var(--bg-default);--bg-glass:var(--bg-element);--bg-glass-hover:var(--bg-hover);--border-color:var(--slate-6);--border-hover:var(--slate-7);--border-focus:var(--blue-9);--text-primary:var(--slate-12);--text-secondary:var(--slate-11);--text-muted:var(--slate-9);--text-quaternary:var(--slate-8);--accent-primary:var(--blue-9);--accent-primary-light:var(--blue-11);--accent-primary-dark:var(--blue-10);--accent-glow:var(--blue-3);--accent-success:var(--green-11);--accent-success-bg:var(--green-3);--accent-warning:var(--amber-11);--accent-warning-bg:var(--amber-3);--accent-error:var(--red-11);--accent-error-bg:var(--red-3);--accent-info:var(--blue-11);--accent-info-bg:var(--blue-3);--gradient-primary:var(--slate-12);--gradient-card:none;--shadow-xs:0 1px 3px rgba(0,0,0,0.02),0 1px 2px rgba(0,0,0,0.05);--shadow-sm:0 3px 6px rgba(0,0,0,0.08),0 2px 4px rgba(0,0,0,0.07);--shadow-md:0 10px 20px rgba(0,0,0,0.1),0 3px 6px rgba(0,0,0,0.05);--shadow-lg:0 15px 25px rgba(0,0,0,0.12),0 5px 10px rgba(0,0,0,0.05);--shadow-glow:none;--font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono","Fira Code","SF Mono","Consolas",monospace;--sidebar-width:240px;--header-height:56px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--transition-fast:120ms ease;--transition-base:200ms ease;--transition-slow:300ms ease}*,:after,:before{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);background-color:var(--bg-screen);color:var(--text-primary);line-height:1.5;min-height:100vh;font-size:14px}a{color:var(--blue-11);text-decoration:none;transition:opacity var(--transition-fast)}a:hover{opacity:.8}body:before{display:none}.app-layout{display:flex;min-height:100vh;position:relative;z-index:1}.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;background:var(--bg-default);border-right:1px solid var(--border-color);display:flex;flex-direction:column;z-index:100;transition:transform var(--transition-base)}.sidebar-header{padding:16px 12px 8px}.sidebar-logo{display:flex;align-items:center;gap:8px;padding:0 4px}.sidebar-logo-icon{width:26px;height:26px;background:var(--slate-12);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:white}.sidebar-logo-text{font-size:15px;font-weight:700;letter-spacing:-.02em}.sidebar-logo-text,.sidebar-logo-text span{color:var(--text-primary)}.sidebar-nav{flex:1 1;padding:4px 8px;overflow-y:auto}.nav-section-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:16px 8px 4px}.nav-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);margin-bottom:1px;text-decoration:none}.nav-item:hover{background:var(--bg-element);color:var(--text-primary);opacity:1}.nav-item.active{background:var(--blue-9);color:#ffffff;font-weight:600}.nav-item.active:hover{background:var(--blue-10);color:#ffffff}.nav-item.active .nav-item-icon{opacity:1;color:#ffffff}.nav-item-icon{width:16px;height:16px;opacity:.5;flex-shrink:0}.sidebar-footer{padding:8px;border-top:1px solid var(--border-color)}.user-card{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.user-card:hover{background:var(--bg-element)}.user-avatar{width:26px;height:26px;border-radius:50%;background:var(--slate-9);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:white;flex-shrink:0}.user-info{flex:1 1;min-width:0}.user-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-plan{font-size:11px;color:var(--text-muted);text-transform:capitalize;font-weight:400}.main-content{margin-left:var(--sidebar-width);flex:1 1;min-height:100vh;background:var(--bg-screen)}.page-header{padding:16px 24px;border-bottom:1px solid var(--border-color);background:var(--bg-default);position:-webkit-sticky;position:sticky;top:0;z-index:50}.page-title{font-size:18px;font-weight:600;color:var(--text-primary);letter-spacing:-.01em}.page-subtitle{font-size:13px;color:var(--text-muted);margin-top:2px}.page-body{padding:24px}.card{background:var(--bg-default);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:20px;transition:border-color var(--transition-fast)}.card:hover{border-color:var(--border-hover)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-size:14px;font-weight:600;color:var(--text-primary)}.card-subtitle{font-size:12px;color:var(--text-muted)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px;margin-bottom:24px}.stat-card{background:var(--bg-default);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:16px 20px;transition:border-color var(--transition-fast)}.stat-card:before{display:none}.stat-card:hover{border-color:var(--border-hover)}.stat-label{font-size:12px;font-weight:500;color:var(--text-muted);margin-bottom:4px}.stat-value{font-size:24px;font-weight:700;color:var(--text-primary);line-height:1.3;letter-spacing:-.02em}.stat-change{font-size:12px;font-weight:500;margin-top:4px;display:flex;align-items:center;gap:4px}.stat-change.positive{color:var(--green-11)}.stat-change.negative{color:var(--red-11)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 16px;border-radius:100px;font-size:13px;font-weight:500;font-family:var(--font-family);cursor:pointer;border:1px solid transparent;transition:all var(--transition-fast);text-decoration:none;white-space:nowrap}.btn:active{transform:scale(.98)}.btn-primary{background:var(--slate-12);color:white;border-color:transparent}.btn-primary:hover{background:var(--slate-11)}.btn-primary:disabled{background:var(--slate-8);cursor:not-allowed}.btn-secondary{background:transparent;color:var(--text-primary);border-color:var(--slate-7)}.btn-secondary:hover{background:var(--bg-element)}.btn-sm{padding:4px 12px;font-size:12px}.btn-danger{background:var(--red-10);color:white;border-color:transparent}.btn-danger:hover{background:var(--red-11)}.table-container{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--border-color)}table{width:100%;border-collapse:collapse}thead th{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);text-align:left;background:var(--bg-subtle)}tbody td,thead th{padding:10px 16px;border-bottom:1px solid var(--border-color)}tbody td{font-size:13px;color:var(--text-secondary)}tbody tr{transition:background var(--transition-fast)}tbody tr:hover{background:var(--bg-element)}tbody tr:last-child td{border-bottom:none}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:100px;font-size:11px;font-weight:500;text-transform:capitalize}.status-badge:before{content:"";width:5px;height:5px;border-radius:50%}.status-success{background:var(--green-3);color:var(--green-11)}.status-success:before{background:var(--green-9)}.status-failed{background:var(--red-3);color:var(--red-11)}.status-failed:before{background:var(--red-9)}.status-building,.status-installing,.status-preparing{background:var(--amber-3);color:var(--amber-11)}.status-building:before,.status-installing:before,.status-preparing:before{background:var(--amber-9);animation:pulse 1.5s infinite}.status-queued{background:var(--blue-3);color:var(--blue-11)}.status-queued:before{background:var(--blue-9)}.status-cancelled,.status-timeout{background:var(--slate-3);color:var(--slate-11)}.status-cancelled:before,.status-timeout:before{background:var(--slate-9)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.form-group{margin-bottom:16px}.form-label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.form-input{width:100%;padding:7px 12px;background:var(--bg-default);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-family);font-size:13px;transition:border-color var(--transition-fast);outline:none}.form-input:focus{border-color:var(--blue-9);box-shadow:0 0 0 2px rgba(0,144,255,.12)}.form-input::placeholder{color:var(--slate-9)}select.form-input{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3e%3cpath d='M3 4.5L6 7.5L9 4.5' stroke='%238b8d98' stroke-width='1.5' stroke-linecap='round'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px}textarea.form-input{resize:vertical;min-height:80px;line-height:1.5}.log-viewer{background:#1c2024;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:16px;font-family:var(--font-mono);font-size:12px;line-height:1.7;max-height:600px;overflow-y:auto;color:#b0b4ba}.log-viewer .log-line{white-space:pre-wrap;word-break:break-all}.log-viewer .log-error{color:#ff9592}.log-viewer .log-warn{color:#ffca16}.log-viewer .log-success{color:#3dd68c}.log-viewer .log-phase{color:#70b8ff;font-weight:600}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;z-index:1;background:var(--bg-screen)}.auth-container{width:100%;max-width:400px}.auth-card{background:var(--bg-default);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:36px;box-shadow:var(--shadow-sm)}.auth-logo{gap:8px;margin-bottom:28px}.auth-logo,.auth-logo-icon{display:flex;align-items:center;justify-content:center}.auth-logo-icon{width:32px;height:32px;background:var(--slate-12);border-radius:var(--radius-md);font-size:16px;font-weight:800;color:white}.auth-logo-text{font-size:22px;font-weight:700;letter-spacing:-.02em}.auth-logo-text,.auth-logo-text span,.auth-title{color:var(--text-primary)}.auth-title{text-align:center;font-size:18px;font-weight:600;margin-bottom:6px}.auth-subtitle{text-align:center;font-size:13px;color:var(--text-muted);margin-bottom:28px}.auth-form .btn-primary{width:100%;padding:10px;font-size:14px;margin-top:4px;border-radius:100px}.auth-footer{text-align:center;margin-top:20px;font-size:13px;color:var(--text-muted)}@media (max-width:768px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.main-content{margin-left:0}.page-body{padding:16px}.stats-grid{grid-template-columns:repeat(2,1fr)}.page-header{padding:16px 20px}}@media (max-width:480px){.stats-grid{grid-template-columns:1fr}.auth-card{padding:24px}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .3s ease-out forwards}.animate-slide-in{animation:fadeIn .25s ease-out forwards}.stat-card:first-child{animation-delay:0s}.stat-card:nth-child(2){animation-delay:50ms}.stat-card:nth-child(3){animation-delay:.1s}.stat-card:nth-child(4){animation-delay:.15s}.stat-card:nth-child(5){animation-delay:.2s}.stat-card:nth-child(6){animation-delay:.25s}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--slate-6);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--slate-7)}