/* Outgrid component layer. Every class is prefixed og-. Tokens only — no raw colors. */
@keyframes og-pulse{0%{box-shadow:0 0 0 0 currentColor}70%{box-shadow:0 0 0 6px transparent}100%{box-shadow:0 0 0 0 transparent}}
@keyframes og-shimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
@keyframes og-pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.15);opacity:1}100%{transform:scale(1)}}
@keyframes og-scale-in{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
@keyframes og-fade-in{from{opacity:0}to{opacity:1}}
@keyframes og-slide-right{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
@keyframes og-slide-up{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}
@keyframes og-dots{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}
@keyframes og-confetti{0%{transform:translate(0,0) scale(.6) rotate(0);opacity:1}100%{transform:translate(var(--dx),var(--dy)) scale(1) rotate(var(--rot));opacity:0}}
@keyframes og-tick{0%{transform:translateY(-40%);opacity:0}100%{transform:none;opacity:1}}
@keyframes og-spin{to{transform:rotate(360deg)}}

/* ---------- Icon ---------- */
.og-icon{display:inline-block;flex:none;width:20px;height:20px;background:currentColor;-webkit-mask:var(--og-icon) center/contain no-repeat;mask:var(--og-icon) center/contain no-repeat}

/* ---------- Button (2.5D key-cap) ---------- */
.og-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--control-md);padding:0 18px;border:0;border-radius:var(--radius-control);font:600 15px/1 var(--font-sans);letter-spacing:-0.005em;white-space:nowrap;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-instant) var(--ease-press),box-shadow var(--dur-instant) var(--ease-press),background var(--dur-fast) var(--ease-out),color var(--dur-fast);text-decoration:none}
.og-btn:hover{text-decoration:none}
.og-btn .og-icon{width:18px;height:18px}
.og-btn--sm{height:var(--control-sm);padding:0 14px;font-size:14px;border-radius:var(--radius-sm)}
.og-btn--sm .og-icon{width:16px;height:16px}
.og-btn--lg{height:var(--control-lg);padding:0 24px;font-size:16px;border-radius:var(--radius-lg)}
.og-btn--lg .og-icon{width:20px;height:20px}
.og-btn--block{display:flex;width:100%}
.og-btn--square{padding:0;width:var(--control-md)}.og-btn--sm.og-btn--square{width:var(--control-sm)}.og-btn--lg.og-btn--square{width:var(--control-lg)}
.og-btn--primary{color:var(--text-on-accent);background:linear-gradient(180deg,var(--accent-top),var(--accent));box-shadow:inset 0 1px 0 rgb(255 255 255 / .28),0 3px 0 var(--accent-lip),var(--shadow-accent)}
.og-btn--primary:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 rgb(255 255 255 / .28),0 4px 0 var(--accent-lip),var(--shadow-accent);color:var(--text-on-accent)}
.og-btn--primary:active{transform:translateY(2px);box-shadow:inset 0 1px 0 rgb(255 255 255 / .2),0 1px 0 var(--accent-lip),0 2px 6px -2px var(--accent)}
.og-btn--secondary{color:var(--text-1);background:var(--bg-raised);box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-2),0 2px 0 var(--lip),var(--shadow-xs)}
.og-btn--secondary:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-strong),0 3px 0 var(--lip),var(--shadow-sm);color:var(--text-1)}
.og-btn--secondary:active{transform:translateY(2px);box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-strong),0 0 0 var(--lip);background:var(--bg-sunken)}
.og-btn--danger{color:#fff;background:linear-gradient(180deg,var(--danger-top),var(--danger));box-shadow:inset 0 1px 0 rgb(255 255 255 / .25),0 3px 0 var(--danger-lip)}
.og-btn--danger:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 rgb(255 255 255 / .25),0 4px 0 var(--danger-lip);color:#fff}
.og-btn--danger:active{transform:translateY(2px);box-shadow:inset 0 1px 0 rgb(255 255 255 / .2),0 1px 0 var(--danger-lip)}
.og-btn--soft{color:var(--accent-text);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-soft-2)}
.og-btn--soft:hover{background:var(--accent-soft-2);color:var(--accent-text)}
.og-btn--soft:active{transform:translateY(1px)}
.og-btn--ghost{color:var(--text-2);background:transparent}
.og-btn--ghost:hover{background:var(--bg-hover);color:var(--text-1)}
.og-btn--ghost:active{background:var(--bg-press);transform:translateY(1px)}
.og-btn[disabled],.og-btn[aria-disabled="true"]{cursor:not-allowed;opacity:.45;transform:none!important;filter:saturate(.6)}
.og-btn[data-busy="true"]{pointer-events:none}
.og-btn[data-busy="true"]>*:not(.og-dots){visibility:hidden}
.og-dots{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:4px}
.og-dots i{width:6px;height:6px;border-radius:50%;background:currentColor;animation:og-dots 900ms infinite var(--ease-in-out)}
.og-dots i:nth-child(2){animation-delay:120ms}.og-dots i:nth-child(3){animation-delay:240ms}

/* ---------- Kbd ---------- */
.og-kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:6px;font:600 12px/1 var(--font-sans);color:var(--text-2);background:var(--bg-raised);box-shadow:inset 0 0 0 1px var(--border-2),0 1.5px 0 var(--lip)}

/* ---------- Avatar ---------- */
.og-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--s,36px);height:var(--s,36px);border-radius:50%;font:700 calc(var(--s,36px)*.38)/1 var(--font-sans);color:#fff;background:linear-gradient(180deg,var(--av,var(--n-500)),color-mix(in oklch,var(--av,var(--n-500)) 74%,black));text-shadow:0 1px 1px rgb(0 0 0 / .22);box-shadow:inset 0 1px 0 rgb(255 255 255 / .32),inset 0 -1.5px 0 rgb(0 0 0 / .14),var(--shadow-xs)}
.og-avatar--square{border-radius:28%}
.og-avatar img{width:100%;height:100%;object-fit:cover;border-radius:inherit}
.og-avatar__dot{position:absolute;right:-1px;bottom:-1px;width:30%;height:30%;border-radius:50%;background:var(--dot);box-shadow:0 0 0 2px var(--bg-surface)}

/* ---------- Field / Input ---------- */
.og-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.og-label{font:600 15px/1.2 var(--font-sans);color:var(--text-1)}
.og-hint{font:var(--type-small);color:var(--text-2)}
.og-error{display:flex;gap:6px;align-items:flex-start;font:500 14px/1.4 var(--font-sans);color:var(--danger-text)}
.og-error .og-icon{width:16px;height:16px;margin-top:1px}
.og-input{position:relative;display:flex;align-items:center;gap:10px;height:var(--control-md);padding:0 14px;border-radius:var(--radius-control);background:var(--bg-surface);box-shadow:inset 0 1px 2px oklch(0.25 0.02 70 / .07),inset 0 0 0 1px var(--border-2);transition:box-shadow var(--dur-fast) var(--ease-out)}
.og-input:hover{box-shadow:inset 0 1px 2px oklch(0.25 0.02 70 / .07),inset 0 0 0 1px var(--border-strong)}
.og-input:focus-within{box-shadow:inset 0 0 0 1.5px var(--accent),0 0 0 4px var(--focus-ring)}
.og-input--lg{height:var(--control-lg);padding:0 16px}
.og-input--lg input{font-size:17px}
.og-input--invalid{box-shadow:inset 0 0 0 1.5px var(--danger),0 0 0 4px var(--danger-soft)!important}
.og-input>.og-icon{color:var(--text-3)}
.og-input input,.og-input select,.og-input textarea{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;font:500 16px/1.2 var(--font-sans);color:var(--text-1);padding:0}
.og-input input::placeholder,.og-input textarea::placeholder{color:var(--text-3);font-weight:400}
.og-input select{appearance:none;cursor:pointer;padding-right:24px}
.og-select__chev{position:absolute;right:12px;pointer-events:none;color:var(--text-3);width:18px!important;height:18px!important}
.og-input--area{height:auto;padding:12px 14px;align-items:flex-start}
.og-input--area textarea{resize:vertical;min-height:88px;line-height:1.5}
.og-input--disabled{opacity:.55;background:var(--bg-sunken)}

