:root{--bg:#ffffff;--surface:#ffffff;--surface-warm:#fdeadf;--fg:#0d0f13;--fg-2:#33383f;--muted:#4a5058;--meta:#9a3412;--border:#c3c7cd;--border-soft:#e1e3e7;--accent:#c2410c;--accent-on:#ffffff;--accent-hover:color-mix(in oklab,var(--accent),black 8%);--accent-active:color-mix(in oklab,var(--accent),black 14%);--success:#15803d;--success-on:#ffffff;--warn:#b45309;--warn-on:#ffffff;--danger:#b91c1c;--danger-on:#ffffff;--font-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Noto Sans SC",system-ui,sans-serif;--font-body:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Noto Sans SC",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-lg:18px;--text-xl:24px;--text-2xl:32px;--text-3xl:48px;--text-4xl:64px;--leading-body:1.5;--leading-tight:1.12;--tracking-display:-0.015em;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;--section-y-desktop:96px;--section-y-tablet:68px;--section-y-phone:48px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-pill:9999px;--elev-flat:none;--elev-ring:0 0 0 1px var(--border);--elev-raised:0 3px 8px rgba(13,15,19,0.14);--focus-ring:0 0 0 3px rgba(194,65,12,0.3);--motion-fast:150ms;--motion-base:250ms;--ease-standard:cubic-bezier(0.2,0,0,1);--container-max:1200px;--container-gutter-desktop:36px;--container-gutter-tablet:24px;--container-gutter-phone:16px;--rail-bg:#1c1917;--rail-border:#2e2a26;--rail-fg:#faf9f7;--rail-nav:#d6d3d1;--rail-active-fg:#fdba74;--rail-muted:#a8a29e;--rail-group:#78716c;--s1:var(--space-1);--s2:var(--space-2);--s3:var(--space-3);--s4:var(--space-4);--s5:var(--space-6);--s6:var(--space-8);--s7:var(--space-12);--s8:calc(var(--space-12) + var(--space-4));--r-sm:var(--radius-sm);--r-md:var(--radius-md);--r-lg:var(--radius-lg);--r-pill:var(--radius-pill);--text-md:var(--text-base);--leading:var(--leading-body);--t-base:var(--motion-base);--t-fast:var(--motion-fast);--ease:var(--ease-standard);--container:var(--container-max);--nav-w:248px;--ops-nav-w:208px;--topbar-h:64px;--shadow-1:0 1px 2px rgba(60,64,67,0.08);--shadow-2:var(--elev-raised);--shadow-3:0 8px 24px rgba(60,64,67,0.24);--surface-2:color-mix(in oklab,var(--fg) 5%,var(--surface));--surface-3:color-mix(in oklab,var(--fg) 10%,var(--surface));--border-strong:color-mix(in oklab,var(--border) 70%,var(--fg));--accent-soft:color-mix(in oklab,var(--accent) 8%,var(--surface));--ink:color-mix(in oklab,var(--fg) 96%,black);--ink-fg:var(--surface);--ink-muted:color-mix(in oklab,var(--surface) 72%,var(--fg));--info:var(--accent);--ok:var(--success);--err:var(--danger);--warn-strong:var(--warn);--info-strong:var(--accent);--ok-strong:var(--success);--err-strong:var(--danger);--st-draft:var(--muted);--st-review:var(--accent);--st-fix:var(--warn-strong);--st-approved:var(--success);--st-deploying:var(--accent);--st-deployed:var(--success);--st-failed:var(--danger);--info-soft:color-mix(in oklab,var(--accent) 10%,var(--surface));--ok-soft:color-mix(in oklab,var(--success) 10%,var(--surface));--warn-soft:color-mix(in oklab,var(--warn-strong) 12%,var(--surface));--err-soft:color-mix(in oklab,var(--danger) 8%,var(--surface));--st-draft-soft:color-mix(in oklab,var(--muted) 12%,var(--surface));--st-review-soft:var(--info-soft);--st-fix-soft:var(--warn-soft);--st-approved-soft:var(--ok-soft);--st-deploying-soft:var(--info-soft);--st-deployed-soft:var(--ok-soft);--st-failed-soft:var(--err-soft)}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--leading-body);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased}body,h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:var(--font-display)}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}button{font-family:inherit}::selection{background:color-mix(in oklab,var(--accent) 22%,var(--surface))}.mono{font-family:var(--font-mono);font-size:.92em;letter-spacing:-.01em}.muted{color:var(--muted)}.fg2{color:var(--fg-2)}.nowrap{white-space:nowrap}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--r-sm)}input:focus-visible,select:focus-visible,textarea:focus-visible{border-radius:var(--r-sm)}.shell{display:flex;min-height:100vh}.sidebar{width:var(--nav-w);flex:0 0 var(--nav-w);background:var(--surface);border-right:1px solid var(--border-soft);color:var(--fg);display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh}.sidebar-brand{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-4);border-bottom:1px solid var(--border-soft)}.brand-name{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;letter-spacing:.01em}.sidebar-nav{padding:var(--space-3) var(--space-2);display:flex;flex-direction:column;gap:2px;flex:1 1;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:var(--space-3);min-height:44px;padding:0 var(--space-4);border-radius:var(--r-pill);color:var(--fg-2);font-size:var(--text-sm);font-weight:500;cursor:pointer;border:none;background:none;text-align:left;transition:background var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.nav-item:hover{background:color-mix(in oklab,var(--surface-warm) 55%,var(--surface));color:var(--fg);text-decoration:none}.nav-item.active{background:var(--surface-warm);color:var(--info-strong);font-weight:600}.nav-item .nav-ic{flex:0 0 20px;display:inline-flex}.nav-group-label{font-size:var(--text-xs);color:var(--muted);padding:var(--space-4) var(--space-4) var(--space-1);letter-spacing:.08em}.sidebar-foot{padding:var(--space-3) var(--space-3);border-top:1px solid var(--border-soft)}.sidebar-user{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:44px;padding:var(--space-2) var(--space-3);background:none;border:none;border-radius:var(--r-md);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background var(--motion-fast) var(--ease-standard)}.sidebar-user:hover{background:color-mix(in oklab,var(--surface-warm) 55%,var(--surface))}.sidebar-user:focus-visible{outline:none;box-shadow:var(--focus-ring)}.su-meta{display:flex;flex-direction:column;min-width:0;flex:1 1}.su-name{font-size:var(--text-sm);font-weight:600;color:var(--fg)}.su-name,.su-role{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.su-role{font-size:var(--text-xs);color:var(--muted)}.sidebar-user .chev{flex:0 0 auto;color:var(--muted);transition:transform var(--motion-fast) var(--ease-standard)}.dd.open .sidebar-user .chev{transform:rotate(180deg)}.su-head{padding:var(--space-2) var(--space-3) var(--space-3);border-bottom:1px solid var(--border-soft);margin-bottom:var(--space-1)}.su-head .muted{font-weight:400}.avatar{width:34px;height:34px;border-radius:var(--r-pill);background:var(--surface-warm);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:600;flex:0 0 auto;font-family:var(--font-display)}.avatar--accent{background:var(--accent);color:var(--accent-on)}.main{flex:1 1;min-width:0;display:flex;flex-direction:column}.topbar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--border-soft);display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-8);position:-webkit-sticky;position:sticky;top:0;z-index:40}.topbar-spacer{flex:1 1}.content{padding:var(--space-6) var(--space-8) var(--space-12);max-width:var(--container);width:100%;margin:0 auto}.page-head{display:flex;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5)}.page-head-text{flex:1 1;min-width:0}.page-title{font-size:var(--text-xl);font-weight:700;letter-spacing:0}.page-desc{color:var(--fg-2);margin-top:var(--space-1);font-size:var(--text-sm)}.ops-shell{min-height:100vh;background:var(--bg)}.ops-nav{background:var(--surface);border-bottom:1px solid var(--border-soft);gap:var(--space-5);padding:0 var(--space-8);height:56px;position:-webkit-sticky;position:sticky;top:0;z-index:40}.ops-nav,.ops-nav .ops-brand{display:flex;align-items:center}.ops-nav .ops-brand{gap:var(--space-2);font-weight:700;font-family:var(--font-display)}.ops-link{display:inline-flex;align-items:center;gap:var(--space-2);height:56px;padding:0 var(--space-2);color:var(--fg-2);font-size:var(--text-sm);font-weight:500;cursor:pointer;background:none;border:none;border-bottom:2px solid transparent;transition:color var(--motion-fast) var(--ease-standard),background var(--motion-fast) var(--ease-standard)}.ops-link:hover{color:var(--fg);background:color-mix(in oklab,var(--surface-warm) 45%,var(--surface));text-decoration:none}.ops-link.active{color:var(--accent);border-bottom-color:var(--accent)}.ops-link.disabled{color:var(--muted);cursor:default}.ops-link.disabled:hover{background:none}.ops-content{padding:var(--space-6) var(--space-8) var(--space-12);max-width:var(--container);margin:0 auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-5);border-radius:var(--r-pill);border:1px solid transparent;font-size:var(--text-sm);font-family:var(--font-body);cursor:pointer;white-space:nowrap;transition:background var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard);text-decoration:none}.btn:disabled{cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-on)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);color:var(--accent-on);text-decoration:none;box-shadow:var(--shadow-1)}.btn-primary:active:not(:disabled){background:var(--accent-active)}.btn-primary:disabled{background:color-mix(in oklab,var(--fg) 8%,var(--surface));color:var(--muted);box-shadow:none}.btn-secondary{background:var(--surface-warm);color:var(--info-strong)}.btn-secondary:hover:not(:disabled){background:color-mix(in oklab,var(--surface-warm) 80%,var(--accent) 20%);color:var(--info-strong);text-decoration:none}.btn-secondary:disabled{background:color-mix(in oklab,var(--fg) 6%,var(--surface));color:var(--muted)}.btn-ghost{background:transparent;color:var(--fg-2)}.btn-ghost:hover:not(:disabled){background:color-mix(in oklab,var(--fg) 6%,var(--surface));color:var(--fg);text-decoration:none}.btn-danger{background:var(--surface);border-color:color-mix(in oklab,var(--danger) 45%,var(--border));color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--err-soft);color:var(--err-strong)}.btn-accent-line{background:var(--surface);border-color:var(--accent);color:var(--accent)}.btn-accent-line:hover:not(:disabled){background:var(--accent-soft);color:var(--accent);text-decoration:none}a.btn:active,a.btn:hover{text-decoration:none}.btn-sm{min-height:32px;padding:0 var(--space-4);font-size:var(--text-xs)}.btn-lg{min-height:48px;padding:0 var(--space-6);font-size:var(--text-md)}.btn .spin{animation:spin .9s linear infinite}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-md)}.card-pad{padding:var(--space-6)}.card-head{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border-soft)}.card-head-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:600;flex:1 1}.badge{display:inline-flex;align-items:center;gap:5px;min-height:22px;padding:1px var(--space-2);font-size:var(--text-xs);font-weight:600;line-height:1.5;white-space:nowrap}.badge,.badge .dot{border-radius:var(--r-pill)}.badge .dot{width:6px;height:6px;background:currentColor}.badge.outline{border:1px solid;background:transparent;padding:0 var(--space-2)}.b-draft{background:var(--st-draft-soft);color:var(--st-draft)}.b-review{background:var(--st-review-soft);color:var(--info-strong)}.b-fix{background:var(--st-fix-soft);color:var(--st-fix)}.b-approved{background:var(--st-approved-soft);color:var(--ok-strong)}.b-deploying{background:var(--st-deploying-soft);color:var(--info-strong)}.b-deployed{background:var(--st-deployed);color:var(--success-on)}.b-deployed .dot{background:var(--success-on)}.b-failed{background:var(--st-failed-soft);color:var(--err-strong)}.b-info{background:var(--info-soft);color:var(--info-strong)}.b-ok{background:var(--ok-soft);color:var(--ok-strong)}.b-warn{background:var(--warn-soft);color:var(--warn-strong)}.b-err{background:var(--err-soft);color:var(--err-strong)}.b-neutral{background:var(--surface-2);color:var(--fg-2)}.badge.live .dot{animation:pulse 1.6s var(--ease-standard) infinite}.badge.pulsing{animation:badgePulse 1.6s var(--ease-standard) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}@keyframes badgePulse{0%,to{opacity:1}50%{opacity:.72}}.chip{display:inline-flex;align-items:center;gap:var(--space-1);min-height:32px;padding:0 var(--space-3);background:transparent;color:var(--fg-2);border:1px solid var(--border);border-radius:var(--r-sm);font-size:var(--text-sm);cursor:pointer;font-family:inherit;transition:background var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard)}.chip:hover{background:color-mix(in oklab,var(--fg) 6%,var(--surface));color:var(--fg)}.chip.on{background:var(--surface-warm);color:var(--info-strong);border-color:transparent}.chip-static{display:inline-flex;align-items:center;min-height:24px;padding:0 var(--space-2);background:var(--surface-2);color:var(--fg-2);border-radius:var(--r-sm);font-size:var(--text-xs);font-weight:500}.tbl-wrap{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-md);overflow-x:auto}.tbl{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.tbl th{text-align:left;font-size:var(--text-xs);font-weight:600;color:var(--muted);background:var(--surface);white-space:nowrap}.tbl td,.tbl th{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-soft)}.tbl td{vertical-align:middle}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr{transition:background var(--motion-fast) var(--ease-standard)}.tbl tbody tr:hover{background:color-mix(in oklab,var(--fg) 4%,var(--surface))}.tbl tbody tr.clickable{cursor:pointer}.tbl .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tbl-compact td,.tbl-compact th{padding:var(--space-2) var(--space-3);font-size:var(--text-xs)}.row-actions{display:flex;gap:var(--space-2);justify-content:flex-end;align-items:center}.field{display:flex;flex-direction:column;gap:6px}.field>label{font-size:var(--text-xs);font-weight:600;color:var(--fg-2)}.field .req:after{content:" *";color:var(--danger)}.input,.select,.textarea{width:100%;min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--fg);font-size:var(--text-sm);font-family:inherit;transition:border-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard)}.textarea{min-height:88px;resize:vertical;line-height:var(--leading-body)}.input:hover,.select:hover,.textarea:hover{border-color:var(--fg-2)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surface-2);color:var(--muted);cursor:not-allowed}.input.err,.textarea.err{border-color:var(--danger)}.input.err:focus{box-shadow:0 0 0 4px color-mix(in oklab,var(--danger) 20%,transparent)}.help{color:var(--muted)}.error-text,.help{font-size:var(--text-xs)}.error-text{color:var(--danger);font-weight:500}.seg{display:inline-flex;background:color-mix(in oklab,var(--fg) 6%,var(--surface));border-radius:var(--r-pill);padding:3px;gap:2px}.seg button{border:none;background:none;cursor:pointer;font-family:inherit;min-height:34px;padding:0 var(--space-4);border-radius:var(--r-pill);font-size:var(--text-xs);font-weight:500;color:var(--fg-2);transition:background var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.seg button:hover{color:var(--fg)}.seg button.on{background:var(--surface);color:var(--accent);font-weight:600;box-shadow:var(--shadow-1)}.switch{position:relative;width:40px;height:22px;flex:0 0 auto;cursor:pointer}.switch input{position:absolute;opacity:0;inset:0;cursor:pointer}.switch .knob{inset:0;background:color-mix(in oklab,var(--fg) 26%,var(--surface));transition:background var(--motion-base) var(--ease-standard)}.switch .knob,.switch .knob:after{position:absolute;border-radius:var(--r-pill)}.switch .knob:after{content:"";top:3px;left:3px;width:16px;height:16px;background:var(--surface);box-shadow:var(--shadow-1);transition:transform var(--motion-base) var(--ease-standard)}.switch input:checked+.knob{background:var(--accent)}.switch input:checked+.knob:after{transform:translateX(18px)}.switch input:focus-visible+.knob{box-shadow:var(--focus-ring)}.count{font-size:var(--text-xs);color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.count.over{color:var(--danger);font-weight:600}.banner{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3) var(--space-4);border-radius:var(--r-md);font-size:var(--text-sm)}.banner .b-ic{flex:0 0 auto;margin-top:3px;display:inline-flex}.banner-info{background:var(--info-soft);color:color-mix(in oklab,var(--info) 70%,var(--fg))}.banner-warn{background:var(--warn-soft);color:color-mix(in oklab,var(--warn-strong) 70%,var(--fg))}.banner-err{background:var(--err-soft);color:color-mix(in oklab,var(--danger) 78%,var(--fg))}.banner-ok{background:var(--ok-soft);color:color-mix(in oklab,var(--success) 72%,var(--fg))}.banner-title{font-weight:600}.banner-body{flex:1 1;min-width:0}.empty{border:1.5px dashed var(--border);border-radius:var(--r-md);padding:var(--space-12) var(--space-6);text-align:center;display:flex;flex-direction:column;gap:var(--space-3)}.empty,.empty-ic{align-items:center}.empty-ic{width:48px;height:48px;border-radius:var(--r-pill);background:var(--surface-warm);display:inline-flex;justify-content:center;color:var(--accent)}.empty-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:600}.empty-desc{color:var(--fg-2);max-width:400px}.toast{position:fixed;bottom:var(--space-6);left:50%;transform:translateX(-50%) translateY(8px);background:var(--ink);color:var(--ink-fg);padding:var(--space-3) var(--space-5);border-radius:var(--r-sm);box-shadow:var(--shadow-3);font-size:var(--text-sm);opacity:0;pointer-events:none;transition:opacity var(--motion-base) var(--ease-standard),transform var(--motion-base) var(--ease-standard);z-index:90;max-width:min(92vw,480px)}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.overlay{position:fixed;inset:0;background:color-mix(in oklab,var(--fg) 32%,transparent);display:none;align-items:flex-start;justify-content:center;padding:8vh var(--space-4) var(--space-4);z-index:80;overflow-y:auto}.overlay.open{display:flex}.dialog{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-3);width:100%;max-width:520px;animation:dlgIn var(--motion-base) var(--ease-standard)}.dialog--wide{max-width:720px}@keyframes dlgIn{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}.dialog-head{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-6)}.dialog-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;flex:1 1}.dialog-close{border:none;background:none;cursor:pointer;color:var(--muted);width:36px;height:36px;border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:center}.dialog-close:hover{background:var(--surface-2);color:var(--fg)}.dialog-body{padding:0 var(--space-6) var(--space-6)}.dialog-foot{display:flex;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-6) var(--space-6)}.dd{position:relative}.dd.up .dd-panel{top:auto;bottom:calc(100% + 6px)}.dd-panel{position:absolute;top:calc(100% + 6px);right:0;min-width:260px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--r-md);box-shadow:var(--shadow-2);padding:var(--space-2);z-index:60;display:none}.dd.open .dd-panel{display:block}.dd-item{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:44px;padding:var(--space-1) var(--space-3);background:none;border:none;border-radius:var(--r-sm);cursor:pointer;text-align:left;font-family:inherit;font-size:var(--text-sm);color:var(--fg)}.dd-item:hover{background:var(--surface-2)}.dd-item.on{background:var(--surface-warm);color:var(--info-strong);font-weight:600}.dd-sep{height:1px;background:var(--border-soft);margin:var(--space-1) var(--space-2)}.dd-item.danger{color:var(--danger)}.dd-item.danger:hover{background:color-mix(in oklab,var(--danger) 10%,transparent);color:var(--danger)}.steps{gap:var(--space-3)}.step,.steps{display:flex;align-items:center}.step{gap:var(--space-2);cursor:pointer;background:none;border:none;font-family:inherit;padding:var(--space-1) 0}.step .s-dot{width:28px;height:28px;border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:600;background:var(--surface-2);color:var(--muted);border:1.5px solid transparent;transition:all var(--motion-fast) var(--ease-standard)}.step .s-label{font-size:var(--text-sm);color:var(--muted);font-weight:500}.step.doing .s-dot{background:var(--accent);color:var(--accent-on)}.step.doing .s-label{color:var(--fg);font-weight:600}.step.done .s-dot{background:var(--ok-soft);color:var(--ok)}.step.done .s-label{color:var(--fg-2)}.step-line{flex:1 1;height:1.5px;background:var(--border-soft);min-width:24px}.step-line.done{background:color-mix(in oklab,var(--success) 40%,var(--border))}.tl{position:relative;padding-left:var(--space-5)}.tl:before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:1.5px;background:var(--border)}.tl-item{position:relative;padding:var(--space-2) 0}.tl-dot{position:absolute;left:calc(-1 * var(--space-5) + 2px);top:8px;width:11px;height:11px;border-radius:var(--r-pill);background:var(--surface);border:2.5px solid var(--muted)}.tl-item.ok .tl-dot{border-color:var(--success)}.tl-item.err .tl-dot{border-color:var(--danger)}.tl-item.info .tl-dot{border-color:var(--accent)}.tl-meta{font-size:var(--text-xs);color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.tl-label{font-size:var(--text-xs);font-weight:600}.ck{display:flex;flex-direction:column;gap:2px}.ck-item{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-2);border-radius:var(--r-sm);font-size:var(--text-xs);color:var(--fg-2)}.ck-item .ck-ic{flex:0 0 auto;margin-top:2px;display:inline-flex}.ck-item.ok{color:color-mix(in oklab,var(--success) 68%,var(--fg))}.ck-item.ok .ck-ic{color:var(--success)}.ck-item.bad{color:color-mix(in oklab,var(--danger) 76%,var(--fg));font-weight:500}.ck-item.bad .ck-ic{color:var(--danger)}.ck-item.warn{color:color-mix(in oklab,var(--warn-strong) 76%,var(--fg))}.ck-item.warn .ck-ic{color:var(--warn-strong)}.grid{display:grid;grid-gap:var(--space-4);gap:var(--space-4)}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.row{display:flex;align-items:center;gap:var(--space-3)}.row-wrap{flex-wrap:wrap}.spacer{flex:1 1}.kv{display:flex;flex-direction:column;gap:2px}.kv .k{font-size:var(--text-xs);color:var(--muted)}.kv .v{font-size:var(--text-sm);font-weight:500}.ph-img{border:1px solid var(--border-soft);border-radius:var(--r-sm);display:inline-flex;justify-content:center;color:var(--muted);overflow:hidden;position:relative}.demo-strip,.ph-img{background:var(--surface-2);align-items:center}.demo-strip{display:flex;gap:var(--space-2);flex-wrap:wrap;border:1px dashed var(--border);border-radius:var(--r-md);padding:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--fg-2)}.demo-strip .tag{font-size:var(--text-xs);font-weight:700;color:var(--accent);border:1px solid color-mix(in oklab,var(--accent) 35%,var(--border));border-radius:var(--r-sm);padding:0 6px;letter-spacing:.06em}.divider{height:1px;background:var(--border-soft);border:none;margin:var(--space-4) 0}.qr-frame-svg svg .qm{fill:var(--fg)}.qr-frame-svg svg .qw{fill:var(--surface)}.qr-refresh{color:var(--accent);font-weight:600;font-size:var(--text-sm);cursor:pointer;background:none;border:none;padding:var(--s1) var(--s2);border-radius:var(--r-sm)}.qr-refresh:hover{color:var(--accent-hover);text-decoration:underline}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width:960px){.shell{flex-direction:column}.sidebar{position:static;width:100%;height:auto;flex:none;flex-direction:row;align-items:center}.sidebar-nav{flex-direction:row;overflow-x:auto;padding:var(--space-2)}.nav-item{white-space:nowrap}.nav-group-label{display:none}.sidebar-foot{border-top:none;border-left:1px solid var(--border-soft);min-width:0}.sidebar .dd.up .dd-panel{top:calc(100% + 6px);bottom:auto;left:auto;right:0}.sidebar .dd.open .sidebar-user .chev{transform:none}.content,.ops-content{padding:var(--space-4) var(--space-4) var(--space-8)}.grid-2,.grid-3{grid-template-columns:1fr}.ops-nav,.topbar{padding:0 var(--space-4)}.ops-nav{overflow-x:auto}.page-head{flex-direction:column}}.sidebar{background:var(--rail-bg);border-right:1px solid var(--rail-border)}.sidebar-brand{border-bottom:1px solid var(--rail-border)}.brand-logo{display:block;flex:0 0 auto}.sidebar .brand-logo{filter:brightness(0) invert(1)}.sidebar .brand-name{color:var(--rail-fg);letter-spacing:-.01em}.sidebar .nav-item{color:var(--rail-nav)}.sidebar .nav-item:hover{background:color-mix(in oklab,var(--rail-fg) 7%,transparent);color:var(--rail-fg)}.sidebar .nav-item.active{background:color-mix(in oklab,var(--accent) 22%,transparent);color:var(--rail-active-fg)}.sidebar .nav-group-label{color:var(--rail-group)}.sidebar-foot{border-top:1px solid var(--rail-border)}.sidebar .sidebar-user:hover{background:color-mix(in oklab,var(--accent) 16%,transparent)}.sidebar .sidebar-user:focus-visible{box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 40%,transparent)}.sidebar .su-name{color:var(--rail-fg)}.sidebar .sidebar-user .chev,.sidebar .su-role{color:var(--rail-muted)}.sidebar .dd-panel{left:0;right:auto;background:var(--rail-bg);border-color:var(--rail-border);box-shadow:0 18px 48px rgba(0,0,0,.5)}.sidebar .dd-item{color:var(--rail-nav)}.sidebar .dd-item:hover{background:color-mix(in oklab,var(--rail-fg) 8%,transparent);color:var(--rail-fg)}.sidebar .dd-item.disabled{color:var(--rail-muted)}.sidebar .dd-item.danger,.sidebar .dd-item.danger:hover{color:var(--danger);background:color-mix(in oklab,var(--danger) 16%,transparent)}.sidebar .su-head{border-bottom-color:var(--rail-border)}.sidebar .su-head .su-name{color:var(--rail-fg)}.sidebar .su-head .muted{color:var(--rail-muted)}.sidebar .dd-sep{background:var(--rail-border)}.sidebar .avatar{background:color-mix(in oklab,var(--rail-fg) 10%,transparent);color:var(--rail-active-fg)}.sidebar .avatar--accent{background:var(--accent);color:var(--accent-on)}.dialog-title,.page-title{font-weight:800;letter-spacing:-.015em}.btn{font-weight:600}.dialog{box-shadow:0 16px 48px color-mix(in oklab,var(--fg) 14%,transparent),0 0 0 1px var(--border-soft)}.btn-ghost.disabled,.btn-ghost:disabled{background:transparent;color:var(--muted);cursor:not-allowed}.btn-accent-line.disabled,.btn-accent-line:disabled,.btn-danger.disabled,.btn-danger:disabled{background:var(--surface);border-color:var(--border);color:var(--muted);box-shadow:none;cursor:not-allowed}.nav-item.disabled,.nav-item:disabled{color:var(--muted);cursor:default}.nav-item.disabled:hover,.nav-item:disabled:hover{background:none;color:var(--muted)}.chip.disabled,.chip:disabled{color:var(--muted);border-color:var(--border-soft);cursor:not-allowed}.chip.disabled:hover,.chip:disabled:hover{background:transparent;color:var(--muted)}.seg button:disabled{color:var(--muted);cursor:not-allowed}.seg button:disabled:hover{color:var(--muted)}.dd-item.disabled,.dd-item:disabled{color:var(--muted);cursor:default}.dd-item.disabled:hover,.dd-item:disabled:hover{background:none}.switch.disabled{opacity:.55}.switch.disabled,.switch.disabled input{cursor:not-allowed}.tbl tbody tr.selected,.tbl tbody tr.selected:hover{background:var(--surface-warm)}.t-xs{font-size:var(--text-xs)}.t-sm{font-size:var(--text-sm)}.semibold{font-weight:600}.text-right{text-align:right}.sec-title{font-size:var(--text-md);font-weight:600;margin-bottom:var(--s2)}.sec-title-sm{font-weight:700;margin-bottom:var(--s3)}.label-sm,.sec-title-sm{font-size:var(--text-sm)}.label-sm{font-weight:600;display:block}.flex-1{flex:1 1}.flex-min{flex:1 1;min-width:0}.stack-s3{gap:var(--s3)}.stack-s3,.stack-s4{display:flex;flex-direction:column}.stack-s4{gap:var(--s4)}.m-0{margin:0}.mt-s2{margin-top:var(--s2)}.mt-s3{margin-top:var(--s3)}.mt-s4{margin-top:var(--s4)}.mb-s2{margin-bottom:var(--s2)}.mb-s4{margin-bottom:var(--s4)}.note-row{display:flex;gap:var(--s3);align-items:flex-start;padding:var(--s2) 0}.win-dot{width:10px;height:10px;border-radius:99px;background:var(--border)}html{color-scheme:light}html[data-theme=dark]{color-scheme:dark;--bg:#121416;--surface:#1b1e22;--surface-warm:#38241b;--fg:#f5f6f7;--fg-2:#d6d9df;--muted:#a7adb6;--meta:#ffb58b;--border:#59616c;--border-soft:#343a42;--accent:#ffb38a;--accent-on:#28140b;--accent-hover:#ffc7a8;--accent-active:#ffd5bd;--success:#65d68c;--success-on:#092b16;--warn:#f4be71;--warn-on:#2e1b03;--danger:#ff9898;--danger-on:#3d0a0a;--ink:#edf0f4;--ink-fg:#181b20;--ink-muted:#414854;--focus-ring:0 0 0 3px rgb(255 179 138/35%)}.toast-host{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;z-index:200;align-items:center;width:max-content;max-width:calc(100vw - 32px);pointer-events:none}.toast-host>.toast{position:relative;inset:auto;transform:none;width:-moz-fit-content;width:fit-content;max-width:min(480px,calc(100vw - 32px));box-sizing:border-box;overflow-wrap:anywhere;flex-shrink:0}body:has(.footbar) .toast-host{top:max(16px,env(safe-area-inset-top,0px));bottom:auto}.toast-err{background:var(--danger);color:var(--danger-on)}.chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tbl .cell-actions{text-align:right;white-space:nowrap}.topbar{transition:height .2s ease,border-bottom-width .2s ease}.topbar.tuck{height:0;border-bottom-width:0;overflow:hidden}.topbar.tuck~.content .rail{top:var(--space-4)}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:var(--space-5);gap:var(--space-5);align-items:start;margin-top:var(--space-4)}.rail{position:-webkit-sticky;position:sticky;align-self:start;top:calc(64px + var(--space-4));transition:top .2s ease}@media (prefers-reduced-motion:reduce){.rail,.topbar{transition:none}}.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-4);gap:var(--space-4)}.country-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.slot{display:flex;flex-direction:row;align-items:center;gap:var(--space-3);border:1px dashed var(--border);border-radius:var(--radius-md);padding:var(--space-3);min-width:0}.slot.filled{border-style:solid;background:var(--surface)}.ph-img{width:56px;height:38px;object-fit:cover;border-radius:var(--radius-sm);flex:0 0 auto;display:block}.slot-meta{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.slot-name{font-size:var(--text-sm);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slot-hint{font-size:var(--text-xs);color:var(--muted)}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.textlist{display:flex;flex-direction:column;gap:var(--space-2)}.textrow{display:flex;flex-direction:row;align-items:center;gap:var(--space-3)}.textrow>.input,.textrow>.textarea{flex:1 1;min-width:0}.footbar{position:-webkit-sticky;position:sticky;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--border);padding:var(--space-3) var(--space-5);padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom, 0px))}.locked{pointer-events:none}.sum-row{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--border-soft);font-size:var(--text-sm)}.sum-row:last-child{border-bottom:none}.sum-row .k{color:var(--ink-muted)}.sum-row .k,.sum-row .v{font-size:var(--text-sm)}.sum-row .v{font-weight:600;text-align:right;word-break:break-word}.ov-row{display:grid;grid-template-columns:72px auto minmax(0,1fr);align-items:center;grid-gap:var(--space-3);gap:var(--space-3)}.policy-chip{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px var(--space-2);white-space:nowrap}.seg-obj{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:var(--space-3);gap:var(--space-3)}.obj-opt{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);background:var(--surface);cursor:pointer;font-size:var(--text-sm);font-weight:500;color:var(--fg);transition:border-color var(--motion-fast) var(--ease-standard),background var(--motion-fast) var(--ease-standard)}.obj-opt .help,.obj-opt .muted{display:block;font-weight:400}.obj-opt>b{display:block;margin-bottom:var(--space-1)}.obj-opt.on{border-color:var(--accent)}.obj-opt.on,.picked-chip{background:var(--surface-warm)}.picked-chip{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--accent);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:500}.picker-empty{color:var(--muted);text-align:center;padding:var(--space-5)}.picker-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:50vh;overflow:auto}.picker-item{display:flex;flex-direction:row;align-items:center;gap:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--surface);cursor:pointer;min-width:0;transition:border-color var(--motion-fast) var(--ease-standard),background var(--motion-fast) var(--ease-standard)}.picker-item.on{border-color:var(--accent);background:var(--surface-warm)}.picker-hint{font-size:var(--text-xs);color:var(--muted)}.picker-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-foot{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-soft)}@media (max-width:1100px){.editor-layout{grid-template-columns:minmax(0,1fr)}.rail{position:static}}@media (max-width:720px){.fgrid,.seg-obj{grid-template-columns:minmax(0,1fr)}.footbar{padding-left:var(--space-4);padding-right:var(--space-4)}}.footbar-inner{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:space-between}.foot-note{color:var(--muted);font-size:var(--text-xs)}.acc-btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-sm);color:inherit;cursor:pointer}.acc-btn:hover{background:var(--surface-2)}.acc-name{font-weight:600}.topbar [data-od-id=account-switcher]{min-width:0;max-width:min(420px,calc(100% - 88px))}.topbar [data-od-id=account-switcher]>.acc-btn{width:100%}.topbar .acc-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar .acc-btn>.badge,.topbar .acc-btn>svg,.topbar [data-od-id=notif-bell]{flex-shrink:0}@media (max-width:960px){.sidebar{display:grid;grid-template-columns:max-content minmax(0,1fr)}.sidebar-brand{grid-column:1;grid-row:1}.sidebar-foot{grid-column:2;grid-row:1}.sidebar-nav{grid-column:1/-1;grid-row:2;min-width:0;width:100%}.sidebar-nav .nav-item{flex-shrink:0}.topbar>.dd{position:static}.topbar .dd-panel{left:var(--space-4);right:var(--space-4);min-width:0;max-height:min(70vh,480px);overflow-y:auto}}@media (max-width:560px){.editor-layout .steps{gap:var(--space-1)}.editor-layout .step{flex:1 1;min-width:0;flex-direction:column}.editor-layout .step .s-label{white-space:nowrap;font-size:var(--text-xs)}.editor-layout .step-line{flex:0 1 20px;min-width:8px}}.set-name{font-weight:600}.dropzone{border:1.5px dashed var(--border);background:var(--surface);border-radius:var(--r-md);padding:var(--s5);text-align:center;margin-bottom:var(--s5);transition:border-color .15s,background .15s;display:flex;flex-direction:column;align-items:center;gap:var(--s2)}