@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=JetBrains+Mono:wght@300;400;500;600&family=Sora:wght@300;400;500;600;700&display=swap";.login-view{height:100vh;display:flex;align-items:center;justify-content:center;background:#f0f2f0}.login-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:0 8px 32px #0000000f}.login-logo{text-align:center;margin-bottom:32px}.login-logo-icon{width:48px;height:48px;background:var(--green);color:#fff;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:JetBrains Mono,monospace;font-size:18px;font-weight:600;margin-bottom:12px}.login-logo h1{font-family:Sora,sans-serif;font-size:22px;font-weight:600;letter-spacing:-.3px}.login-logo h1 em{font-style:normal;color:var(--green)}.login-logo p{font-size:14px;color:var(--text-secondary);margin-top:4px}.login-form{display:flex;flex-direction:column;gap:16px}.login-field label{display:block;font-size:13px;font-weight:500;margin-bottom:5px;color:var(--charcoal)}.login-field input{width:100%;font-family:DM Sans,sans-serif;font-size:14px;padding:11px 14px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--charcoal);outline:none}.login-field input:focus{border-color:var(--green)}.login-submit{width:100%;font-family:DM Sans,sans-serif;font-size:14px;font-weight:600;padding:12px;border-radius:10px;border:none;background:var(--green);color:#fff;cursor:pointer;transition:all .15s;margin-top:4px}.login-submit:hover{background:var(--green-deep)}.login-submit:disabled{background:var(--border);color:var(--text-secondary);cursor:not-allowed}.login-error{font-size:13px;color:var(--red-soft);background:var(--red-faint);padding:8px 12px;border-radius:6px}.login-toggle{text-align:center;font-size:13px;color:var(--text-secondary);margin-top:4px}.login-toggle button{background:none;border:none;color:var(--green-deep);cursor:pointer;font-family:DM Sans,sans-serif;font-size:13px;font-weight:500}.login-toggle button:hover{text-decoration:underline}.signed-in{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#f0f2f0}.signed-in p{font-size:14px;color:var(--text-secondary)}.signed-in button{font-family:DM Sans,sans-serif;font-size:14px;font-weight:500;padding:10px 20px;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--charcoal);cursor:pointer}.signed-in button:hover{border-color:var(--green);color:var(--green-deep)}.dashboard{height:100vh;display:flex;flex-direction:column;background:#f0f2f0;overflow:hidden}.dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:#fff;border-bottom:1px solid var(--border)}.dashboard-brand{display:flex;align-items:center;gap:10px}.brand-icon{width:30px;height:30px;background:var(--green);color:#fff;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600}.brand-title{font-family:Sora,sans-serif;font-size:16px;font-weight:600;letter-spacing:-.2px}.brand-title em{font-style:normal;color:var(--green)}.dashboard-user{display:flex;align-items:center;gap:12px;font-size:13px}.user-email{color:var(--text-secondary)}.dashboard-main{flex:1;overflow:auto;padding:32px;display:flex;flex-direction:column;align-items:center;gap:20px}.panel{background:#fff;border:1px solid var(--border);border-radius:16px;padding:28px;width:100%;max-width:880px;box-shadow:0 4px 20px #00000008;display:flex;flex-direction:column;gap:20px}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.panel-header h2{font-family:Sora,sans-serif;font-size:18px;font-weight:600;letter-spacing:-.2px}.panel-subtitle{font-size:13px;color:var(--text-secondary);margin-top:4px;max-width:520px}.panel-empty{font-size:13px;color:var(--text-secondary);padding:32px 0;text-align:center;border:1px dashed var(--border);border-radius:10px}.panel-error{font-size:13px;color:var(--red-soft);background:var(--red-faint);padding:10px 14px;border-radius:8px}.primary-button{font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;padding:9px 16px;border-radius:8px;border:none;background:var(--green);color:#fff;cursor:pointer;transition:background .15s;white-space:nowrap}.primary-button:hover{background:var(--green-deep)}.primary-button:disabled{background:var(--border);color:var(--text-secondary);cursor:not-allowed}.ghost-button{font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:#fff;color:var(--charcoal);cursor:pointer;transition:border-color .15s,color .15s}.ghost-button:hover{border-color:var(--green);color:var(--green-deep)}.danger-button{font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;padding:8px 14px;border-radius:8px;border:1px solid var(--red-soft);background:#fff;color:var(--red-soft);cursor:pointer;transition:background .15s,color .15s}.danger-button:hover{background:var(--red-soft);color:#fff}.danger-button:disabled{border-color:var(--border);color:var(--text-secondary);background:#fff;cursor:not-allowed}.inline-form{display:flex;gap:8px;align-items:center}.inline-form input{flex:1;font-family:DM Sans,sans-serif;font-size:14px;padding:10px 14px;border:1px solid var(--border);border-radius:8px;outline:none}.inline-form input:focus{border-color:var(--green)}.key-reveal{background:var(--yellow-faint);border:1px solid #F0E1B5;border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.key-reveal-label{font-size:13px;font-weight:500;color:#8a6b1f}.key-reveal-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.key-reveal-row code{flex:1;font-family:JetBrains Mono,monospace;font-size:13px;background:#fff;border:1px solid var(--border);border-radius:6px;padding:8px 12px;-webkit-user-select:all;user-select:all;word-break:break-all;min-width:240px}.key-table{width:100%;border-collapse:collapse;font-size:13px}.key-table th{text-align:left;font-weight:500;color:var(--text-secondary);padding:10px 12px;border-bottom:1px solid var(--border)}.key-table td{padding:12px;border-bottom:1px solid var(--border)}.key-table tr:last-child td{border-bottom:none}.key-table code{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-secondary)}.key-table-actions{text-align:right;white-space:nowrap}.key-table-actions button{margin-left:6px}.clickable-row{cursor:pointer;transition:background .12s}.clickable-row:hover{background:#f8f9f8}.mono-inline{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-secondary)}.status-pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;font-family:DM Sans,sans-serif}.status-queued{background:#eef0f2;color:#6b7280}.status-running{background:var(--yellow-faint);color:#8a6b1f}.status-completed{background:#e6f4ea;color:var(--green-deep)}.status-failed{background:var(--red-faint);color:var(--red-soft)}.job-facts{display:grid;grid-template-columns:140px 1fr;gap:8px 16px;font-size:13px;margin:0}.job-facts dt{color:var(--text-secondary)}.job-facts dd{margin:0}.meta-block{display:flex;flex-direction:column;gap:8px}.meta-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px}.timeline{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.timeline-row{display:grid;grid-template-columns:100px 110px 1fr;gap:12px;align-items:baseline;font-size:13px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:#fafbfa}.timeline-row.level-warn{background:var(--yellow-faint);border-color:#f0e1b5}.timeline-row.level-error{background:var(--red-faint);border-color:var(--red-soft);color:var(--red-soft)}.timeline-time{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-secondary)}.timeline-event{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600}.timeline-data{font-family:JetBrains Mono,monospace;font-size:12px;color:var(--text-secondary);word-break:break-word;overflow-wrap:anywhere}:root{--green: #6B9E7E;--green-deep: #4A7560;--green-light: #C8DECE;--green-faint: #E8F0EB;--paper: #F7F9F7;--charcoal: #1E1E1E;--text-secondary: #7A7A7A;--border: #E4EBE4;--red-soft: #C46B6B;--red-faint: #FDF3F3;--yellow: #D4A843;--yellow-faint: #FDF8EC}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f0f2f0;color:var(--charcoal);line-height:1.6;-webkit-font-smoothing:antialiased;height:100vh;overflow:hidden}#root{height:100vh;overflow:hidden}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}