/* ---------- Checkbox / Radio ---------- */
.og-check{display:inline-flex;align-items:flex-start;gap:12px;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;font:500 15px/1.35 var(--font-sans);color:var(--text-1)}
.og-check input{position:absolute;opacity:0;width:1px;height:1px}
.og-check__box{position:relative;flex:none;width:22px;height:22px;margin-top:-1px;border-radius:7px;background:var(--bg-raised);box-shadow:inset 0 0 0 1.5px var(--border-strong),0 1.5px 0 var(--lip);display:flex;align-items:center;justify-content:center;color:#fff;transition:background var(--dur-fast),box-shadow var(--dur-fast),transform var(--dur-instant)}
.og-check--radio .og-check__box{border-radius:50%}
.og-check:hover .og-check__box{box-shadow:inset 0 0 0 1.5px var(--text-3),0 1.5px 0 var(--lip)}
.og-check:active .og-check__box{transform:translateY(1px) scale(.94)}
.og-check input:focus-visible+.og-check__box{box-shadow:inset 0 0 0 1.5px var(--accent),0 0 0 4px var(--focus-ring)}
.og-check input:checked+.og-check__box{background:linear-gradient(180deg,var(--accent-top),var(--accent));box-shadow:inset 0 1px 0 rgb(255 255 255 / .3),0 1.5px 0 var(--accent-lip)}
.og-check__box .og-icon{width:15px;height:15px;opacity:0;transform:scale(.4)}
.og-check input:checked+.og-check__box .og-icon{opacity:1;animation:og-pop var(--dur-slow) var(--ease-spring)}
.og-check__box i{width:8px;height:8px;border-radius:50%;background:#fff;opacity:0;transform:scale(.3)}
.og-check input:checked+.og-check__box i{opacity:1;animation:og-pop var(--dur-slow) var(--ease-spring) forwards}
.og-check input:disabled~*{opacity:.45;cursor:not-allowed}
.og-check__text{display:flex;flex-direction:column;gap:2px}
.og-check__desc{font:400 14px/1.4 var(--font-sans);color:var(--text-2)}

/* ---------- Switch ---------- */
.og-switch{display:inline-flex;align-items:center;gap:12px;cursor:pointer;user-select:none;font:500 15px/1.3 var(--font-sans);color:var(--text-1);-webkit-tap-highlight-color:transparent}
.og-switch input{position:absolute;opacity:0;width:1px;height:1px}
.og-switch__track{position:relative;flex:none;width:48px;height:28px;border-radius:999px;background:var(--n-300);box-shadow:inset 0 1px 3px oklch(0.25 0.02 70 / .25);transition:background var(--dur-base) var(--ease-out)}
[data-theme="dark"] .og-switch__track{background:var(--n-700)}
.og-switch__knob{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:linear-gradient(180deg,#fff,var(--n-50));box-shadow:0 1px 1px rgb(0 0 0 / .12),0 2px 6px rgb(0 0 0 / .18),inset 0 -1px 0 rgb(0 0 0 / .06);transition:transform var(--dur-slow) var(--ease-spring),width var(--dur-fast) var(--ease-out)}
.og-switch:active .og-switch__knob{width:27px}
.og-switch input:checked+.og-switch__track{background:var(--success)}
.og-switch input:checked+.og-switch__track .og-switch__knob{transform:translateX(20px)}
.og-switch:active input:checked+.og-switch__track .og-switch__knob{transform:translateX(15px)}
.og-switch input:focus-visible+.og-switch__track{box-shadow:0 0 0 4px var(--focus-ring)}
.og-switch input:disabled+.og-switch__track{opacity:.45}

/* ---------- ChoiceCard ---------- */
.og-choice{position:relative;display:flex;gap:16px;align-items:flex-start;width:100%;padding:18px 20px;border:0;border-radius:var(--radius-xl);text-align:left;cursor:pointer;background:var(--bg-raised);color:var(--text-1);box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-2),0 2px 0 var(--lip),var(--shadow-xs);transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out);font:inherit;-webkit-tap-highlight-color:transparent}
.og-choice:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-strong),0 3px 0 var(--lip),var(--shadow-md)}
.og-choice:active{transform:translateY(1px);box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-strong),0 0 0 var(--lip)}
.og-choice[aria-checked="true"]{box-shadow:inset 0 1px 0 var(--hl),0 0 0 2px var(--accent),0 3px 0 var(--accent-lip),var(--shadow-md);background:linear-gradient(180deg,var(--bg-raised),var(--accent-soft))}
.og-choice__icon{flex:none;width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--bg-sunken);color:var(--text-2);box-shadow:var(--elev-sunken);transition:all var(--dur-base) var(--ease-out)}
.og-choice__icon .og-icon{width:24px;height:24px}
.og-choice[aria-checked="true"] .og-choice__icon{background:linear-gradient(180deg,var(--accent-top),var(--accent));color:#fff;box-shadow:inset 0 1px 0 rgb(255 255 255 / .3),0 2px 0 var(--accent-lip)}
.og-choice__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.og-choice__title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font:700 17px/1.25 var(--font-sans);letter-spacing:-0.01em}
.og-choice__desc{font:400 15px/1.45 var(--font-sans);color:var(--text-2)}
.og-choice__mark{flex:none;width:24px;height:24px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--border-strong);display:flex;align-items:center;justify-content:center;color:#fff;transition:all var(--dur-fast)}
.og-choice__mark .og-icon{width:15px;height:15px;opacity:0}
.og-choice[aria-checked="true"] .og-choice__mark{background:var(--accent);box-shadow:none}
.og-choice[aria-checked="true"] .og-choice__mark .og-icon{opacity:1;animation:og-pop var(--dur-slow) var(--ease-spring)}
.og-choice--compact{padding:14px 16px;gap:12px;border-radius:var(--radius-lg)}
.og-choice--compact .og-choice__icon{width:40px;height:40px;border-radius:12px}

/* ---------- CopyField ---------- */
.og-copy{display:flex;align-items:center;gap:6px;min-width:0;height:44px;padding:0 4px 0 14px;border-radius:var(--radius-control);background:var(--bg-sunken);box-shadow:var(--elev-sunken)}
.og-copy--sm{height:36px;padding-left:10px}
.og-copy__val{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:500 14px/1 var(--font-mono);color:var(--text-1)}
.og-copy__btn{flex:none;display:inline-flex;align-items:center;gap:6px;height:calc(100% - 8px);padding:0 12px;border:0;border-radius:8px;background:var(--bg-raised);color:var(--text-1);font:600 13px/1 var(--font-sans);cursor:pointer;box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-2),0 1.5px 0 var(--lip);transition:all var(--dur-fast) var(--ease-out)}
.og-copy__btn .og-icon{width:15px;height:15px}
.og-copy__btn:active{transform:translateY(1px);box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-2)}
.og-copy__btn[data-done="true"]{background:var(--success);color:#fff;box-shadow:inset 0 1px 0 rgb(255 255 255 / .25),0 1.5px 0 var(--green-700)}
.og-copy__btn[data-done="true"] .og-icon{animation:og-pop var(--dur-slow) var(--ease-spring)}

/* ---------- SegmentedControl ---------- */
.og-seg{position:relative;display:inline-flex;padding:4px;gap:2px;border-radius:12px;background:var(--bg-sunken);box-shadow:var(--elev-sunken)}
.og-seg--block{display:flex}
.og-seg__thumb{position:absolute;top:4px;bottom:4px;left:0;border-radius:9px;background:var(--bg-raised);box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-1),0 1.5px 0 var(--lip),var(--shadow-sm);transition:transform var(--dur-slow) var(--ease-spring),width var(--dur-slow) var(--ease-spring)}
.og-seg__opt{position:relative;z-index:1;flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 16px;border:0;background:transparent;border-radius:9px;cursor:pointer;font:600 14px/1 var(--font-sans);color:var(--text-2);white-space:nowrap;transition:color var(--dur-fast)}
.og-seg__opt:hover{color:var(--text-1)}
.og-seg__opt[aria-checked="true"]{color:var(--text-1)}
.og-seg__opt .og-icon{width:16px;height:16px}
.og-seg--sm .og-seg__opt{height:30px;padding:0 12px;font-size:13px}

/* ---------- StatusPill ---------- */
.og-pill{display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 10px 0 9px;border-radius:999px;font:600 13px/1 var(--font-sans);white-space:nowrap;color:var(--text-2);background:var(--bg-sunken);box-shadow:inset 0 0 0 1px var(--border-1)}
.og-pill__dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.og-pill--live .og-pill__dot{animation:og-pulse 1.8s infinite}
.og-pill .og-icon{width:14px;height:14px}
.og-pill--good{color:var(--success-text);background:var(--success-soft);box-shadow:inset 0 0 0 1px oklch(0.66 0.16 152 / .22)}
.og-pill--warn{color:var(--warning-text);background:var(--warning-soft);box-shadow:inset 0 0 0 1px oklch(0.79 0.16 75 / .35)}
.og-pill--bad{color:var(--danger-text);background:var(--danger-soft);box-shadow:inset 0 0 0 1px oklch(0.63 0.21 25 / .22)}
.og-pill--info{color:var(--accent-text);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-soft-2)}
.og-pill--sm{height:22px;padding:0 8px;font-size:12px;gap:6px}
.og-pill--sm .og-pill__dot{width:6px;height:6px}
.og-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 7px;border-radius:999px;font:700 12px/1 var(--font-sans);font-variant-numeric:tabular-nums;color:#fff;background:var(--accent);box-shadow:inset 0 1px 0 rgb(255 255 255 / .25),0 1px 0 var(--accent-lip)}
.og-count--muted{color:var(--text-2);background:var(--bg-press);box-shadow:none}

