:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}body{color:#e2e8f0;background:#0f172a;margin:0}.app-loading{justify-content:center;align-items:center;height:100vh;display:flex}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{background:#1e293b;border-radius:12px;width:100%;max-width:420px;padding:2rem;box-shadow:0 10px 40px #0006}.brand{align-items:center;gap:.5rem;margin-bottom:1rem;font-weight:600;display:flex}.brand-icon{font-size:1.5rem}.login-subtitle{color:#94a3b8;margin-bottom:1.5rem}.login-note{color:#64748b;margin-top:1rem;font-size:.85rem}.google-button{color:#e2e8f0;cursor:pointer;background:#0b1222;border:1px solid #334155;border-radius:8px;justify-content:center;align-items:center;gap:.6rem;width:100%;padding:.75rem;font-size:.95rem;display:flex}.google-button:hover{background:#152238}.google-mark{width:20px;height:20px}.form-error{color:#f87171;background:#f871711a;border:1px solid #f8717166;border-radius:6px;padding:.5rem .75rem}.dashboard{max-width:1100px;margin:0 auto;padding:1.5rem}.dashboard-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.header-actions{align-items:center;gap:1rem;display:flex}.user-email{color:#94a3b8;font-size:.9rem}.panel{background:#1e293b;border-radius:12px;margin-bottom:1.5rem;padding:1.25rem 1.5rem}.panel h2{margin-top:0}.panel-actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.status-grid{gap:.5rem;display:grid}button{color:#e2e8f0;cursor:pointer;background:#334155;border:none;border-radius:6px;padding:.5rem .9rem;font-size:.9rem}button:hover{background:#475569}button:disabled{opacity:.5;cursor:not-allowed}.danger-button{background:#7f1d1d}.danger-button:hover{background:#991b1b}.simple-table{border-collapse:collapse;width:100%;margin-top:.5rem}.simple-table th,.simple-table td{text-align:left;border-bottom:1px solid #334155;padding:.5rem;font-size:.9rem}.actions-cell{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.hint-text{color:#94a3b8;margin-top:-.25rem;font-size:.85rem}.icon-button{background:0 0;padding:.1rem .4rem;font-size:1rem}.icon-button:hover{background:#334155}.stack-badges{flex-wrap:wrap;gap:.3rem;display:flex}.badge{color:#e2e8f0;white-space:nowrap;background:#1d4ed8;border-radius:999px;padding:.15rem .6rem;font-size:.75rem}.badge-unknown{background:#475569}.stack-select{color:#e2e8f0;background:#0b1222;border:1px solid #334155;border-radius:6px;padding:.4rem}.details-row td{background:#16213a;padding:1rem}.details-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.5rem 1.5rem;font-size:.85rem;display:grid}.details-full-row{grid-column:1/-1}.details-full-row ul{margin:.25rem 0 0;padding-left:1.2rem}.inline-form{flex-wrap:wrap;gap:.5rem;margin-top:1rem;display:flex}.inline-form input{color:#e2e8f0;background:#0b1222;border:1px solid #334155;border-radius:6px;flex:1;min-width:200px;padding:.5rem}.settings-block{border-bottom:1px solid #334155;margin-bottom:1.25rem;padding-bottom:1.25rem}.settings-block:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.settings-block h3{color:#cbd5e1;margin:0 0 .5rem;font-size:1rem}.settings-block .inline-form{align-items:center}.settings-block label{color:#94a3b8;flex-direction:column;gap:.2rem;font-size:.8rem;display:flex}.settings-block input,.settings-block select{color:#e2e8f0;background:#0b1222;border:1px solid #334155;border-radius:6px;flex:none;width:90px;min-width:0;padding:.4rem}.settings-block>.inline-form>select{width:auto}.modal-overlay{z-index:50;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:#1e293b;border-radius:12px;width:100%;max-width:600px;max-height:80vh;padding:1.5rem;overflow-y:auto}.modal input{color:#e2e8f0;box-sizing:border-box;background:#0b1222;border:1px solid #334155;border-radius:6px;width:100%;margin:.5rem 0;padding:.5rem}.file-list{padding:0;list-style:none}.file-list li{justify-content:space-between;align-items:center;padding:.3rem 0;display:flex}.job-log{white-space:pre-wrap;background:#0b1222;border-radius:8px;max-height:300px;padding:.75rem;font-size:.8rem;overflow-y:auto}.job-status-running{color:#fbbf24}.job-status-done{color:#4ade80}.job-status-error{color:#f87171}
