:root{--bg-page-light:#f4f6f9;--bg-page-dark:#0d1117;--bg-surface-light:#ffffff;--bg-surface-dark:#161b22;--bg-muted-light:#eef2f6;--bg-muted-dark:#21262d;--text-primary-light:#0f172a;--text-primary-dark:#f0f6fc;--text-secondary-light:#475569;--text-secondary-dark:#8b949e;--border-color-light:#dbe2ea;--border-color-dark:#30363d;--brand-light:#2563eb;--brand-dark:#3b82f6;--brand-hover-light:#1d4ed8;--brand-hover-dark:#60a5fa;--brand-text-light:#ffffff;--brand-text-dark:#ffffff;--success-bg-light:#dcfce7;--success-bg-dark:#132e1f;--success-text-light:#15803d;--success-text-dark:#4ade80;--warning-bg-light:#fef3c7;--warning-bg-dark:#3b2806;--warning-text-light:#b45309;--warning-text-dark:#fbbf24;--danger-bg-light:#fee2e2;--danger-bg-dark:#3c1414;--danger-text-light:#b91c1c;--danger-text-dark:#f87171;--info-bg-light:#dbeafe;--info-bg-dark:#13274c;--info-text-light:#1d4ed8;--info-text-dark:#60a5fa;--neutral-bg-light:#e2e8f0;--neutral-bg-dark:#282e37;--neutral-text-light:#475569;--neutral-text-dark:#94a3b8;--bg-page:var(--bg-page-light);--bg-surface:var(--bg-surface-light);--bg-muted:var(--bg-muted-light);--text-primary:var(--text-primary-light);--text-secondary:var(--text-secondary-light);--border-color:var(--border-color-light);--brand:var(--brand-light);--brand-hover:var(--brand-hover-light);--brand-text:var(--brand-text-light);--success-bg:var(--success-bg-light);--success-text:var(--success-text-light);--warning-bg:var(--warning-bg-light);--warning-text:var(--warning-text-light);--danger-bg:var(--danger-bg-light);--danger-text:var(--danger-text-light);--info-bg:var(--info-bg-light);--info-text:var(--info-text-light);--neutral-bg:var(--neutral-bg-light);--neutral-text:var(--neutral-text-light);@media (prefers-color-scheme:dark){--bg-page:var(--bg-page-dark);--bg-surface:var(--bg-surface-dark);--bg-muted:var(--bg-muted-dark);--text-primary:var(--text-primary-dark);--text-secondary:var(--text-secondary-dark);--border-color:var(--border-color-dark);--brand:var(--brand-dark);--brand-hover:var(--brand-hover-dark);--brand-text:var(--brand-text-dark);--success-bg:var(--success-bg-dark);--success-text:var(--success-text-dark);--warning-bg:var(--warning-bg-dark);--warning-text:var(--warning-text-dark);--danger-bg:var(--danger-bg-dark);--danger-text:var(--danger-text-dark);--info-bg:var(--info-bg-dark);--info-text:var(--info-text-dark);--neutral-bg:var(--neutral-bg-dark);--neutral-text:var(--neutral-text-dark)}@supports (color:light-dark(white,black)){--bg-page:light-dark(var(--bg-page-light),var(--bg-page-dark));--bg-surface:light-dark(var(--bg-surface-light),var(--bg-surface-dark));--bg-muted:light-dark(var(--bg-muted-light),var(--bg-muted-dark));--text-primary:light-dark(var(--text-primary-light),var(--text-primary-dark));--text-secondary:light-dark(var(--text-secondary-light),var(--text-secondary-dark));--border-color:light-dark(var(--border-color-light),var(--border-color-dark));--brand:light-dark(var(--brand-light),var(--brand-dark));--brand-hover:light-dark(var(--brand-hover-light),var(--brand-hover-dark));--brand-text:light-dark(var(--brand-text-light),var(--brand-text-dark));--success-bg:light-dark(var(--success-bg-light),var(--success-bg-dark));--success-text:light-dark(var(--success-text-light),var(--success-text-dark));--warning-bg:light-dark(var(--warning-bg-light),var(--warning-bg-dark));--warning-text:light-dark(var(--warning-text-light),var(--warning-text-dark));--danger-bg:light-dark(var(--danger-bg-light),var(--danger-bg-dark));--danger-text:light-dark(var(--danger-text-light),var(--danger-text-dark));--info-bg:light-dark(var(--info-bg-light),var(--info-bg-dark));--info-text:light-dark(var(--info-text-light),var(--info-text-dark));--neutral-bg:light-dark(var(--neutral-bg-light),var(--neutral-bg-dark));--neutral-text:light-dark(var(--neutral-text-light),var(--neutral-text-dark))}color-scheme:light dark;accent-color:var(--brand)}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;background-color:var(--bg-page);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}.app-shell{min-height:100dvh;display:flex;flex-direction:column;padding-bottom:calc(68px + env(safe-area-inset-bottom, 0px))}.top-header{position:-webkit-sticky;position:sticky;top:0;z-index:30;background-color:var(--bg-surface);border-bottom:1px solid var(--border-color);padding:0 16px;height:56px;justify-content:space-between;gap:12px}.brand-link,.top-header{display:flex;align-items:center}.brand-link{gap:8px;font-weight:700;font-size:1.1rem;color:var(--text-primary);white-space:nowrap}.brand-dot{width:10px;height:10px;border-radius:50%;background-color:var(--brand);display:inline-block}.desktop-nav{display:none;align-items:center;gap:4px;flex:1 1;margin-left:16px}.nav-link{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:8px;color:var(--text-secondary);font-weight:500;font-size:.9375rem;transition:background-color .15s,color .15s}.nav-link:hover{background-color:var(--bg-muted);color:var(--text-primary)}.nav-link.active{background-color:var(--info-bg);color:var(--info-text);font-weight:600}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background-color:#ef4444;color:#ffffff;font-size:.75rem;font-weight:700;line-height:1}.header-actions{display:flex;align-items:center;gap:8px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:40;background-color:var(--bg-surface);border-top:1px solid var(--border-color);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding-bottom:env(safe-area-inset-bottom,0)}.bottom-nav-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:58px;padding:6px 1px;color:var(--text-secondary);font-size:.65rem;font-weight:500;text-align:center;white-space:nowrap;gap:2px}.bottom-nav-item.active{color:var(--brand);font-weight:700}.bottom-nav-icon{font-size:1.15rem;line-height:1}.bottom-nav-badge{position:absolute;top:4px;right:calc(50% - 18px);min-width:17px;height:17px;padding:0 4px;border-radius:999px;background-color:#ef4444;color:#ffffff;font-size:.65rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.main-container{width:100%;max-width:1080px;margin:0 auto;padding:16px;flex:1 1}@media (min-width:768px){.desktop-nav{display:flex}.bottom-nav{display:none}.app-shell{padding-bottom:24px}.main-container{padding:24px}}.page-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.page-title{margin:0;font-size:1.35rem;font-weight:700}.page-subtitle{margin:4px 0 0;font-size:.875rem;color:var(--text-secondary)}.section-title{margin:0 0 12px;font-size:1.05rem;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:8px}.card{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:12px;padding:16px;margin-bottom:16px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;margin-bottom:20px}.stat-card{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.stat-label{font-size:.8rem;color:var(--text-secondary);font-weight:500}.stat-value{font-size:1.5rem;font-weight:700;line-height:1.2}.stack-list{display:flex;flex-direction:column;gap:12px}.status-badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:.78rem;font-weight:600;white-space:nowrap}.status-PENDING_APPROVAL{background-color:var(--warning-bg);color:var(--warning-text)}.status-QUEUED,.status-RUNNING{background-color:var(--info-bg);color:var(--info-text)}.status-RUNNING{border:1px solid var(--brand)}.status-SUCCEEDED{background-color:var(--success-bg);color:var(--success-text)}.status-FAILED{background-color:var(--danger-bg);color:var(--danger-text)}.status-REJECTED{background-color:var(--neutral-bg);color:var(--neutral-text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;padding:8px 14px;border-radius:8px;border:1px solid var(--border-color);background-color:var(--bg-surface);color:var(--text-primary);font-size:.9375rem;font-weight:600;cursor:pointer;transition:opacity .15s,background-color .15s}.btn:hover:not(:disabled){background-color:var(--bg-muted)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-sm{min-height:34px;padding:5px 10px;font-size:.85rem}.btn-lg{min-height:46px;padding:10px 18px;font-size:1rem}.btn-primary{background-color:var(--brand);border-color:var(--brand);color:var(--brand-text)}.btn-primary:hover:not(:disabled){background-color:var(--brand-hover)}.btn-success{background-color:#16a34a;border-color:#16a34a;color:#ffffff}.btn-success:hover:not(:disabled){background-color:#15803d}.btn-danger{background-color:#dc2626;border-color:#dc2626;color:#ffffff}.btn-danger:hover:not(:disabled){background-color:#b91c1c}.btn-danger-outline{background-color:transparent;border-color:var(--danger-text);color:var(--danger-text)}.btn-danger-outline:hover:not(:disabled){background-color:var(--danger-bg)}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.form-label{font-size:.875rem;font-weight:600;color:var(--text-primary)}.input,.select,.textarea{width:100%;min-height:42px;padding:8px 12px;border-radius:8px;border:1px solid var(--border-color);background-color:var(--bg-surface);color:var(--text-primary);font-size:1rem;font-family:inherit}.textarea{min-height:100px;resize:vertical}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--brand);outline-offset:1px}.alert{padding:12px 14px;border-radius:8px;font-size:.9rem;margin-bottom:14px;font-weight:500}.alert-error{background-color:var(--danger-bg);color:var(--danger-text);border:1px solid var(--danger-text)}.alert-warning{background-color:var(--warning-bg);color:var(--warning-text);border:1px solid var(--warning-text)}.alert-success{background-color:var(--success-bg);color:var(--success-text);border:1px solid var(--success-text)}.approval-card{background-color:var(--bg-surface);border:1px solid var(--border-color);border-left:4px solid #f59e0b;border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px}.approval-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.approval-actions .btn{flex:1 1 130px;min-height:46px}.json-pre{background-color:var(--bg-muted);border:1px solid var(--border-color);border-radius:8px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.82rem;overflow-x:auto;margin:0;white-space:pre-wrap;word-break:break-word}dialog.modal-dialog{width:min(92vw,560px);max-height:85dvh;border:1px solid var(--border-color);border-radius:14px;background-color:var(--bg-surface);color:var(--text-primary);padding:20px;box-shadow:0 20px 35px rgba(0,0,0,.35)}dialog.modal-dialog::-webkit-backdrop{background-color:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}dialog.modal-dialog::backdrop{background-color:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.table-wrap{width:100%;overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table td,.data-table th{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border-color)}.data-table th{font-weight:600;color:var(--text-secondary);font-size:.8rem;text-transform:uppercase;letter-spacing:.02em}.data-table tr.clickable-row{cursor:pointer}.data-table tr.clickable-row:hover{background-color:var(--bg-muted)}@media (max-width:639px){.data-table thead{display:none}.data-table,.data-table tbody{display:block;width:100%}.data-table tr{display:grid;grid-template-columns:1fr auto;grid-gap:4px 8px;gap:4px 8px;padding:12px;border-bottom:1px solid var(--border-color);align-items:start}.data-table td,.data-table tr:last-child{border-bottom:none}.data-table td{padding:0}.data-table td:nth-child(2){grid-column:1;order:1}.data-table td:nth-child(3){grid-column:2;order:1;justify-self:end}.data-table td:first-child{grid-column:1/-1;order:2;color:var(--text-secondary)}.data-table td:nth-child(4){grid-column:1/-1;order:3;margin-top:2px;word-break:break-word}}.chat-box{display:flex;flex-direction:column;height:calc(100dvh - 210px);min-height:380px;background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.chat-messages{flex:1 1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.chat-bubble{max-width:85%;padding:10px 14px;border-radius:12px;font-size:.95rem;white-space:pre-wrap;word-break:break-word}.chat-bubble-user{align-self:flex-end;background-color:var(--brand);color:var(--brand-text);border-bottom-right-radius:4px}.chat-bubble-assistant{align-self:flex-start;background-color:var(--bg-muted);color:var(--text-primary);border:1px solid var(--border-color);border-bottom-left-radius:4px}.chat-input-bar{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border-color);background-color:var(--bg-surface)}