/* ---------- Toast ---------- */
.og-toast{display:flex;align-items:center;gap:12px;min-height:52px;max-width:460px;padding:8px 8px 8px 16px;border-radius:16px;background:var(--bg-inverse);color:var(--text-inverse);box-shadow:inset 0 1px 0 rgb(255 255 255 / .1),var(--shadow-xl);font:500 15px/1.35 var(--font-sans);animation:og-slide-up var(--dur-slow) var(--ease-spring)}
.og-toast__icon{flex:none;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--n-600)}
.og-toast__icon .og-icon{width:16px;height:16px}
.og-toast--good .og-toast__icon{background:var(--green-600)}
.og-toast--warn .og-toast__icon{background:var(--amber-600)}
.og-toast--bad .og-toast__icon{background:var(--red-600)}
.og-toast__msg{flex:1;padding:6px 0}
.og-toast__action{flex:none;height:36px;padding:0 14px;border:0;border-radius:10px;background:rgb(255 255 255 / .12);color:inherit;font:700 14px/1 var(--font-sans);cursor:pointer}
[data-theme="dark"] .og-toast__action{background:rgb(0 0 0 / .08)}
.og-toast__action:hover{background:rgb(255 255 255 / .2)}
.og-toast__x{flex:none;width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:inherit;opacity:.6;cursor:pointer;display:flex;align-items:center;justify-content:center}
.og-toast__x:hover{opacity:1}

/* ---------- Tooltip ---------- */
.og-tip-wrap{position:relative;display:inline-flex}
.og-tip{position:absolute;left:50%;bottom:calc(100% + 10px);z-index:50;width:max-content;max-width:260px;padding:9px 12px;border-radius:10px;background:var(--bg-inverse);color:var(--text-inverse);font:500 13px/1.4 var(--font-sans);box-shadow:var(--shadow-lg);pointer-events:none;opacity:0;transform:translate(calc(-50% + var(--shift,0px)),4px) scale(.97);transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);text-align:left}
.og-tip b{display:block;font-weight:700;margin-bottom:2px}
.og-tip::after{content:"";position:absolute;left:calc(50% - var(--shift,0px));top:100%;margin-left:-6px;border:6px solid transparent;border-top-color:var(--bg-inverse)}
.og-tip--bottom{bottom:auto;top:calc(100% + 10px);transform:translate(calc(-50% + var(--shift,0px)),-4px) scale(.97)}
.og-tip--bottom::after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--bg-inverse)}
.og-tip[data-open="true"]{opacity:1;transform:translate(calc(-50% + var(--shift,0px)),0) scale(1)}
.og-term{border-bottom:1.5px dotted var(--text-3);cursor:help}

/* ---------- Progress ring ---------- */
.og-ring{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none}
.og-ring svg{transform:rotate(-90deg);display:block}
.og-ring__track{stroke:var(--bg-press)}
.og-ring__bar{transition:stroke-dashoffset 600ms var(--ease-out);stroke-linecap:round}
.og-ring__label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font:800 15px/1 var(--font-sans);font-variant-numeric:tabular-nums;color:var(--text-1)}

/* ---------- Skeleton ---------- */
.og-skel{display:block;border-radius:8px;background:linear-gradient(90deg,var(--bg-sunken) 0,var(--bg-press) 50%,var(--bg-sunken) 100%);background-size:800px 100%;animation:og-shimmer 1.4s infinite linear}

/* ---------- Health score ---------- */
.og-health{display:flex;align-items:center;gap:16px}
.og-health__body{display:flex;flex-direction:column;gap:6px;min-width:0}
.og-health__title{font:700 16px/1.25 var(--font-sans)}
.og-health__tip{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:6px 10px 6px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font:600 13px/1.2 var(--font-sans);border:0;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out)}
.og-health__tip:hover{transform:translateX(2px)}
.og-health__tip .og-icon{width:15px;height:15px}
.og-health__tip b{font-weight:800}

/* ---------- Celebration ---------- */
.og-celebrate{position:relative;display:inline-flex}
.og-celebrate__burst{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none;z-index:5}
.og-celebrate__burst i{position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:2px;background:var(--c);animation:og-confetti var(--dur-celebrate) var(--ease-out) forwards}
.og-celebrate__burst i:nth-child(3n){border-radius:50%}

/* ---------- Card ---------- */
.og-card{position:relative;border-radius:var(--radius-card);background:var(--bg-surface);box-shadow:var(--elev-card);color:var(--text-1)}
.og-card--raised{box-shadow:var(--elev-raised)}
.og-card--flat{box-shadow:0 0 0 1px var(--border-1)}
.og-card--sunken{background:var(--bg-sunken);box-shadow:var(--elev-sunken)}
.og-card--interactive{cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}
.og-card--interactive:hover{transform:translateY(-2px);box-shadow:var(--elev-raised)}
.og-card--interactive:active{transform:translateY(0);box-shadow:var(--elev-card)}
.og-card--selected{box-shadow:inset 0 1px 0 var(--hl),0 0 0 2px var(--accent),var(--shadow-md)}
.og-card--pad-sm{padding:16px}.og-card--pad-md{padding:20px 24px}.og-card--pad-lg{padding:28px 32px}
.og-card__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.og-card__title{font:700 17px/1.25 var(--font-sans);letter-spacing:-0.01em}
.og-card__sub{font:400 14px/1.4 var(--font-sans);color:var(--text-2);margin-top:2px}

/* ---------- Stat ---------- */
.og-stat{display:flex;flex-direction:column;gap:6px;min-width:0}
.og-stat__label{display:flex;align-items:center;gap:6px;font:600 14px/1.2 var(--font-sans);color:var(--text-2)}
.og-stat__label .og-icon{width:16px;height:16px}
.og-stat__value{font:800 34px/1 var(--font-sans);letter-spacing:-0.03em;font-variant-numeric:tabular-nums;color:var(--text-1);display:flex;align-items:baseline;gap:4px}
.og-stat__value small{font-size:18px;font-weight:700;color:var(--text-2);letter-spacing:-0.01em}
.og-stat__value span{display:inline-block;animation:og-tick var(--dur-slow) var(--ease-spring)}
.og-stat__delta{display:inline-flex;align-items:center;gap:4px;font:600 13px/1 var(--font-sans);font-variant-numeric:tabular-nums;color:var(--text-2)}
.og-stat__delta .og-icon{width:14px;height:14px}
.og-stat__delta--good{color:var(--success-text)}.og-stat__delta--bad{color:var(--danger-text)}
.og-stat__bar{display:flex;gap:3px;height:6px;margin-top:6px}
.og-stat__bar i{flex:1;border-radius:3px;background:var(--bg-press)}

/* ---------- Overlay / Dialog / Drawer ---------- */
.og-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-overlay);backdrop-filter:blur(6px) saturate(1.1);-webkit-backdrop-filter:blur(6px) saturate(1.1);animation:og-fade-in var(--dur-fast) var(--ease-out)}
.og-overlay--inline{position:absolute}
.og-dialog{width:100%;max-width:480px;max-height:calc(100% - 48px);overflow:auto;border-radius:var(--radius-2xl);background:var(--bg-raised);box-shadow:var(--elev-overlay);animation:og-scale-in var(--dur-slow) var(--ease-spring)}
.og-dialog--lg{max-width:640px}
.og-dialog__head{display:flex;align-items:flex-start;gap:16px;padding:24px 24px 8px}
.og-dialog__icon{flex:none;width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-text)}
.og-dialog__icon .og-icon{width:24px;height:24px}
.og-dialog__icon--bad{background:var(--danger-soft);color:var(--danger-text)}
.og-dialog__title{font:700 21px/1.25 var(--font-sans);letter-spacing:-0.015em}
.og-dialog__desc{font:400 15px/1.5 var(--font-sans);color:var(--text-2);margin-top:6px}
.og-dialog__body{padding:12px 24px 8px}
.og-dialog__foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px 24px}
.og-x{flex:none;margin-left:auto;width:36px;height:36px;border:0;border-radius:10px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--text-2);cursor:pointer}
.og-x:hover{background:var(--bg-hover);color:var(--text-1)}
.og-overlay--drawer{justify-content:flex-end;align-items:stretch;padding:12px;background:oklch(0.2 0.01 70 / .18);backdrop-filter:none;-webkit-backdrop-filter:none}
.og-drawer{display:flex;flex-direction:column;width:100%;max-width:var(--drawer-w);border-radius:var(--radius-xl);background:var(--bg-raised);box-shadow:var(--elev-overlay);animation:og-slide-right var(--dur-slow) var(--ease-out);overflow:hidden}
.og-drawer__head{display:flex;align-items:flex-start;gap:12px;padding:20px 20px 16px 24px;border-bottom:1px solid var(--border-1)}
.og-drawer__body{flex:1;overflow:auto;padding:20px 24px}
.og-drawer__foot{display:flex;gap:10px;justify-content:flex-end;padding:16px 24px;border-top:1px solid var(--border-1);background:var(--bg-surface)}

