.bookmark-button__wrapper{position:relative;display:inline-block}.bookmark-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-sm);background:var(--glass-surface);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-ui)}html[data-theme=light] .bookmark-button{background:rgba(255,255,255,.95);border-color:rgba(0,0,0,.15);color:var(--color-text-primary);box-shadow:0 2px 8px rgba(0,0,0,.1)}html[data-theme=light] .bookmark-button:hover:not(:disabled){background:rgba(255,255,255,1);box-shadow:0 4px 12px rgba(0,0,0,.15)}html[data-theme=light] .bookmark-button--active{background:rgba(139,92,246,.1);border-color:rgba(139,92,246,.3);color:#7c3aed}html[data-theme=light] .bookmark-button--active:hover:not(:disabled){background:rgba(139,92,246,.15)}html[data-theme=light] .bookmark-button--button{background:rgba(255,255,255,.95);color:#1f2937}html[data-theme=light] .bookmark-button--button.bookmark-button--active{background:linear-gradient(135deg,#8b5cf6,#6366f1);color:white;border-color:transparent}.bookmark-button:hover:not(:disabled){background:var(--glass-surface-hover);border-color:var(--color-border-hover);color:var(--color-text-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.bookmark-button:active:not(:disabled){transform:translateY(0)}.bookmark-button:disabled{opacity:.6;cursor:not-allowed}.bookmark-button--active{color:var(--color-accent-primary);border-color:hsla(250,100%,65%,.3);background:hsla(250,100%,65%,.05)}.bookmark-button--active:hover:not(:disabled){background:hsla(250,100%,65%,.1);box-shadow:var(--shadow-glow-sm)}.bookmark-button--loading{pointer-events:none}.bookmark-button--loading .bookmark-button__icon{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.bookmark-button__icon{font-size:1rem;transition:transform var(--transition-fast)}.bookmark-button:hover:not(:disabled) .bookmark-button__icon{transform:scale(1.1)}.bookmark-button--active .bookmark-button__icon{animation:bookmarkPop .3s var(--ease-out)}@keyframes bookmarkPop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.bookmark-button__label{font-size:var(--text-sm);font-weight:var(--font-medium)}.bookmark-button--button{padding:var(--space-sm) var(--space-md);background:var(--color-bg-elevated)}.bookmark-button--button:hover:not(:disabled){background:var(--color-bg-secondary)}.bookmark-button--button.bookmark-button--active{background:var(--color-accent-gradient);color:white;border-color:transparent}.bookmark-button--button.bookmark-button--active:hover:not(:disabled){box-shadow:var(--shadow-glow-md)}.bookmark-button--sm{padding:var(--space-xs);border-radius:var(--radius-sm)}.bookmark-button--sm .bookmark-button__icon{font-size:.875rem}.bookmark-button--sm.bookmark-button--button{padding:var(--space-xs) var(--space-sm)}.bookmark-button--sm.bookmark-button--button .bookmark-button__label{font-size:var(--text-xs)}.bookmark-button--md{padding:var(--space-sm)}.bookmark-button--md .bookmark-button__icon{font-size:1rem}.bookmark-button--md.bookmark-button--button{padding:var(--space-sm) var(--space-md)}.bookmark-button--md.bookmark-button--button .bookmark-button__label{font-size:var(--text-sm)}.bookmark-button--lg{padding:var(--space-md)}.bookmark-button--lg .bookmark-button__icon{font-size:1.25rem}.bookmark-button--lg.bookmark-button--button{padding:var(--space-md) var(--space-lg)}.bookmark-button--lg.bookmark-button--button .bookmark-button__label{font-size:var(--text-base)}.bookmark-button__tooltip{position:absolute;bottom:calc(100% + var(--space-sm));left:50%;transform:translateX(-50%);padding:var(--space-xs) var(--space-sm);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--color-text-primary);white-space:nowrap;box-shadow:var(--shadow-lg);animation:tooltipFadeIn var(--duration-base) var(--ease-out);z-index:10}.bookmark-button__tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top:6px solid var(--color-border)}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateX(-50%) translateY(4px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@media (max-width:640px){.bookmark-button__tooltip{font-size:.7rem;padding:var(--space-2xs) var(--space-xs)}}