:root{--bg: #f4f5f9;--surface: #ffffff;--surface-2: #f8f9fc;--ink: #151a2d;--muted: #667089;--line: #e4e7f0;--brand: #4f46e5;--brand-ink: #ffffff;--brand-soft: #eef0ff;--good: #168a52;--good-soft: #e6f6ee;--bad: #d1344a;--bad-soft: #fdecef;--warn: #b7791f;--warn-soft: #fdf3dd;--shadow: 0 1px 2px rgba(20, 26, 45, .05), 0 4px 14px rgba(20, 26, 45, .05);--shadow-lg: 0 18px 50px rgba(20, 26, 45, .22);--radius: 14px;--radius-sm: 9px;--side: 232px;--log-bg: #0e1220;--log-ink: #d7def0;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #0d1017;--surface: #161a24;--surface-2: #1b202c;--ink: #e8ebf5;--muted: #8f9ab3;--line: #272d3c;--brand: #7c83ff;--brand-ink: #0d1017;--brand-soft: #232753;--good: #43c585;--good-soft: #14291f;--bad: #ff6b81;--bad-soft: #301820;--warn: #e5b04b;--warn-soft: #2d2412;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 18px rgba(0, 0, 0, .25);--shadow-lg: 0 18px 50px rgba(0, 0, 0, .6);--log-bg: #090c14;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}h1{font-size:26px;line-height:1.2;letter-spacing:-.02em;margin:0;font-weight:700}h2{font-size:15px;margin:0;font-weight:650;letter-spacing:-.005em}h3{font-size:15px;margin:0;font-weight:650}p{margin:0}code,pre{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:12px}code{background:var(--surface-2);border:1px solid var(--line);padding:1px 6px;border-radius:6px}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}.muted{color:var(--muted)}.grow{flex:1;min-width:0}.icon{flex:none}.stack{display:grid;gap:10px}::selection{background:color-mix(in srgb,var(--brand) 30%,transparent)}.spinner{display:inline-block;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 25%,transparent);border-top-color:currentColor;animation:spin .7s linear infinite;flex:none}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{display:block;background:linear-gradient(100deg,var(--line) 30%,color-mix(in srgb,var(--line) 40%,var(--surface)) 50%,var(--line) 70%);background-size:220% 100%;animation:shimmer 1.3s ease-in-out infinite;border-radius:6px}@keyframes shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}.topbar-progress{position:fixed;inset:0 0 auto 0;height:3px;z-index:60;opacity:0;transition:opacity .2s;pointer-events:none;overflow:hidden}.topbar-progress.on{opacity:1}.topbar-progress span{display:block;height:100%;width:40%;background:linear-gradient(90deg,transparent,var(--brand),transparent);animation:slide 1.1s ease-in-out infinite}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}button.is-busy{cursor:progress}.btn-label{display:inline-flex;align-items:center;gap:6px}.boot{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.boot .spinner{width:28px!important;height:28px!important;border-width:3px;color:var(--brand)}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2s}.skeleton,.topbar-progress span,.fade-in{animation:none}}.shell{display:grid;grid-template-columns:var(--side) 1fr;min-height:100vh}.side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:4px;padding:18px 12px;background:var(--surface);border-right:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 18px;font-weight:700;font-size:15px;letter-spacing:-.01em}.brand-mark{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6 60%,#d946ef);box-shadow:0 4px 12px #6366f173}.nav-group{display:grid;gap:2px}.nav-label{padding:12px 10px 4px;font-size:10.5px;font-weight:650;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.side a.nav{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--muted);font-weight:550;text-decoration:none;transition:background .15s,color .15s}.side a.nav:hover{background:var(--surface-2);color:var(--ink)}.side a.nav.active{background:var(--brand-soft);color:var(--brand)}.side-foot{margin-top:auto;display:flex;align-items:center;gap:10px;padding:12px 8px 0;border-top:1px solid var(--line)}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;color:var(--brand);background:var(--brand-soft);flex:none;text-transform:uppercase}.content{min-width:0}main{max-width:1180px;margin:0 auto;padding:28px 28px 80px;display:grid;gap:18px;animation:rise .25s ease-out}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.mobile-top{display:none}@media (max-width: 860px){.shell{grid-template-columns:1fr}.side{position:fixed;z-index:40;width:260px;transform:translate(-100%);transition:transform .2s;box-shadow:var(--shadow-lg)}.side.open{transform:none}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#0006}.mobile-top{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}main{padding:20px 14px 70px}}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap}.eyebrow{display:block;font-size:11px;font-weight:650;letter-spacing:.14em;color:var(--brand);margin-bottom:4px}.hero{padding:6px 0 2px}.hero-name{font-size:clamp(38px,7vw,76px);line-height:1;letter-spacing:-.035em;font-weight:800;background:linear-gradient(120deg,var(--ink) 40%,var(--brand));-webkit-background-clip:text;background-clip:text;color:transparent}.hero-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.section{margin-top:6px}.back{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:550}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:grid;gap:14px;box-shadow:var(--shadow);min-width:0}.card.flush{padding:0;overflow:hidden;gap:0}.card.flush .card-head{padding:16px 18px 12px}.card-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:16px;align-items:start}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.metric{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:grid;gap:6px;box-shadow:var(--shadow)}.metric small{color:var(--muted);font-weight:550}.metric strong{font-size:24px;letter-spacing:-.02em;font-weight:700}.bar{height:6px;background:var(--line);border-radius:99px;overflow:hidden}.bar span{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#6366f1,#a855f7);transition:width .6s cubic-bezier(.2,.8,.2,1)}.tenant{gap:12px;transition:transform .15s,box-shadow .15s,border-color .15s}.tenant:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}.tenant-top{display:flex;align-items:center;gap:12px}.tenant-logo{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:16px;color:#fff;flex:none;text-transform:uppercase}.facts{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:13px}.facts dt{color:var(--muted)}.facts dd{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions{display:flex;flex-wrap:wrap;gap:8px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}.dot.good{background:var(--good);box-shadow:0 0 0 4px var(--good-soft)}.dot.bad{background:var(--bad);box-shadow:0 0 0 4px var(--bad-soft)}.dot.warn{background:var(--warn);box-shadow:0 0 0 4px var(--warn-soft)}.dot.idle{background:var(--muted)}.row{display:flex;gap:8px;align-items:center;min-width:0}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.form-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.form-row label{flex:1;min-width:200px}label{display:grid;gap:5px;font-weight:600;font-size:12px;color:var(--ink)}label.check{display:flex;gap:8px;align-items:center;font-weight:450;font-size:13px}input,select{font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);min-width:0;transition:border-color .15s,box-shadow .15s}input:hover,select:hover{border-color:color-mix(in srgb,var(--brand) 30%,var(--line))}input:focus,select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 22%,transparent)}input[type=checkbox]{width:16px;height:16px;accent-color:var(--brand);padding:0}button,.button{font:inherit;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 15px;border:1px solid var(--brand);background:var(--brand);color:var(--brand-ink);border-radius:var(--radius-sm);cursor:pointer;text-decoration:none;white-space:nowrap;transition:transform .08s,filter .15s,background .15s,box-shadow .15s}button:hover:not(:disabled),.button:hover{filter:brightness(1.08);text-decoration:none;box-shadow:0 4px 14px color-mix(in srgb,var(--brand) 35%,transparent)}button:active:not(:disabled){transform:translateY(1px)}button.secondary,.button.secondary{background:var(--surface);color:var(--ink);border-color:var(--line)}button.secondary:hover:not(:disabled),.button.secondary:hover{background:var(--surface-2);box-shadow:none;filter:none;border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}button.danger{background:var(--bad);border-color:var(--bad);color:#fff}button.danger:hover:not(:disabled){box-shadow:0 4px 14px color-mix(in srgb,var(--bad) 35%,transparent)}button.link{background:none;border:0;color:var(--brand);padding:2px 6px;box-shadow:none;font-weight:550}button.link:hover:not(:disabled){background:var(--brand-soft);box-shadow:none;filter:none}button.sm{padding:5px 11px;font-size:13px}button:focus-visible,.button:focus-visible,a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}button:disabled{opacity:.55;cursor:not-allowed}button.is-busy:disabled{opacity:.85}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 10px;border-radius:99px;font-size:11.5px;font-weight:650;background:var(--surface-2);border:1px solid var(--line);color:var(--muted);white-space:nowrap}.pill.good{color:var(--good);background:var(--good-soft);border-color:transparent}.pill.bad{color:var(--bad);background:var(--bad-soft);border-color:transparent}.pill.warn{color:var(--warn);background:var(--warn-soft);border-color:transparent}.notice{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;border-radius:var(--radius-sm);border:1px solid transparent}.notice.good{background:var(--good-soft);color:var(--good)}.notice.bad{background:var(--bad-soft);color:var(--bad)}.notice.warn{background:var(--warn-soft);color:var(--warn)}.notice ul{margin:6px 0 0 18px;padding:0}.notice p{margin-top:6px}.notice .icon{margin-top:3px}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:650;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--surface-2)}.table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}.table tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--surface-2)}.table td.end,.end{text-align:right}.table pre{white-space:pre-wrap;margin:6px 0 0}.table details summary{cursor:pointer}.scroll-x{overflow-x:auto}.joblog{display:grid;gap:10px}.joblog pre,.logbox{margin:0;background:var(--log-bg);color:var(--log-ink);padding:14px;border-radius:var(--radius-sm);max-height:440px;min-height:90px;overflow:auto;white-space:pre-wrap;word-break:break-word;line-height:1.6;border:1px solid rgba(255,255,255,.06)}.empty{display:grid;justify-items:center;gap:8px;padding:34px 16px;text-align:center}.empty-icon{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;color:var(--brand);background:var(--brand-soft)}.toasts{position:fixed;right:18px;bottom:18px;z-index:80;display:grid;gap:10px;width:min(380px,calc(100vw - 36px))}.toast{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lg);animation:rise .2s ease-out}.toast.good .icon:first-child{color:var(--good)}.toast.bad .icon:first-child{color:var(--bad)}.toast.bad{border-color:var(--bad)}.toast span{flex:1;min-width:0;word-break:break-word}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#080a148c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:70;padding:16px;animation:fade .15s ease-out}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px;width:min(500px,100%);display:grid;gap:14px;max-height:92vh;overflow:auto;box-shadow:var(--shadow-lg);animation:rise .2s ease-out}.login{min-height:100vh;display:grid;place-items:center;padding:16px;background:radial-gradient(900px 500px at 15% 10%,color-mix(in srgb,var(--brand) 18%,transparent),transparent 60%),radial-gradient(700px 500px at 90% 90%,color-mix(in srgb,#d946ef 14%,transparent),transparent 60%),var(--bg)}.login .card{width:min(400px,100%);padding:28px;gap:16px}.login h1{font-size:22px}.login-brand{display:flex;align-items:center;gap:10px;font-weight:700}.user-code{font-size:30px;letter-spacing:.18em;font-weight:800;color:var(--brand)}.qr{background:#fff;padding:12px;border-radius:12px;width:220px;border:1px solid var(--line)}.qr svg{width:100%;height:auto}.codes{columns:2;list-style:none;padding:0;display:block}.codes li{padding:3px 0}.spark{width:100%;height:34px;display:block}.spark-empty{display:block;height:34px}.spark-line{fill:none;stroke:var(--brand);stroke-width:1.6;stroke-linejoin:round}.spark-fill{fill:color-mix(in srgb,var(--brand) 16%,transparent);stroke:none}.live{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}.live .dot{width:7px;height:7px;box-shadow:none;animation:pulse 2s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(520px,100vw);z-index:50;background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);padding:16px;display:flex;flex-direction:column;gap:12px;overflow:auto;animation:slide-in .22s ease-out}@keyframes slide-in{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.drawer-head{display:flex;justify-content:space-between;align-items:center}.drawer-head strong{display:inline-flex;align-items:center;gap:8px;font-size:15px}.drawer-empty{padding:20px 4px}.job-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.job-item{width:100%;display:flex;align-items:center;gap:10px;background:var(--surface-2);color:var(--ink);border:1px solid var(--line);font-weight:450;text-align:left;box-shadow:none!important}.job-item.on{border-color:var(--brand);background:var(--brand-soft)}.job-item:hover:not(:disabled){filter:none}.drawer .joblog pre{max-height:none;flex:1;min-height:260px}.drawer .joblog{flex:1;min-height:0}.side a.nav .badge,.side button.nav .badge{margin-left:auto}.side button.nav{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:var(--radius-sm);color:var(--muted);font-weight:550;background:transparent;border:0;box-shadow:none;justify-content:flex-start}.side button.nav:hover:not(:disabled){background:var(--surface-2);color:var(--ink);filter:none;box-shadow:none}.side button.nav.active{background:var(--brand-soft);color:var(--brand)}.badge{min-width:20px;height:20px;padding:0 6px;border-radius:99px;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:11px;font-weight:700;background:var(--warn-soft);color:var(--warn)}@media (min-width: 1500px){body.drawer-open main{margin-right:520px}}.more{position:relative}.more>summary{list-style:none;cursor:pointer}.more>summary::-webkit-details-marker{display:none}.more-menu{position:absolute;right:0;bottom:calc(100% + 6px);z-index:20;display:grid;gap:6px;padding:8px;min-width:230px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg)}.more-menu button{text-align:left}