/* ---------- Accordion ---------- */
.og-acc{border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:0 0 0 1px var(--border-1)}
.og-acc__head{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:0 16px;border:0;background:transparent;border-radius:inherit;cursor:pointer;text-align:left;font:600 15px/1.3 var(--font-sans);color:var(--text-1)}
.og-acc__head:hover{background:var(--bg-hover)}
.og-acc__head>.og-icon:first-child{color:var(--text-3)}
.og-acc__meta{margin-left:auto;font:500 13px/1 var(--font-sans);color:var(--text-3)}
.og-acc__chev{color:var(--text-3);transition:transform var(--dur-base) var(--ease-out)}
.og-acc[data-open="true"] .og-acc__chev{transform:rotate(180deg)}
.og-acc__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-slow) var(--ease-out)}
.og-acc[data-open="true"] .og-acc__panel{grid-template-rows:1fr}
.og-acc__inner{overflow:hidden}
.og-acc__content{padding:4px 16px 18px;display:flex;flex-direction:column;gap:16px}

/* ---------- Empty state ---------- */
.og-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;padding:40px 24px;max-width:440px;margin:0 auto}
.og-empty__tile{width:72px;height:72px;border-radius:22px;display:flex;align-items:center;justify-content:center;color:var(--accent);background:linear-gradient(180deg,var(--bg-raised),var(--accent-soft));box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-1),0 3px 0 var(--lip),var(--shadow-md);transform:rotate(-4deg)}
.og-empty__tile .og-icon{width:32px;height:32px}
.og-empty__title{font:700 20px/1.25 var(--font-sans);letter-spacing:-0.015em}
.og-empty__desc{font:400 16px/1.5 var(--font-sans);color:var(--text-2)}
.og-empty__preview{width:100%;margin-top:8px;padding:12px;border-radius:14px;background:var(--bg-sunken);box-shadow:var(--elev-sunken);opacity:.85;pointer-events:none;-webkit-mask:linear-gradient(180deg,#000 40%,transparent);mask:linear-gradient(180deg,#000 40%,transparent)}

/* ---------- Table ---------- */
.og-table-wrap{overflow:auto;border-radius:var(--radius-card);background:var(--bg-surface);box-shadow:var(--elev-card)}
.og-table{width:100%;border-collapse:separate;border-spacing:0;font:500 14px/1.35 var(--font-sans);font-variant-numeric:tabular-nums}
.og-table th{position:sticky;top:0;z-index:1;height:40px;padding:0 16px;text-align:left;font:600 12px/1 var(--font-sans);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3);background:var(--bg-surface);border-bottom:1px solid var(--border-1);white-space:nowrap}
.og-table td{height:52px;padding:0 16px;border-bottom:1px solid var(--border-1);color:var(--text-1);white-space:nowrap}
.og-table--dense td{height:42px}
.og-table tr:last-child td{border-bottom:0}
.og-table tbody tr{transition:background var(--dur-instant)}
.og-table--clickable tbody tr{cursor:pointer}
.og-table--clickable tbody tr:hover{background:var(--bg-hover)}
.og-table tbody tr[aria-selected="true"]{background:var(--accent-soft)}
.og-table .og-r{text-align:right}
.og-table .og-muted{color:var(--text-2)}

/* ---------- Tabs ---------- */
.og-tabs{position:relative;display:flex;gap:4px;border-bottom:1px solid var(--border-1)}
.og-tab{position:relative;display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 12px;border:0;background:transparent;cursor:pointer;font:600 15px/1 var(--font-sans);color:var(--text-2);transition:color var(--dur-fast)}
.og-tab:hover{color:var(--text-1)}
.og-tab[aria-selected="true"]{color:var(--text-1)}
.og-tab .og-icon{width:17px;height:17px}
.og-tabs__ink{position:absolute;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--accent);transition:transform var(--dur-slow) var(--ease-spring),width var(--dur-slow) var(--ease-spring)}

/* ---------- Sidebar nav ---------- */
.og-nav-item{position:relative;display:flex;align-items:center;gap:12px;width:100%;height:40px;padding:0 12px;border:0;border-radius:10px;background:transparent;cursor:pointer;text-align:left;font:600 15px/1 var(--font-sans);color:var(--text-2);text-decoration:none;transition:background var(--dur-fast),color var(--dur-fast),transform var(--dur-instant)}
.og-nav-item:hover{background:var(--bg-hover);color:var(--text-1);text-decoration:none}
.og-nav-item:active{transform:scale(.985)}
.og-nav-item .og-icon{width:19px;height:19px;color:var(--text-3);transition:color var(--dur-fast)}
.og-nav-item[aria-current="page"]{background:var(--bg-raised);color:var(--text-1);box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-1),0 1.5px 0 var(--lip),var(--shadow-xs)}
.og-nav-item[aria-current="page"] .og-icon{color:var(--accent)}
.og-nav-item__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.og-nav-item__dot{width:8px;height:8px;border-radius:50%}
.og-nav-sec{display:flex;flex-direction:column;gap:2px}
.og-nav-sec__label{display:flex;align-items:center;gap:6px;height:32px;padding:0 12px;margin-top:12px;border:0;background:transparent;font:700 11.5px/1 var(--font-sans);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3);text-align:left;width:100%}
button.og-nav-sec__label{cursor:pointer;border-radius:8px}
button.og-nav-sec__label:hover{color:var(--text-1);background:var(--bg-hover)}
.og-nav-sec__label .og-icon{width:14px;height:14px;transition:transform var(--dur-base) var(--ease-out)}
.og-nav-sec[data-open="true"] .og-nav-sec__label .og-icon{transform:rotate(90deg)}
.og-nav-sec__items{display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--dur-slow) var(--ease-out)}
.og-nav-sec[data-open="false"] .og-nav-sec__items{grid-template-rows:0fr}
.og-nav-sec__inner{overflow:hidden;display:flex;flex-direction:column;gap:2px}

