:root{color-scheme:dark;--bg: #0a0d18;--card: #131a2b;--raised: #1a2237;--border: #242d45;--grid: #1f2740;--text: #e7ebf5;--muted: #8f9bb8;--accent: #7aa2ff;--accent-2: #a78bfa;--cyan: #22d3ee;--ok: #34d399;--warn: #fbbf24;--crit: #fb7185;--off: #8f9bb8;--ok-bg: color-mix(in srgb, var(--ok) 12%, transparent);--warn-bg: color-mix(in srgb, var(--warn) 12%, transparent);--crit-bg: color-mix(in srgb, var(--crit) 13%, transparent);--off-bg: color-mix(in srgb, var(--off) 12%, transparent);--on-fill: #0a0d18;--grad-accent: linear-gradient(135deg, var(--accent), var(--accent-2));--glow: 0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent), 0 8px 28px -8px color-mix(in srgb, var(--accent) 45%, transparent);--halo: .1;--sheen: rgba(255, 255, 255, .03);--tooltip-shadow: rgba(0, 0, 0, .6)}:root[data-theme=light]{color-scheme:light;--bg: #f5f7fc;--card: #fff;--raised: #eef2fa;--border: #dde3ef;--grid: #e6ebf4;--text: #121829;--muted: #5b6680;--accent: #3b5bdb;--accent-2: #7c3aed;--cyan: #0e7490;--ok: #047857;--warn: #a3480a;--crit: #be123c;--off: #5b6680;--on-fill: #fff;--halo: .07;--sheen: transparent;--tooltip-shadow: rgba(18, 24, 41, .15)}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;min-height:100vh;color:var(--text);font:14px/1.5 system-ui,-apple-system,sans-serif;background:radial-gradient(900px 500px at 0% -10%,color-mix(in srgb,var(--accent) calc(var(--halo) * 100%),transparent),transparent 60%),radial-gradient(700px 450px at 100% -5%,color-mix(in srgb,var(--accent-2) calc(var(--halo) * 90%),transparent),transparent 60%),var(--bg);background-attachment:fixed}::selection{background:color-mix(in srgb,var(--accent) 35%,transparent)}*{scrollbar-color:var(--border) transparent}h1{font-size:20px;margin:0;letter-spacing:-.01em}header h1,.login h1{background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700;width:fit-content}h2{font-size:15px;margin:0 0 4px}.page{max-width:1280px;margin:0 auto;padding:24px 16px 48px;display:grid;gap:16px}header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:inset 0 1px 0 var(--sheen)}.muted{color:var(--muted);margin:2px 0 8px}.small{font-size:12px}.error{color:var(--crit)}.mono{font-family:ui-monospace,Menlo,monospace;font-size:12px}.scroll{overflow-x:auto}strong{color:var(--text)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border);white-space:nowrap}td.small{white-space:normal;max-width:280px}th{font-size:11px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}tbody tr{transition:background .12s}tbody tr:hover td{background:var(--raised)}.num{text-align:right;font-variant-numeric:tabular-nums}tr.group td{background:var(--raised);font-weight:600}.badge{display:inline-block;padding:1px 9px;border-radius:999px;font-size:12px;font-weight:600;box-shadow:inset 0 0 0 1px currentColor;box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 35%,transparent)}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.crit{background:var(--crit-bg);color:var(--crit)}.badge.off{background:var(--off-bg);color:var(--off)}.gauge-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.big{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.big.ok{color:var(--ok)}.big.warn{color:var(--warn)}.big.crit{color:var(--crit)}.bar{height:10px;background:var(--bg);border:1px solid var(--border);border-radius:999px;overflow:hidden;margin:8px 0}.fill{height:100%;border-radius:999px}.fill.ok{background:linear-gradient(90deg,#10b981,var(--ok));box-shadow:0 0 12px color-mix(in srgb,var(--ok) 50%,transparent)}.fill.warn{background:linear-gradient(90deg,#f59e0b,var(--warn));box-shadow:0 0 12px color-mix(in srgb,var(--warn) 50%,transparent)}.fill.crit{background:linear-gradient(90deg,#f43f5e,var(--crit));box-shadow:0 0 12px color-mix(in srgb,var(--crit) 55%,transparent)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:8px 0 12px}.stat{background:var(--raised);border:1px solid var(--border);border-radius:10px;padding:10px 12px;position:relative;overflow:hidden}.stat:before{content:"";position:absolute;inset:0 0 auto;height:2px;background:var(--grad-accent);opacity:.7}.stat:has(.big.ok):before{background:var(--ok);opacity:1}.stat:has(.big.warn):before{background:var(--warn);opacity:1}.stat:has(.big.crit):before{background:var(--crit);opacity:1}button{background:var(--grad-accent);color:var(--on-fill);border:0;border-radius:8px;padding:8px 14px;font:inherit;font-weight:600;cursor:pointer;transition:filter .15s,box-shadow .15s,transform .05s}button:hover:not(:disabled){filter:brightness(1.08);box-shadow:var(--glow)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:default}button.link{background:none;color:var(--accent);padding:0 4px;font-weight:500}button.link:hover:not(:disabled){box-shadow:none;text-decoration:underline}button.chip{background:var(--card);color:var(--text);border:1px solid var(--border);padding:4px 12px;font-weight:500}button.chip:hover:not(:disabled){border-color:var(--accent);box-shadow:none}button.chip.on{background:var(--grad-accent);color:var(--on-fill);border-color:transparent;font-weight:600}button.secondary{background:var(--raised);color:var(--text);border:1px solid var(--border);font-weight:500}button.secondary:hover:not(:disabled){border-color:var(--accent);box-shadow:none}button.danger{background:linear-gradient(135deg,#f43f5e,var(--crit))}:root[data-theme=light] button.danger{background:var(--crit)}button.danger:hover:not(:disabled){box-shadow:0 8px 28px -8px color-mix(in srgb,var(--crit) 55%,transparent)}button.small-btn{padding:3px 10px;font-size:12px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login form{width:100%;max-width:360px;display:grid;gap:12px;box-shadow:var(--glow)}label{display:grid;gap:4px;font-size:13px;color:var(--muted)}input,select,textarea{border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font:inherit;transition:border-color .15s,box-shadow .15s}input{padding:8px 10px}select{padding:6px 8px}textarea{width:100%;min-height:140px;padding:8px 10px;font:13px/1.4 ui-monospace,Menlo,monospace}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}input[type=checkbox]{accent-color:var(--accent)}input.narrow,select.narrow{width:90px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);flex-wrap:wrap}.tabs a{padding:8px 14px;color:var(--muted);text-decoration:none;margin-bottom:-1px;position:relative;transition:color .15s}.tabs a:hover{color:var(--text)}.tabs a.on{color:var(--text);font-weight:600}.tabs a.on:after{content:"";position:absolute;left:8px;right:8px;bottom:0;height:2px;border-radius:2px;background:var(--grad-accent);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 70%,transparent)}.toolbar{display:flex;gap:8px;align-items:center}.cron-block h3{font-size:13px;margin:12px 0 0}code{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--cyan)}.form-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.pill{display:inline-block;padding:1px 8px;border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);font-size:12px;margin:0 4px 2px 0}.check{display:inline-flex;grid-template-columns:none;align-items:center;gap:6px;margin-right:12px;color:var(--text)}.check input{width:auto}tr.expand td{background:var(--bg);white-space:normal}td.wrap{white-space:normal}.recharts-default-tooltip{background:var(--raised)!important;border:1px solid var(--border)!important;border-radius:8px;color:var(--text);box-shadow:0 10px 30px -10px var(--tooltip-shadow)}.recharts-cartesian-axis-tick-value{fill:var(--muted)}
