.card-link,.card-link:hover{color:var(--ink)}.btn{justify-content:center;align-items:center;gap:var(--sp-2);white-space:nowrap;font:500 var(--fs-label) / 1.3 var(--ui);height:var(--control-h);padding:0 var(--sp-4);border-radius:var(--r-full);cursor:pointer;color:var(--ink);transition:background var(--dur-fast) var(--ease-std), box-shadow var(--dur-fast) var(--ease-std), transform var(--dur-fast) var(--ease-std), color var(--dur-fast) var(--ease-std), border-color var(--dur-fast) var(--ease-std);background:0 0;border:1px solid #0000;display:inline-flex}.btn svg{stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none}.btn svg.btn-ico-stop{fill:var(--error);stroke:var(--error)}.btn-cost{font:500 var(--fs-secondary) / 1 var(--mono);letter-spacing:.06em;white-space:nowrap;font-variant-numeric:tabular-nums}.btn--filled{background:var(--primary);color:var(--on-primary)}.btn--filled:hover{background:var(--primary-hover)}.btn--filled:active{background:var(--primary)}.btn--tonal{background:var(--primary-cont);color:var(--on-primary-cont);border-color:var(--primary-cont-line)}.btn--tonal:hover{border-color:var(--on-primary-cont)}.btn--elevated{background:var(--surface-high);color:var(--ink);box-shadow:var(--e1)}.btn--elevated:hover{box-shadow:var(--e2);transform:translateY(-1px)}.btn--elevated:active{box-shadow:var(--e1);transform:none}.btn--outlined{background:var(--surface-high);color:var(--ink);border-color:var(--outline-strong)}.btn--outlined:hover{background:var(--well)}.btn--text{color:var(--primary);padding:0 var(--sp-2);background:0 0}.btn--text:hover{color:var(--primary-hover)}.btn--ink{background:var(--inv-surface);color:var(--inv-ink)}.btn--ink:hover{box-shadow:var(--e1)}.btn--ink .btn-cost{color:var(--inv-accent)}.btn--on-inverse{background:var(--inv-accent);color:var(--inv-surface)}.btn--on-inverse:hover{background:color-mix(in oklch, var(--inv-accent) 88%, var(--inv-ink))}.btn--on-inverse:active{background:var(--inv-accent)}.btn--on-inverse-outlined{color:var(--inv-ink);border-color:var(--inv-muted);background:0 0}.btn--on-inverse-outlined:hover{background:color-mix(in oklch, var(--inv-ink) 12%, transparent)}.btn--on-inverse-outlined:active{background:0 0}.btn--on-inverse,.btn--on-inverse-outlined{--focus-ring:var(--inv-ink)}.btn--flat{border-radius:0}.btn--cta{height:var(--control-h-cta);padding:0 var(--sp-5)}.btn--busy-plain{padding-inline:var(--sp-1)}.btn--cta.btn--busy-plain{padding-inline:var(--sp-2)}.btn:disabled{opacity:.38}.btn:disabled,.btn[aria-disabled=true]{cursor:default}.btn[aria-busy=true]:not(:disabled){opacity:1;cursor:progress}.btn--on-inverse:disabled,.btn--on-inverse-outlined:disabled{opacity:1;color:var(--inv-muted);border-color:var(--inv-muted);background:0 0}.btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.btn-spin{box-sizing:border-box;width:16px;height:16px;animation:btn-rot var(--dur-ambient) linear infinite;border:2px solid;border-top-color:#0000;border-radius:50%;flex:none;display:inline-block}@keyframes btn-rot{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.btn-spin{animation-duration:2.8s}}@keyframes od-shimmer{to{background-position:-200% 0}}.od-skel{border-radius:var(--r-xs);background:linear-gradient(90deg, var(--well) 25%, var(--surface-high) 37%, var(--well) 63%);animation:od-shimmer var(--dur-ambient) var(--ease-std) infinite;background-size:200% 100%}.od-skel--plate{width:120px;height:160px}.od-skel--line{width:100%;height:12px}.od-skel--chip{border-radius:var(--r-full);width:72px;height:24px}.od-loading{gap:var(--sp-2);flex-direction:column;display:flex}.od-loading__text{font:400 var(--fs-secondary) / 1.5 var(--ui);color:var(--ink-3)}.chip{align-items:center;gap:var(--sp-2);white-space:nowrap;height:32px;padding:0 var(--sp-3);border-radius:var(--r-full);border:1px solid var(--outline-strong);background:var(--surface-high);color:var(--ink);font:500 var(--fs-label) / 1.3 var(--ui);cursor:pointer;transition:background var(--dur-fast) var(--ease-std), border-color var(--dur-fast) var(--ease-std), color var(--dur-fast) var(--ease-std);display:inline-flex;position:relative}.chip:before{content:"";border-radius:var(--r-full);position:absolute;inset:-2px 0}.chip svg{stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none}.chip:hover{background:var(--well)}.chip:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.chip--suggestion{border-style:dashed}.chip-x{color:var(--ink-muted);margin-left:2px}.chip[aria-pressed=true]{background:var(--primary-cont);color:var(--on-primary-cont);border-color:var(--primary-cont-line)}.chip[aria-pressed=true] .chip-x{color:var(--on-primary-cont)}.chip:disabled{opacity:.38;cursor:default;background:var(--surface-high)}.chip[aria-haspopup=menu]{min-width:0;max-width:100%}.chip[aria-expanded=true] .chip-chevron{transform:rotate(180deg)}.chip--status{align-items:center;gap:var(--sp-1);white-space:nowrap;height:24px;padding:0 calc(var(--sp-2) + var(--sp-1));border-radius:var(--r-full);font:500 var(--fs-secondary) / 1 var(--mono);letter-spacing:.04em;font-variant-numeric:tabular-nums;border:1px solid #0000;display:inline-flex}.chip--status .dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.tone-pass{background:var(--success-cont);color:var(--success-text);border-color:var(--success-line)}.tone-fail{background:var(--error-cont);color:var(--error-text);border-color:var(--error-line)}.tone-warn{background:var(--warn-cont);color:var(--warn-text);border-color:var(--warn-line)}.tone-run{background:var(--primary-cont);color:var(--on-primary-cont);border-color:var(--primary-cont-line)}.chip--status-ui{font-family:var(--ui);letter-spacing:normal;white-space:normal;height:auto;min-height:24px}.chip--inline{box-sizing:border-box;height:20px;min-height:0;padding:0 var(--sp-2);white-space:nowrap;vertical-align:top}.tone-neutral{background:var(--well);color:var(--ink-2);border-color:var(--outline-strong)}.chip--truncate{white-space:nowrap;min-width:0;max-width:100%}.chip--truncate>svg{flex:none}.chip--truncate .chip-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