/* ---------- Brand switcher / menu ---------- */
.og-brand{position:relative}
.og-brand__btn{display:flex;align-items:center;gap:10px;width:100%;height:52px;padding:0 10px 0 8px;border:0;border-radius:12px;cursor:pointer;background:var(--bg-raised);color:var(--text-1);text-align:left;box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-1),0 2px 0 var(--lip),var(--shadow-xs);transition:transform var(--dur-instant),box-shadow var(--dur-fast)}
.og-brand__btn:hover{box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-2),0 2px 0 var(--lip),var(--shadow-sm)}
.og-brand__btn:active{transform:translateY(1px)}
.og-brand__name{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.og-brand__name b{font:700 15px/1.1 var(--font-sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.og-brand__name small{font:500 12px/1 var(--font-sans);color:var(--text-3)}
.og-menu{position:absolute;z-index:60;left:0;right:0;top:calc(100% + 8px);min-width:240px;padding:6px;border-radius:14px;background:var(--bg-raised);box-shadow:var(--elev-overlay);animation:og-scale-in var(--dur-fast) var(--ease-out);transform-origin:top}
.og-menu__search{margin:2px 2px 6px}
.og-menu__list{max-height:300px;overflow:auto;display:flex;flex-direction:column;gap:1px}
.og-menu__item{display:flex;align-items:center;gap:10px;width:100%;height:44px;padding:0 10px;border:0;border-radius:9px;background:transparent;cursor:pointer;text-align:left;font:600 14.5px/1 var(--font-sans);color:var(--text-1)}
.og-menu__item:hover,.og-menu__item[data-active="true"]{background:var(--bg-hover)}
.og-menu__item .og-icon{width:18px;height:18px;color:var(--text-3)}
.og-menu__item>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.og-menu__item>.og-icon:last-child{color:var(--accent)}
.og-menu__sep{height:1px;margin:5px 4px;background:var(--border-1)}

/* ---------- Command bar ---------- */
.og-cmd{width:100%;max-width:620px;align-self:flex-start;margin-top:10vh;border-radius:var(--radius-2xl);background:var(--bg-raised);box-shadow:var(--elev-overlay);overflow:hidden;animation:og-scale-in var(--dur-base) var(--ease-spring)}
.og-cmd__input{display:flex;align-items:center;gap:12px;height:64px;padding:0 20px;border-bottom:1px solid var(--border-1)}
.og-cmd__input .og-icon{width:22px;height:22px;color:var(--text-3)}
.og-cmd__input input{flex:1;border:0;outline:0;background:transparent;font:500 19px/1 var(--font-sans);color:var(--text-1)}
.og-cmd__input input::placeholder{color:var(--text-3)}
.og-cmd__list{max-height:380px;overflow:auto;padding:8px}
.og-cmd__group{padding:10px 12px 6px;font:700 11.5px/1 var(--font-sans);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3)}
.og-cmd__item{display:flex;align-items:center;gap:12px;width:100%;height:48px;padding:0 12px;border:0;border-radius:11px;background:transparent;cursor:pointer;text-align:left;font:600 15px/1 var(--font-sans);color:var(--text-1)}
.og-cmd__item[data-active="true"]{background:var(--accent-soft);color:var(--accent-text)}
.og-cmd__item>.og-icon{width:20px;height:20px;color:var(--text-3)}
.og-cmd__item[data-active="true"]>.og-icon{color:var(--accent)}
.og-cmd__item small{margin-left:auto;font:500 13px/1 var(--font-sans);color:var(--text-3)}
.og-cmd__foot{display:flex;gap:16px;align-items:center;padding:10px 16px;border-top:1px solid var(--border-1);font:500 12.5px/1 var(--font-sans);color:var(--text-3);background:var(--bg-surface)}
.og-cmd__foot span{display:inline-flex;gap:6px;align-items:center}


/* ================= v2 · audit refinements ================= */
@keyframes og-scale-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(6px) scale(.97)}}
@keyframes og-fade-out{from{opacity:1}to{opacity:0}}
@keyframes og-slide-out-right{from{transform:none;opacity:1}to{transform:translateX(28px);opacity:0}}
@keyframes og-sheet-up{from{transform:translateY(100%)}to{transform:none}}
@keyframes og-sheet-down{from{transform:none}to{transform:translateY(100%)}}
@keyframes og-toast-out{to{opacity:0;transform:translateY(10px) scale(.96)}}
@keyframes og-timer{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@keyframes og-bump{0%{transform:scale(1)}40%{transform:scale(1.28)}100%{transform:scale(1)}}
@keyframes og-breakout{0%{transform:translate(-3px,3px)}60%{transform:translate(.5px,-.5px)}100%{transform:none}}

/* Icons: inline SVG gets refined 1.75 strokes; small contexts go heavier so they don't look faint */
svg.og-icon{background:none;-webkit-mask:none;mask:none;stroke-width:1.75;overflow:visible}
.og-btn--sm svg.og-icon,.og-pill svg.og-icon,.og-copy__btn svg.og-icon,.og-stat__delta svg.og-icon,.og-stat__label svg.og-icon,.og-health__tip svg.og-icon,.og-error svg.og-icon,.og-branch__label svg.og-icon,.og-term__i,.og-menu__item svg.og-icon,.og-th-sort svg.og-icon{stroke-width:2}
.og-check__box svg.og-icon,.og-choice__mark svg.og-icon,.og-switch__knob svg.og-icon,.og-stepper__dot svg.og-icon,.og-btn__done{stroke-width:3}

/* Buttons */
.og-btn{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.og-btn:focus-visible{outline-offset:3px}
.og-btn__label{min-width:0;overflow:hidden;text-overflow:ellipsis}
.og-btn__kbd{margin-left:2px;margin-right:-6px;padding:3px 6px;border-radius:6px;font:600 11.5px/1 var(--font-sans);letter-spacing:.02em;background:rgb(0 0 0 / .06);color:inherit;opacity:.72}
.og-btn--primary .og-btn__kbd,.og-btn--danger .og-btn__kbd{background:rgb(255 255 255 / .18);opacity:.9}
[data-theme="dark"] .og-btn--secondary .og-btn__kbd,[data-theme="dark"] .og-btn--ghost .og-btn__kbd{background:rgb(255 255 255 / .08)}
.og-btn__done{animation:og-pop var(--dur-slow) var(--ease-spring)}
.og-btn--primary[data-done="true"]{background:linear-gradient(180deg,var(--green-500),var(--green-600));box-shadow:inset 0 1px 0 rgb(255 255 255 / .28),0 3px 0 var(--green-700),0 8px 20px -6px oklch(0.58 0.15 152 / .45)}
.og-btn--secondary[data-done="true"]{color:var(--success-text)}
.og-btn__trail{transition:transform var(--dur-fast) var(--ease-out)}
.og-btn:hover .og-btn__trail{transform:translateX(2px)}
.og-btn[aria-disabled="true"]:hover{box-shadow:inherit}
.og-kbd-combo{display:inline-flex;gap:3px}

/* Avatars */
.og-avatar>span[aria-hidden]{position:relative}
.og-avatar--all{background:linear-gradient(180deg,var(--n-700),var(--n-900));color:#fff}

/* Fields */
.og-label{display:flex;align-items:baseline;gap:8px}
.og-label__opt{font:500 13px/1 var(--font-sans);color:var(--text-3)}
.og-input{cursor:text}
.og-input--select{cursor:pointer}
.og-input input:focus-visible,.og-input select:focus-visible,.og-input textarea:focus-visible{outline:none}
.og-input__affix{flex:none;font:500 15px/1 var(--font-sans);color:var(--text-3);user-select:none}
.og-input__btn{flex:none;display:flex;align-items:center;justify-content:center;width:30px;height:30px;margin-right:-6px;border:0;border-radius:8px;background:transparent;color:var(--text-3);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}
.og-input__btn:hover{background:var(--bg-hover);color:var(--text-1)}
.og-input__btn svg.og-icon{width:17px;height:17px}
.og-input__btn:focus-visible{outline-offset:-1px}
.og-input__ok{display:flex;color:var(--success);animation:og-pop var(--dur-slow) var(--ease-spring)}
.og-input--valid{box-shadow:inset 0 1px 2px oklch(0.25 0.02 70 / .07),inset 0 0 0 1.5px oklch(0.66 0.16 152 / .55)}
.og-input input:-webkit-autofill,.og-input input:-webkit-autofill:hover,.og-input input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text-1);-webkit-box-shadow:0 0 0 100px var(--bg-surface) inset;caret-color:var(--text-1);transition:background-color 9999s}
.og-input input[type=number]::-webkit-inner-spin-button,.og-input input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.og-input input[type=number]{-moz-appearance:textfield}
.og-input input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none}
.og-input select[data-empty="true"]{color:var(--text-3);font-weight:400}
.og-input select option{color:var(--text-1);background:var(--bg-raised)}

