.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:1px solid var(--color-line-strong);border-radius:var(--radius);background:var(--color-surface);color:var(--color-ink);font-weight:600;font-size:var(--text-sm);line-height:1.2;text-decoration:none;white-space:nowrap;transition:transform var(--duration-fast) var(--ease-out-expo),box-shadow var(--duration-fast),background var(--duration-fast),border-color var(--duration-fast)}.btn:hover{transform:translateY(-1px);border-color:var(--color-ink);box-shadow:var(--shadow-sm)}.btn:active{transform:translateY(0);box-shadow:none}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn--primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink)}.btn--primary:hover{background:var(--color-accent-strong);border-color:var(--color-accent-strong);box-shadow:var(--shadow-accent)}.btn--secondary{background:var(--color-accent-soft);border-color:transparent;color:var(--color-accent)}.btn--secondary:hover{border-color:var(--color-accent)}.btn--ghost{background:transparent}.btn--ghost,.btn--ghost:hover{border-color:transparent;box-shadow:none}.btn--ghost:hover{background:var(--color-surface-sunken)}.btn--block{width:100%}.btn--lg{padding:var(--space-4) var(--space-6);font-size:var(--text-base)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.badge--available{background:var(--color-available-bg);color:var(--color-available-strong)}.badge--unavailable{background:var(--color-unavailable-bg);color:var(--color-ink-faint)}.badge--amber{background:var(--color-amber-bg);color:var(--color-amber)}.badge__dot{width:7px;height:7px;background:currentColor}.badge__dot,.chip{border-radius:var(--radius-pill)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:3px var(--space-3);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;border:1px solid var(--color-line-strong);color:var(--color-ink-soft)}.chip--pro{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-ink);text-transform:uppercase}.avail{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:700;border:1px solid transparent}.avail--yes{background:var(--color-available-bg);color:var(--color-available-strong);border-color:oklch(54% .16 150/.25)}.avail--no{background:transparent;color:var(--color-ink-faint);border-color:var(--color-line);font-weight:600}.avail__dot{width:7px;height:7px;border-radius:var(--radius-pill);background:currentColor;flex:none}.avail--yes .avail__dot{box-shadow:0 0 0 3px var(--color-available-bg)}.chain-badge{display:inline-flex;align-items:center;padding:1px var(--space-2);border-radius:var(--radius-sm);font-size:.7rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--chain-color,var(--color-ink-soft));background:color-mix(in oklch,var(--chain-color,var(--color-ink-soft)) 14%,transparent)}.chain-badge[data-chain=OBI]{--chain-color:var(--chain-obi)}.chain-badge[data-chain=TOOM]{--chain-color:var(--chain-toom)}.chain-badge[data-chain=HORNBACH]{--chain-color:var(--chain-hornbach)}.chain-badge[data-chain=BAUHAUS]{--chain-color:var(--chain-bauhaus)}.chain-badge[data-chain=GLOBUS]{--chain-color:var(--chain-globus)}.chain-badge[data-chain=HAGEBAU]{--chain-color:var(--chain-hagebau)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-faint);font-weight:700}.input{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-line-strong);border-radius:var(--radius);background:var(--color-surface-raised);color:var(--color-ink);font:inherit;transition:border-color var(--duration-fast),box-shadow var(--duration-fast)}.input::placeholder{color:var(--color-ink-faint)}.input:focus{outline:none;border-color:var(--color-accent);box-shadow:var(--ring)}.check{display:inline-flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);font-weight:500;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.check__box{position:relative;width:20px;height:20px;flex:none;border:1.5px solid var(--color-line-strong);border-radius:var(--radius-sm);background:var(--color-surface-raised);transition:background var(--duration-fast),border-color var(--duration-fast)}.check__box:after{content:"";position:absolute;inset:0;margin:auto;width:5px;height:9px;border:solid var(--color-accent-ink);border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg) scale(0);transition:transform var(--duration-fast) var(--ease-out-expo)}.check input{position:absolute;opacity:0;width:0;height:0}.check input:checked+.check__box{background:var(--color-accent);border-color:var(--color-accent)}.check input:checked+.check__box:after{transform:translateY(-1px) rotate(45deg) scale(1)}.check input:focus-visible+.check__box{box-shadow:var(--ring)}.switch{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-3);cursor:pointer;font-size:var(--text-sm);font-weight:600}.switch__track{position:relative;width:42px;height:24px;flex:none;border-radius:var(--radius-pill);background:var(--color-line-strong);transition:background var(--duration-normal) var(--ease-out-expo)}.switch__track:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:var(--radius-pill);background:var(--color-surface-raised);box-shadow:var(--shadow-sm);transition:transform var(--duration-normal) var(--ease-out-expo)}.switch input{position:absolute;opacity:0;width:0;height:0}.switch input:checked+.switch__track{background:var(--color-accent)}.switch input:checked+.switch__track:after{transform:translateX(18px)}.switch input:focus-visible+.switch__track{box-shadow:var(--ring)}