:root{--bg: #0f1115;--panel: #171a21;--border: #262b36;--text: #e7e9ee;--muted: #8a90a0;--ok: #35c46a;--warn: #e7b23f;--fail: #e5484d;--accent: #5b8def;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}a:visited{color:var(--accent)}a:hover{text-decoration:underline}.app{padding:0 24px 48px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--border);margin-bottom:24px;flex-wrap:wrap;gap:10px 0}.topbar h1{font-size:18px;margin:0}.topbar nav{display:flex;align-items:center;flex-wrap:wrap}.topbar nav a{margin-left:20px;color:var(--muted);text-decoration:none;font-size:14px}.topbar nav a.active,.topbar nav a:hover{color:var(--text)}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:16px 20px;margin-bottom:20px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:500}.fixed-table{table-layout:fixed}.fixed-table td,.fixed-table th{overflow-wrap:break-word}.job-continuation td.repeat-cell{visibility:hidden}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}.badge.ok{background:#35c46a26;color:var(--ok)}.badge.warn{background:#e7b23f26;color:var(--warn)}.badge.fail{background:#e5484d26;color:var(--fail)}.badge.running{background:#5b8def26;color:var(--accent)}.badge.running:before{content:"";display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:var(--accent);animation:badge-pulse 1.4s ease-in-out infinite}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.35}}.badge.info{background:#ffffff0f;color:var(--muted)}.muted{color:var(--muted)}.inline{display:flex;gap:10px;flex-wrap:wrap;align-items:center}form.inline{align-items:flex-end;margin-bottom:16px}form.inline label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:4px}input,select{background:#10131a;border:1px solid var(--border);color:var(--text);padding:6px 8px;border-radius:6px;font-size:14px}button{background:var(--accent);border:none;color:#fff;padding:7px 14px;border-radius:6px;cursor:pointer;font-size:14px}button.danger{background:var(--fail)}button:hover{opacity:.9}button:disabled{background:var(--border);color:var(--muted);cursor:not-allowed;opacity:1}button:disabled:hover{opacity:1}.storage-bar{height:10px;border-radius:6px;background:#10131a;overflow:hidden;margin-top:8px}.storage-bar-fill{height:100%;background:var(--accent)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-form{width:320px;display:flex;flex-direction:column;gap:14px}.login-form h2{margin:0 0 4px;font-size:18px}.login-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.login-form input{padding:8px 10px}.error{color:var(--fail);font-size:13px;margin:0}.account-menu{position:relative;display:inline-block;vertical-align:middle;margin-left:20px}.avatar-btn{width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;border:none;font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.account-dropdown{position:absolute;right:0;top:calc(100% + 8px);background:var(--panel);border:1px solid var(--border);border-radius:8px;min-width:210px;box-shadow:0 8px 24px #0006;overflow:hidden;z-index:100}.account-dropdown-header{padding:10px 14px;border-bottom:1px solid var(--border)}.account-dropdown-header strong{font-size:13px}.account-dropdown-item{display:block;width:100%;text-align:left;padding:10px 14px;background:none;border:none;border-radius:0;color:var(--text);cursor:pointer;font-size:13px}.account-dropdown-item:hover{background:#ffffff0f}.account-dropdown-item.danger{color:var(--fail);background:none}.account-dropdown-item.danger:hover{background:#e5484d1f}.row-actions button{min-width:32px;padding:6px 8px;text-align:center;font-size:13px}.menu{position:relative;display:inline-block}.menu-trigger{background:none;border:1px solid var(--border);color:var(--text);padding:6px 10px;line-height:1}.menu-trigger:hover{opacity:1;background:#ffffff0f}.menu-dropdown{position:absolute;right:0;top:calc(100% + 6px);background:var(--panel);border:1px solid var(--border);border-radius:8px;min-width:180px;box-shadow:0 8px 24px #0006;overflow:hidden;z-index:100}.menu-item{display:block;width:100%;text-align:left;padding:9px 14px;background:none;border:none;border-radius:0;color:var(--text);cursor:pointer;font-size:13px}.menu-item:hover{opacity:1;background:#ffffff0f}.menu-item.danger{color:var(--fail);background:none}.menu-item.danger:hover{background:#e5484d1f}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000}.modal{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:20px;max-width:900px;width:100%;max-height:85vh;overflow-y:auto}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.modal-header h2{margin:0;font-size:16px}.modal-close{background:none;border:none;color:var(--muted);font-size:22px;line-height:1;cursor:pointer;padding:0 4px}.modal-close:hover{color:var(--text);opacity:1}.modal-body form{display:flex;flex-direction:row;flex-wrap:wrap;gap:12px 16px;align-items:flex-start}.modal-body form label{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:4px;flex:1 1 220px}.modal-body form .full-width{flex-basis:100%}.modal-body form .inline{margin-bottom:0;flex-basis:100%}.modal-body form .stack{display:flex;flex-direction:column;gap:12px}.modal-body form .stack>label{flex:0 0 auto}.markdown-doc{line-height:1.6;font-size:14px}.markdown-doc h1,.markdown-doc h2,.markdown-doc h3{margin-top:28px;margin-bottom:10px;border-bottom:1px solid var(--border);padding-bottom:6px}.markdown-doc h1:first-child,.markdown-doc h2:first-child{margin-top:0}.markdown-doc p{margin:12px 0}.markdown-doc ul,.markdown-doc ol{margin:12px 0;padding-left:24px}.markdown-doc li{margin:4px 0}.markdown-doc a{color:var(--accent)}.markdown-doc code{background:#10131a;border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:13px}.markdown-doc pre{background:#10131a;border:1px solid var(--border);border-radius:8px;padding:12px 14px;overflow-x:auto}.markdown-doc pre code{border:none;padding:0;background:none}.markdown-doc blockquote{margin:12px 0;padding:4px 14px;border-left:3px solid var(--accent);color:var(--muted)}.markdown-doc table{margin:12px 0}.markdown-doc hr{border:none;border-top:1px solid var(--border);margin:20px 0}@media (max-width: 720px){.app{padding:0 12px 32px}.topbar{padding:14px 0;margin-bottom:16px}.topbar nav a{margin-left:0;margin-right:16px}.account-menu{margin-left:auto}.panel{padding:12px 14px}h1{font-size:17px}h2{font-size:16px}.modal-body form label,form.inline label{flex-basis:100%!important}form.inline{flex-direction:column;align-items:stretch}.modal{padding:14px;max-height:90vh}.login-form{width:100%;max-width:320px}.grid{grid-template-columns:1fr}input,select,textarea{max-width:100%;box-sizing:border-box}table.responsive-table{table-layout:auto}table.responsive-table colgroup{display:none}table.responsive-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}table.responsive-table,table.responsive-table tbody,table.responsive-table tr{display:block;width:100%}table.responsive-table tr{border:1px solid var(--border);border-radius:8px;margin-bottom:10px;padding:4px 10px}table.responsive-table td{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:4px 10px;border-bottom:1px solid var(--border);padding:8px 0;text-align:right;min-height:20px;white-space:normal}table.responsive-table td:last-child{border-bottom:none}table.responsive-table td[style*=nowrap]{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;max-width:none!important}.job-continuation td.repeat-cell{visibility:visible}table.responsive-table td[data-label]:before{content:attr(data-label);margin-right:auto;flex:0 1 auto;max-width:45%;text-align:left;font-weight:600;color:var(--muted);white-space:normal}table.responsive-table td:not([data-label]){justify-content:flex-start;text-align:left}table.responsive-table td.row-actions-cell{justify-content:flex-start;text-align:left}table.responsive-table td.row-actions-cell:before{content:none}}