/* Checkbox / radio */
.og-check__dash{position:absolute;width:10px;height:2.5px;border-radius:2px;background:#fff;opacity:0}
.og-check input:indeterminate+.og-check__box{background:linear-gradient(180deg,var(--accent-top),var(--accent));box-shadow:inset 0 1px 0 rgb(255 255 255 / .3),0 1.5px 0 var(--accent-lip)}
.og-check input:indeterminate+.og-check__box .og-icon{opacity:0!important;animation:none!important}
.og-check input:indeterminate+.og-check__box .og-check__dash{opacity:1;animation:og-pop var(--dur-slow) var(--ease-spring)}
.og-check--disabled{cursor:not-allowed;opacity:.5}
.og-check--disabled .og-check__box{transform:none!important}

/* Switch: check in the knob so "on" never relies on color alone */
.og-switch__knob{display:flex;align-items:center;justify-content:center;color:var(--success)}
.og-switch__knob svg.og-icon{width:13px;height:13px;opacity:0;transform:scale(.4);transition:opacity var(--dur-fast),transform var(--dur-slow) var(--ease-spring)}
.og-switch input:checked+.og-switch__track .og-switch__knob svg.og-icon{opacity:1;transform:scale(1)}
.og-switch--row{width:100%;flex-direction:row-reverse;justify-content:space-between;align-items:flex-start}
.og-switch--row .og-switch__track{margin-top:-2px}
.og-switch--sm .og-switch__track{width:38px;height:22px}
.og-switch--sm .og-switch__knob{width:16px;height:16px}
.og-switch--sm input:checked+.og-switch__track .og-switch__knob{transform:translateX(16px)}
.og-switch--sm .og-switch__knob svg.og-icon{width:10px;height:10px}
.og-switch--disabled{cursor:not-allowed;opacity:.55}
.og-switch .og-check__text{flex:1;min-width:0}

/* ChoiceCard */
.og-choice:focus-visible{outline-offset:3px}
.og-choice[aria-disabled="true"]{opacity:.5;cursor:not-allowed;transform:none!important}

/* CopyField */
.og-copy__label{flex:none;padding:4px 8px;margin-left:-6px;border-radius:6px;background:var(--bg-raised);box-shadow:inset 0 0 0 1px var(--border-1);font:700 11px/1 var(--font-sans);letter-spacing:.04em;text-transform:uppercase;color:var(--text-2)}
.og-copy__val{cursor:text;user-select:all}
.og-copy__btn[data-fail="true"]{background:var(--warning-soft);color:var(--warning-text)}
.og-copy__btn:focus-visible{outline-offset:1px}

/* Segmented, tabs, nav: inner focus rings */
.og-seg__opt:focus-visible,.og-tab:focus-visible,.og-nav-item:focus-visible,.og-menu__item:focus-visible,.og-cmd__item:focus-visible,.og-acc__head:focus-visible,button.og-nav-sec__label:focus-visible{outline-offset:-2px}
.og-tabs{overflow-x:auto;scrollbar-width:none}
.og-tabs::-webkit-scrollbar{display:none}
.og-tab{flex:none}

/* Counts */
.og-count--bump{animation:og-bump 420ms var(--ease-spring)}

/* Toasts */
.og-toasts{position:fixed;left:50%;bottom:24px;z-index:300;display:flex;flex-direction:column;align-items:center;gap:8px;transform:translateX(-50%);pointer-events:none;width:max-content;max-width:calc(100vw - 32px)}
.og-toasts>*{pointer-events:auto}
.og-toast{position:relative;overflow:hidden}
.og-toast[data-leaving="true"]{animation:og-toast-out 180ms var(--ease-out) forwards}
.og-toast__timer{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgb(255 255 255 / .28);transform-origin:left;animation:og-timer linear forwards}
[data-theme="dark"] .og-toast__timer{background:rgb(0 0 0 / .2)}
.og-toast:hover .og-toast__timer,.og-toast:focus-within .og-toast__timer{animation-play-state:paused}
.og-toast__action:focus-visible,.og-toast__x:focus-visible{outline-color:var(--text-inverse);outline-offset:-2px}

/* Tooltip */
.og-tip{transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
.og-tip__row{display:flex;align-items:center;gap:10px}
.og-tip__keys{display:inline-flex;gap:3px}
.og-tip__keys kbd{min-width:18px;height:18px;padding:0 5px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font:600 11px/1 var(--font-sans);background:rgb(255 255 255 / .16);color:inherit}
[data-theme="dark"] .og-tip__keys kbd{background:rgb(0 0 0 / .1)}
.og-term{display:inline-flex;align-items:center;gap:3px;border-radius:4px}
.og-term__i{width:14px!important;height:14px!important;color:var(--text-3);transition:color var(--dur-fast)}
.og-term:hover .og-term__i,.og-term:focus-visible .og-term__i{color:var(--accent)}

/* Health + stat */
.og-health__tip{text-align:left}
.og-health__go{width:13px!important;height:13px!important;margin-left:-2px;opacity:.7}
.og-stat__info{display:inline-flex;color:var(--text-3);cursor:help;border-radius:50%}
.og-stat__info:hover{color:var(--accent)}
.og-stat__info svg.og-icon{width:15px;height:15px}
.og-stat__go{margin-left:auto;color:var(--text-3);opacity:0;transform:translate(-3px,3px);transition:all var(--dur-fast) var(--ease-out)}
.og-card--interactive:hover .og-stat__go,.og-card--interactive:focus-visible .og-stat__go{opacity:1;transform:none;color:var(--accent)}
.og-card--interactive:focus-visible{outline-offset:3px}

/* Overlays: enter + exit, phone bottom sheets */
.og-overlay[data-state="closing"]{animation:og-fade-out 170ms var(--ease-out) forwards;pointer-events:none}
.og-dialog[data-state="closing"],.og-cmd[data-state="closing"]{animation:og-scale-out 160ms var(--ease-out) forwards}
.og-drawer[data-state="closing"]{animation:og-slide-out-right 190ms var(--ease-out) forwards}
.og-menu[data-state="closing"]{animation:og-scale-out 130ms var(--ease-out) forwards;pointer-events:none}
.og-dialog:focus,.og-drawer:focus{outline:none}
.og-overlay--top{align-items:flex-start}
.og-dialog__foot{flex-wrap:wrap}
@media (max-width:640px){
.og-overlay:not(.og-overlay--drawer):not(.og-overlay--top){align-items:flex-end;padding:0}
.og-dialog{max-width:none;max-height:92%;border-radius:22px 22px 0 0;animation:og-sheet-up var(--dur-slow) var(--ease-out)}
.og-dialog[data-state="closing"]{animation:og-sheet-down 180ms var(--ease-out) forwards}
.og-dialog__foot{flex-direction:column-reverse}
.og-dialog__foot .og-btn{width:100%;height:var(--control-lg)}
.og-overlay--drawer{padding:0}
.og-drawer{max-width:none!important;border-radius:0}
.og-cmd{margin-top:12px}
}

/* Accordion */
.og-acc__head{border-radius:var(--radius-lg)}
.og-acc__meta:empty{display:none}
.og-acc__meta{margin-left:auto}
.og-acc__meta:empty+.og-acc__chev{margin-left:auto}

/* Empty state */
.og-empty__actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}

/* Table */
.og-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.og-th-sort{display:inline-flex;align-items:center;gap:5px;height:28px;margin:0 -6px;padding:0 6px;border:0;border-radius:6px;background:transparent;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}
.og-th-sort:hover{background:var(--bg-hover);color:var(--text-1)}
.og-th-sort svg.og-icon{width:13px;height:13px;opacity:0;transition:opacity var(--dur-fast),transform var(--dur-fast)}
.og-th-sort:hover svg.og-icon{opacity:.5}
.og-th-sort[data-active="true"]{color:var(--text-1)}
.og-th-sort[data-active="true"] svg.og-icon{opacity:1;color:var(--accent)}
.og-table tbody tr:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.og-td-go{width:40px;padding:0 12px 0 0!important;text-align:right;color:var(--text-3)}
.og-td-go svg.og-icon{width:17px;height:17px;opacity:0;transform:translateX(-4px);transition:all var(--dur-fast) var(--ease-out)}
.og-table--clickable tbody tr:hover .og-td-go svg.og-icon,.og-table--clickable tbody tr:focus-visible .og-td-go svg.og-icon,.og-table tbody tr[aria-selected="true"] .og-td-go svg.og-icon{opacity:1;transform:none;color:var(--accent)}
.og-table__empty{height:120px!important;text-align:center;color:var(--text-2)!important;white-space:normal!important}
.og-trunc{display:inline-block;max-width:280px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}

/* Brand switcher + menus */
.og-menu__note{flex:none!important;font:600 11.5px/1 var(--font-sans);color:var(--warning-text);background:var(--warning-soft);padding:4px 7px;border-radius:999px}
.og-menu__check{color:var(--accent)!important;width:17px!important;height:17px!important}
.og-menu__empty{padding:14px 10px;font:var(--type-small);color:var(--text-2);text-align:center}
.og-menu__plus{width:34px;height:34px;flex:none;border-radius:28%;display:flex;align-items:center;justify-content:center;color:var(--text-2);box-shadow:inset 0 0 0 1.5px var(--border-2);border:0}
.og-menu-wrap{position:relative;display:inline-flex}
.og-menu--float{left:auto;right:auto;min-width:0}
.og-menu--end{right:0}
.og-menu--start{left:0}
.og-menu--up{top:auto;bottom:calc(100% + 8px);transform-origin:bottom}
.og-menu__item--danger{color:var(--danger-text)}
.og-menu__item--danger svg.og-icon{color:var(--danger-text)!important}
.og-menu__item[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
.og-menu__kbd{flex:none!important;font:600 12px/1 var(--font-sans);color:var(--text-3);letter-spacing:.04em}
.og-menu--float .og-menu__item{height:40px;font-size:14.5px}

/* Command bar */
.og-cmd__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.og-cmd__item small{margin-left:12px}
.og-cmd__enter{width:16px!important;height:16px!important;color:var(--accent)!important;margin-left:8px}
.og-hl{background:transparent;color:inherit;font-weight:800;text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:3px}
.og-cmd__empty{display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center;padding:32px 20px;font:var(--type-small);color:var(--text-2)}
.og-cmd__empty b{font:700 15px/1.3 var(--font-sans);color:var(--text-1)}

/* Stepper */
.og-stepper{display:flex;align-items:center;gap:10px;margin:0;padding:0;list-style:none}
.og-stepper__step{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.og-stepper__step:last-child{flex:none}
.og-stepper__hit{display:flex;align-items:center;gap:10px;padding:4px;margin:-4px;border:0;border-radius:999px;background:transparent;font:inherit;color:inherit}
button.og-stepper__hit{cursor:pointer}
button.og-stepper__hit:hover .og-stepper__label{color:var(--text-1);text-decoration:underline;text-underline-offset:3px}
.og-stepper__dot{width:30px;height:30px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;font:800 14px/1 var(--font-sans);font-variant-numeric:tabular-nums;color:var(--text-3);background:var(--bg-sunken);box-shadow:var(--elev-sunken);transition:all var(--dur-slow) var(--ease-spring)}
.og-stepper__dot svg.og-icon{width:16px;height:16px;animation:og-pop var(--dur-slow) var(--ease-spring)}
.og-stepper__step[data-state="current"] .og-stepper__dot{color:#fff;background:linear-gradient(180deg,var(--accent-top),var(--accent));box-shadow:inset 0 1px 0 rgb(255 255 255 / .3),0 2px 0 var(--accent-lip),0 0 0 5px var(--accent-soft);transform:scale(1.06)}
.og-stepper__step[data-state="done"] .og-stepper__dot{color:#fff;background:var(--success);box-shadow:inset 0 1px 0 rgb(255 255 255 / .3),0 2px 0 var(--green-700)}
.og-stepper__label{font:600 15px/1.2 var(--font-sans);color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.og-stepper__step[data-state="current"] .og-stepper__label{color:var(--text-1)}
.og-stepper__step[data-state="done"] .og-stepper__label{color:var(--text-2)}
.og-stepper__bar{flex:1;min-width:16px;height:2px;border-radius:2px;background:var(--border-2);transition:background var(--dur-slow)}
.og-stepper__step[data-state="done"] .og-stepper__bar{background:var(--success)}
@media (max-width:560px){.og-stepper__step:not([data-state="current"]) .og-stepper__label{display:none}}

/* Alert */
.og-alert{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--elev-card);position:relative;overflow:hidden}
.og-alert::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,var(--tone-soft,var(--accent-soft)),transparent 72%)}
.og-alert>*{position:relative}
.og-alert__icon{flex:none;width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--accent);box-shadow:inset 0 1px 0 rgb(255 255 255 / .35),0 2px 0 var(--accent-lip)}
.og-alert__icon svg.og-icon{width:21px;height:21px}
.og-alert__body{flex:1;min-width:0}
.og-alert__title{font:700 16px/1.3 var(--font-sans);letter-spacing:-0.005em}
.og-alert__desc{font:var(--type-small);color:var(--text-2);margin-top:3px}
.og-alert__action{flex:none;display:flex;gap:8px}
.og-alert--good::before{background:linear-gradient(90deg,var(--success-soft),transparent 72%)}
.og-alert--good .og-alert__icon{background:var(--green-600);box-shadow:inset 0 1px 0 rgb(255 255 255 / .35),0 2px 0 var(--green-700)}
.og-alert--warn::before{background:linear-gradient(90deg,var(--warning-soft),transparent 72%)}
.og-alert--warn .og-alert__icon{background:var(--warning);color:var(--n-950);box-shadow:inset 0 1px 0 rgb(255 255 255 / .45),0 2px 0 var(--amber-700)}
.og-alert--bad::before{background:linear-gradient(90deg,var(--danger-soft),transparent 72%)}
.og-alert--bad .og-alert__icon{background:var(--red-600);box-shadow:inset 0 1px 0 rgb(255 255 255 / .3),0 2px 0 var(--red-700)}
@media (max-width:560px){.og-alert{flex-wrap:wrap}.og-alert__action{width:100%}}

/* Logo */
.og-logo{display:inline-flex;align-items:center;flex:none;line-height:1}
.og-logo__mark{display:block;flex:none;overflow:visible}
.og-logo__word{font-family:var(--font-sans);font-weight:800;letter-spacing:-0.035em;line-height:1;transform:translateY(-0.02em)}
.og-logo__piece{transition:transform var(--dur-slow) var(--ease-spring)}
.og-logo:hover .og-logo__piece{transform:translate(.6px,-.6px)}
.og-logo--animate .og-logo__piece{animation:og-breakout 700ms var(--ease-spring) 120ms both}
.og-logo--icon{display:inline-flex;align-items:center;justify-content:center;background:var(--blue-600)}

/* Reduced motion: keep feedback, drop movement */
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}
.og-celebrate__burst,.og-flow-line--live{animation:none!important}
.og-skel{animation:none!important}
}

