:root{--of-ink-900:#0c0c1c;--of-ink-800:#131926;--of-ink-700:#1d2230;--of-black:#000;--of-gold-400:#decc9c;--of-gold-500:#e9b634;--of-gold-600:#c6961b;--of-gold-700:#8a6810;--of-gold-muted:#766d55;--of-white:#fff;--of-grey-100:#f5f5f5;--of-grey-150:#f2f5f9;--of-grey-200:#eaedf0;--of-grey-300:#d2d3e9;--of-text-600:#62626b;--of-text-500:#6a6a7c;--of-on-dark-400:#9899b6;--of-on-dark-500:#8f90a1;--of-success:#2e9e6b;--of-warning:#e08a1e;--of-danger:#d64545;--of-info:#3b82c4;--bg:var(--of-grey-150);--surface:var(--of-white);--text:var(--of-ink-900);--muted:var(--of-text-600);--faint:var(--of-text-500);--border:#e6e9ef;--border-strong:var(--of-ink-900);--font-h:"Syne","Poppins",sans-serif;--font-b:"Poppins",system-ui,sans-serif;--shadow-flat:0 0 8px 0 rgba(103,103,117,0.03);--shadow-card:0 13px 16px -12px rgba(112,114,150,0.25);--r-pill:24px;--r-card:12px;--r-box:16px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font:400 15px/1.5 var(--font-b);-webkit-font-smoothing:antialiased;min-height:100vh}a{color:inherit}h1,h2,h3,h4{font-family:var(--font-h);font-weight:400;margin:0;text-wrap:balance}h1{font-size:32px;line-height:1.2;letter-spacing:-.5px}h2{font-size:24px;line-height:1.25}h3{font-size:18px;line-height:1.3}p{margin:0}.mono,code{font:500 13px/1.5 ui-monospace,Cascadia Mono,Consolas,monospace}.muted{color:var(--muted)}.faint{color:var(--faint);font-size:13px}.eyebrow{font:500 12px/16px var(--font-b);letter-spacing:1px;text-transform:uppercase;color:var(--of-gold-600)}.tnum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.of-topbar{background:var(--of-black);color:var(--of-white);font-size:12px;text-align:center;padding:6px 12px}.of-header{background:var(--of-ink-900);color:var(--of-white)}.of-header-inner{max-width:1120px;margin:0 auto;padding:0 20px;height:64px;display:flex;align-items:center;gap:28px}.of-logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--of-white);font:600 22px/1 var(--font-b);letter-spacing:-.3px}.of-logo svg{width:28px;height:28px}.of-logo small{font:500 11px/1 var(--font-b);letter-spacing:1px;text-transform:uppercase;color:var(--of-gold-500);margin-left:4px;padding-left:10px;border-left:1px solid rgba(255,255,255,.2)}.of-nav{display:flex;gap:22px;font-size:14px}.of-nav a{color:var(--of-on-dark-500);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}.of-nav a:hover{color:var(--of-white)}.of-nav a[aria-current=page]{color:var(--of-white);border-bottom-color:var(--of-gold-500)}.of-header-right{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:14px;color:var(--of-on-dark-400)}.of-header-right strong{color:var(--of-white);font-weight:500}.of-main{max-width:1120px;margin:0 auto;padding:32px 20px 64px;display:flex;flex-direction:column;gap:24px}.of-main.narrow{max-width:480px;padding-top:56px}.of-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.of-page-head .sub{color:var(--muted);margin-top:6px;max-width:60ch}.of-actions{display:flex;gap:10px;flex-wrap:wrap}.btn,.of-actions{align-items:center}.btn{display:inline-flex;justify-content:center;gap:8px;height:42px;padding:0 20px;border-radius:var(--r-pill);border:1px solid transparent;font:500 14px/1 var(--font-b);text-decoration:none;cursor:pointer;transition:all .2s ease;white-space:nowrap;background:transparent;color:var(--text)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--of-gold-500)}.btn-primary{background:var(--of-gold-500);color:var(--of-ink-900)}.btn-primary:hover:not(:disabled){background:var(--of-grey-100);border-color:var(--of-ink-900)}.btn-dark{background:var(--of-ink-900);color:var(--of-white)}.btn-dark:hover:not(:disabled){background:var(--of-ink-700)}.btn-outline{border-color:var(--of-ink-900);color:var(--of-ink-900);background:var(--surface)}.btn-outline:hover:not(:disabled){background:var(--of-grey-100)}.btn-ghost{color:var(--muted)}.btn-ghost:hover:not(:disabled){background:var(--of-grey-200);color:var(--text)}.btn-danger{border-color:var(--of-danger);color:var(--of-danger);background:var(--surface)}.btn-danger:hover:not(:disabled){background:rgba(214,69,69,.08)}.btn-sm{height:34px;padding:0 14px;font-size:13px}.btn-lg{height:48px;padding:0 24px;font-size:16px}.btn.on-dark{border-color:var(--of-white);color:var(--of-white);background:transparent}.btn.on-dark:hover:not(:disabled){background:rgba(255,255,255,.08)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:500;color:var(--text)}.input,select.input,textarea.input{height:44px;padding:0 14px;border-radius:var(--r-card);border:1px solid var(--of-grey-300);background:var(--surface);font:400 15px/1.5 var(--font-b);color:var(--text);width:100%}textarea.input{height:auto;padding:10px 14px}.input::placeholder{color:var(--of-text-500)}.input:focus{outline:none;border-color:var(--of-gold-500);box-shadow:0 0 0 3px rgba(233,182,52,.25)}.input[aria-invalid=true]{border-color:var(--of-danger)}.hint{font-size:12px;color:var(--muted)}.hint.error{color:var(--of-danger)}.input-group{display:flex;align-items:stretch}.input-group .input{border-radius:var(--r-card) 0 0 var(--r-card)}.input-group .addon{display:flex;align-items:center;padding:0 14px;border:1px solid var(--of-grey-300);border-left:0;border-radius:0 var(--r-card) var(--r-card) 0;background:var(--of-grey-150);color:var(--muted);font-size:14px;white-space:nowrap}form.stack{display:flex;flex-direction:column;gap:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}@media (max-width:640px){.form-row{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);box-shadow:var(--shadow-flat);padding:22px 24px;display:flex;flex-direction:column;gap:14px}.card.emphasis{border-color:var(--border-strong)}.card.dark{background:var(--of-ink-900);color:var(--of-white);border-color:var(--of-ink-900);background-image:linear-gradient(92.16deg,#0c0c1c,#1d2230)}.card.dark .muted{color:var(--of-on-dark-400)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-head h3{font-size:18px}.grid{display:grid;grid-gap:16px;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:960px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.stat{display:flex;flex-direction:column;gap:4px}.stat .label{font-size:12px;letter-spacing:.6px;text-transform:uppercase;color:var(--faint)}.stat .value{font:400 22px/1.2 var(--font-h);color:var(--text)}.stat .value.small{font:500 15px/1.4 var(--font-b)}.kv{display:grid;grid-template-columns:160px 1fr;grid-gap:8px 16px;gap:8px 16px;font-size:14px}.kv dt{color:var(--muted)}.kv dd{margin:0;word-break:break-word}.divider{border:0;border-top:1px solid var(--border);margin:4px 0}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--r-pill);font:500 11px/16px var(--font-b);letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-success{color:var(--of-success);background:rgba(46,158,107,.12)}.badge-warning{color:var(--of-warning);background:rgba(224,138,30,.12)}.badge-danger{color:var(--of-danger);background:rgba(214,69,69,.12)}.badge-info{color:var(--of-info);background:rgba(59,130,196,.12)}.badge-neutral{color:var(--of-text-600);background:var(--of-grey-200)}.alert{padding:12px 16px;border-radius:var(--r-card);font-size:14px;border:1px solid transparent}.alert-error{background:rgba(214,69,69,.08);border-color:rgba(214,69,69,.3);color:#8f2626}.alert-success{background:rgba(46,158,107,.08);border-color:rgba(46,158,107,.3);color:#1c6b46}.alert-warning{background:rgba(224,138,30,.1);border-color:rgba(224,138,30,.35);color:#7a4a0d}.alert-info{background:rgba(59,130,196,.08);border-color:rgba(59,130,196,.3);color:#1f4f7d}.table-wrap{overflow-x:auto}table.table{width:100%;border-collapse:collapse;font-size:14px}.table td,.table th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.table th{font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--faint);font-weight:500}.table tr:last-child td{border-bottom:0}.table a{text-decoration:none;color:var(--text);font-weight:500}.table a:hover{text-decoration:underline}.steps{display:flex;flex-direction:column;gap:6px}.step{display:flex;gap:10px;font-size:14px}.step,.step .dot{align-items:center}.step .dot{width:18px;height:18px;border-radius:50%;display:inline-flex;justify-content:center;font-size:11px;flex:none;border:1px solid var(--of-grey-300);color:var(--faint)}.step.done .dot{background:var(--of-success);border-color:var(--of-success);color:#fff}.step.running .dot{border-color:var(--of-gold-500);color:var(--of-gold-600);animation:pulse 1.2s infinite}.step.failed .dot{background:var(--of-danger);border-color:var(--of-danger);color:#fff}@keyframes pulse{0%,to{box-shadow:0 0 0 0 rgba(233,182,52,.5)}50%{box-shadow:0 0 0 5px rgba(233,182,52,0)}}.log{background:var(--of-ink-900);color:#d5d7e6;border-radius:var(--r-card);padding:14px 16px;max-height:360px;overflow:auto;font:400 12.5px/1.55 ui-monospace,Cascadia Mono,Consolas,monospace}.log .ln{white-space:pre-wrap;word-break:break-word}.log .ln.warn{color:var(--of-gold-400)}.log .ln.error{color:#ff8a8a}.log .ts{color:var(--of-on-dark-500);margin-right:8px}.progress{height:6px;border-radius:6px;background:var(--of-grey-200);overflow:hidden}.progress>span{display:block;height:100%;background:var(--of-gold-500);transition:width .4s ease}.empty{text-align:center;padding:48px 20px;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--muted)}.link{color:var(--of-gold-700);text-decoration:none;font-weight:500}.link:hover{text-decoration:underline}.spinner{width:16px;height:16px;border:2px solid rgba(0,0,0,.15);border-top-color:currentcolor;border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}.center{display:flex;align-items:center;justify-content:center;min-height:40vh;color:var(--muted);gap:10px}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}