/* ================= v3 · Journey canvas (deep QA pass) ================= */
@keyframes og-node-in{0%{opacity:0;transform:translateY(-8px) scale(.965)}55%{opacity:1}100%{opacity:1;transform:none}}
@keyframes og-node-out{to{opacity:0;transform:scale(.94)}}
@keyframes og-grow{from{transform:scaleY(0)}to{transform:none}}
@keyframes og-flow-dot{0%{transform:translate(-50%,-4px);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translate(-50%,var(--len,60px));opacity:0}}
@keyframes og-breathe{0%{box-shadow:inset 0 1px 0 rgb(255 255 255 / .3),inset 0 -2px 0 rgb(0 0 0 / .14),0 0 0 0 oklch(0.615 0.2 262 / .45)}70%{box-shadow:inset 0 1px 0 rgb(255 255 255 / .3),inset 0 -2px 0 rgb(0 0 0 / .14),0 0 0 8px transparent}100%{box-shadow:inset 0 1px 0 rgb(255 255 255 / .3),inset 0 -2px 0 rgb(0 0 0 / .14),0 0 0 0 transparent}}
@keyframes og-dotpulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
@keyframes og-pick-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@keyframes og-pick-in-r{from{opacity:0;transform:translateX(-8px) scale(.96)}to{opacity:1;transform:none}}
@keyframes og-pick-in-l{from{opacity:0;transform:translateX(8px) scale(.96)}to{opacity:1;transform:none}}
@keyframes og-pick-out{to{opacity:0;transform:scale(.97)}}

.og-flow{display:flex;flex-direction:column;align-items:center;min-width:max-content;padding:8px 24px}
/* Rolling numbers */
.og-roll{display:inline-flex;font-variant-numeric:tabular-nums;line-height:1.1;vertical-align:top}
.og-roll__d{display:inline-block;height:1.1em;overflow:hidden}
.og-roll__strip{display:flex;flex-direction:column;transition-property:transform;transition-timing-function:var(--ease-spring)}
.og-roll__strip>span{display:block;height:1.1em;line-height:1.1em;text-align:center}
.og-roll__c{display:inline-block;height:1.1em;line-height:1.1em}

/* Node */
.og-node{position:relative;width:340px;max-width:100%;border-radius:18px;background:var(--bg-raised);text-align:left;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;
box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-1),0 3px 0 var(--lip),var(--shadow-md);
transition:transform 170ms var(--ease-out),box-shadow 170ms var(--ease-out);animation:og-node-in 340ms var(--ease-spring) both}
.og-node:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-2),0 5px 0 var(--lip),var(--shadow-lg)}
.og-node:active{transform:translateY(1px);transition-duration:70ms;box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-2),0 1px 0 var(--lip),var(--shadow-sm)}
.og-node[aria-pressed="true"]{box-shadow:inset 0 1px 0 var(--hl),0 0 0 2px var(--accent),0 4px 0 var(--accent-lip),0 0 0 7px var(--accent-soft),var(--shadow-lg)}
.og-node--issue{box-shadow:inset 0 1px 0 var(--hl),0 0 0 2px var(--warning),0 3px 0 var(--amber-700),var(--shadow-md)}
.og-node--issue:hover{box-shadow:inset 0 1px 0 var(--hl),0 0 0 2px var(--warning),0 5px 0 var(--amber-700),var(--shadow-lg)}
.og-node--issue[aria-pressed="true"]{box-shadow:inset 0 1px 0 var(--hl),0 0 0 2px var(--warning),0 4px 0 var(--amber-700),0 0 0 7px var(--warning-soft),var(--shadow-lg)}
.og-node:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.og-node[data-leaving="true"]{animation:og-node-out 160ms var(--ease-out) forwards;pointer-events:none}
.og-node__main{display:flex;align-items:center;gap:14px;padding:14px 16px}
.og-node__icon{position:relative;flex:none;width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--accent);box-shadow:inset 0 1px 0 rgb(255 255 255 / .3),inset 0 -2px 0 rgb(0 0 0 / .14);transition:transform 260ms var(--ease-spring)}
.og-node__icon svg.og-icon{width:22px;height:22px;stroke-width:2}
.og-node:hover .og-node__icon{transform:rotate(-5deg) scale(1.05)}
.og-node:active .og-node__icon{transform:scale(.94)}
.og-node--live .og-node__icon{animation:og-breathe 2.2s var(--ease-out) infinite}
.og-node--trigger .og-node__icon{background:var(--n-800)}
[data-theme="dark"] .og-node--trigger .og-node__icon{background:var(--n-600)}
.og-node--condition .og-node__icon{background:var(--amber-600)}
.og-node--action .og-node__icon{background:var(--brand-teal)}
.og-node--task .og-node__icon{background:var(--brand-iris)}
.og-node--goal .og-node__icon{background:var(--green-600)}
.og-node--exit .og-node__icon{background:var(--n-500)}
.og-node__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.og-node__kind{display:flex;align-items:center;gap:7px;font:700 11.5px/1 var(--font-sans);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3)}
.og-node__step{min-width:18px;height:18px;padding:0 5px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font:800 11px/1 var(--font-sans);letter-spacing:0;font-variant-numeric:tabular-nums;color:var(--text-2);background:var(--bg-sunken);box-shadow:inset 0 0 0 1px var(--border-1)}
.og-node[aria-pressed="true"] .og-node__step{color:#fff;background:var(--accent);box-shadow:none}
.og-node__title{font:700 16px/1.28 var(--font-sans);letter-spacing:-0.01em;color:var(--text-1);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.og-node__sub{font:500 13.5px/1.3 var(--font-sans);color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.og-node__issue{display:flex;align-items:center;gap:8px;margin:-4px 10px 10px;padding:8px 10px;border-radius:10px;background:var(--warning-soft);color:var(--warning-text);font:600 13px/1.3 var(--font-sans)}
.og-node__issue svg.og-icon{width:15px;height:15px;stroke-width:2;flex:none}
.og-node__issue span{flex:1;min-width:0}
.og-node__issue-go{opacity:0;transform:translateX(-3px);transition:all 150ms var(--ease-out)}
.og-node:hover .og-node__issue-go,.og-node[aria-pressed="true"] .og-node__issue-go{opacity:1;transform:none}
.og-node__stats{display:flex;border-top:1px solid var(--border-1)}
.og-node__stat{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;padding:9px 12px 10px 16px}
.og-node__stat+.og-node__stat{border-left:1px solid var(--border-1)}
.og-node__stat b{display:inline-flex;align-items:center;gap:6px;font:800 16px/1.1 var(--font-sans);color:var(--text-1)}
.og-node__stat>span{font:600 11.5px/1 var(--font-sans);color:var(--text-3)}
.og-node__stat--live b{color:var(--accent-text)}
.og-node__pulse{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:og-dotpulse 1.6s ease-in-out infinite}
/* Hover toolbar */
.og-node__tools{position:absolute;top:-17px;right:12px;z-index:3;display:flex;gap:2px;padding:3px;border-radius:11px;background:var(--bg-raised);box-shadow:var(--elev-floating);opacity:0;transform:translateY(5px) scale(.94);pointer-events:none;transition:opacity 130ms var(--ease-out),transform 200ms var(--ease-spring)}
.og-node:hover .og-node__tools,.og-node:focus-within .og-node__tools,.og-node[aria-pressed="true"] .og-node__tools{opacity:1;transform:none;pointer-events:auto}
.og-node__tool{width:30px;height:30px;border:0;border-radius:8px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--text-2);cursor:pointer;transition:background 110ms,color 110ms,transform 80ms}
.og-node__tool:hover{background:var(--bg-hover);color:var(--text-1)}
.og-node__tool:active{transform:scale(.88)}
.og-node__tool--danger:hover{background:var(--danger-soft);color:var(--danger-text)}
.og-node__tool svg.og-icon{width:16px;height:16px;stroke-width:2}
.og-node__tool:focus-visible{outline-offset:-1px}
/* Wait pill */
.og-node--wait{width:auto;border-radius:999px;box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-1),0 2px 0 var(--lip),var(--shadow-sm)}
.og-node--wait:hover{box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-2),0 4px 0 var(--lip),var(--shadow-md)}
.og-node--wait[aria-pressed="true"]{box-shadow:inset 0 1px 0 var(--hl),0 0 0 2px var(--accent),0 3px 0 var(--accent-lip),0 0 0 6px var(--accent-soft),var(--shadow-md)}
.og-node--wait .og-node__main{padding:6px 8px 6px 6px;gap:10px}
.og-node--wait .og-node__icon{width:32px;height:32px;border-radius:50%;background:var(--n-500)}
.og-node--wait .og-node__icon svg.og-icon{width:17px;height:17px}
.og-node--wait .og-node__title{font-size:14.5px;-webkit-line-clamp:1;white-space:nowrap;padding-right:8px}
.og-node--wait .og-node__tools{top:-15px;right:-10px}
.og-node__waitcount{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font:700 12.5px/1 var(--font-sans);font-variant-numeric:tabular-nums;white-space:nowrap}

/* Connector + add */
.og-flow-conn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:44px;flex:none}
.og-flow-conn--open{z-index:20}
.og-flow-conn__line{position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;border-radius:2px;background:var(--border-strong);transform-origin:top;animation:og-grow 240ms var(--ease-out) both}
.og-flow-conn--live .og-flow-conn__line{background:var(--accent-soft-2)}
.og-flow-dot{position:absolute;left:50%;top:0;z-index:1;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);animation:og-flow-dot 1.8s linear infinite;pointer-events:none}
.og-flow-add{position:relative;z-index:2;width:34px;height:34px;border:0;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-2);background:var(--bg-raised);box-shadow:inset 0 1px 0 var(--hl),0 0 0 1px var(--border-2),0 2px 0 var(--lip),var(--shadow-xs);transition:transform 220ms var(--ease-spring),background 140ms,color 140ms,box-shadow 140ms}
.og-flow-add::before{content:"";position:absolute;inset:-9px;border-radius:50%}
.og-flow-add:hover,.og-flow-add[aria-expanded="true"]{transform:scale(1.14);color:#fff;background:var(--accent);box-shadow:inset 0 1px 0 rgb(255 255 255 / .3),0 2px 0 var(--accent-lip),var(--shadow-accent)}
.og-flow-add:active{transform:scale(.92);transition-duration:70ms}
.og-flow-add svg.og-icon{width:18px;height:18px;stroke-width:2.25;transition:transform 260ms var(--ease-spring)}
.og-flow-add:hover svg.og-icon{transform:rotate(90deg)}
.og-flow-add[aria-expanded="true"] svg.og-icon{transform:rotate(135deg)}
.og-flow-add:focus-visible{outline-offset:3px}
/* Inline step picker (portaled, fixed — never clipped by the canvas) */
.og-flow-pick{position:fixed;z-index:400;width:300px;padding:6px;border-radius:16px;background:var(--bg-raised);box-shadow:var(--elev-overlay);animation:og-pick-in 220ms var(--ease-spring) both}
.og-flow-pick--right{transform-origin:left center;animation-name:og-pick-in-r}
.og-flow-pick--left{transform-origin:right center;animation-name:og-pick-in-l}
.og-flow-pick[data-state="closing"]{animation:og-pick-out 120ms var(--ease-out) forwards;pointer-events:none}
.og-flow-pick::before{content:"";position:absolute;top:var(--arrow,50%);width:12px;height:12px;margin-top:-6px;background:var(--bg-raised);transform:rotate(45deg);border-radius:2px}
.og-flow-pick--right::before{left:-5px;box-shadow:-1px 1px 0 var(--border-2)}
.og-flow-pick--left::before{right:-5px;box-shadow:1px -1px 0 var(--border-2)}
.og-flow-pick__head{position:relative;padding:8px 10px 6px;font:700 11.5px/1 var(--font-sans);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--text-3)}
.og-flow-pick__opt{position:relative;display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:0;border-radius:11px;background:transparent;text-align:left;cursor:pointer;color:var(--text-1);transition:background 100ms,transform 80ms}
.og-flow-pick__opt:hover,.og-flow-pick__opt:focus-visible{background:var(--bg-hover);outline:none}
.og-flow-pick__opt:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}
.og-flow-pick__opt:active{transform:scale(.98)}
.og-flow-pick__ico{flex:none;width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#fff;background:var(--accent);box-shadow:inset 0 1px 0 rgb(255 255 255 / .3),inset 0 -2px 0 rgb(0 0 0 / .14);transition:transform 220ms var(--ease-spring)}
.og-flow-pick__opt:hover .og-flow-pick__ico,.og-flow-pick__opt:focus-visible .og-flow-pick__ico{transform:rotate(-6deg) scale(1.06)}
.og-flow-pick__ico svg.og-icon{width:19px;height:19px;stroke-width:2}
.og-flow-pick__ico[data-kind="wait"]{background:var(--n-500)}
.og-flow-pick__ico[data-kind="condition"]{background:var(--amber-600)}
.og-flow-pick__ico[data-kind="action"]{background:var(--brand-teal)}
.og-flow-pick__ico[data-kind="goal"]{background:var(--green-600)}
.og-flow-pick__ico[data-kind="task"]{background:var(--brand-iris)}
.og-flow-pick__txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.og-flow-pick__t{font:700 14.5px/1.2 var(--font-sans)}
.og-flow-pick__d{font:500 12.5px/1.3 var(--font-sans);color:var(--text-2)}
.og-flow-pick__k{flex:none;min-width:22px;height:22px;padding:0 6px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font:700 12px/1 var(--font-sans);color:var(--text-3);background:var(--bg-sunken);box-shadow:inset 0 0 0 1px var(--border-1)}
.og-flow-pick--sheet{left:12px;right:12px;bottom:12px;width:auto;border-radius:20px;animation:og-sheet-up var(--dur-slow) var(--ease-out)}
.og-flow-pick--sheet::before{display:none}
.og-flow-pick--sheet[data-state="closing"]{animation:og-sheet-down 160ms var(--ease-out) forwards}
.og-flow-pick--sheet .og-flow-pick__opt{padding:12px}
/* Branch */
.og-branch{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;width:max-content;min-width:min(680px,100%);padding-top:40px}
.og-branch--merge{padding-bottom:40px}
.og-branch__svg{position:absolute;left:0;top:0;pointer-events:none;overflow:visible}
.og-branch__path{fill:none;stroke:var(--border-strong);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.og-branch--live .og-branch__path{stroke:var(--accent-soft-2)}
@keyframes og-motion{0%{offset-distance:0%;opacity:0}12%{opacity:1}88%{opacity:1}100%{offset-distance:100%;opacity:0}}
.og-branch__fdot{position:absolute;left:0;top:0;z-index:2;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);offset-rotate:0deg;animation:og-motion 2s linear infinite;pointer-events:none}
.og-branch__col{position:relative;display:flex;flex-direction:column;align-items:center;min-width:300px}
.og-branch__col>.og-node{width:100%;max-width:310px}
.og-branch__label{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:999px;font:800 12.5px/1 var(--font-sans);letter-spacing:.02em;color:#fff;white-space:nowrap;box-shadow:inset 0 1px 0 rgb(255 255 255 / .25),0 2px 0 rgb(0 0 0 / .16)}
.og-branch__label--yes{background:var(--green-600)}
.og-branch__label--no{background:var(--n-500)}
.og-branch__label svg.og-icon{width:14px;height:14px;stroke-width:3}
.og-branch__label b{margin-left:3px;padding:3px 7px;border-radius:999px;background:rgb(255 255 255 / .2);font-weight:800;font-variant-numeric:tabular-nums}
/* End cap */
.og-flow-end{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 14px 0 11px;border-radius:999px;background:var(--bg-sunken);box-shadow:var(--elev-sunken);font:600 13px/1 var(--font-sans);color:var(--text-2);animation:og-node-in 340ms var(--ease-spring) both}
.og-flow-end i{width:8px;height:8px;border-radius:50%;background:var(--text-3)}
@media (prefers-reduced-motion:reduce){.og-flow-dot,.og-branch__fdot,.og-node__pulse{display:none}.og-node--live .og-node__icon{animation:none}.og-roll__strip{transition-duration:0ms!important}}
