.skeleton{background-color:var(--color-surface);border-radius:var(--radius-sm);display:block}.skeleton-text{transform-origin:0 55%;border-radius:var(--radius-sm);height:1em;margin-bottom:.5em;transform:scaleY(.6)}.skeleton-text:last-child{margin-bottom:0}.skeleton-circular{border-radius:50%}.skeleton-pulse{animation:1.5s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.skeleton-wave{background:linear-gradient(90deg,var(--color-surface)0%,var(--color-surface-hover)40%,var(--color-surface)80%);background-size:200% 100%;animation:1.5s linear infinite skeleton-wave;position:relative;overflow:hidden}@keyframes skeleton-wave{0%{background-position:200% 0}to{background-position:-200% 0}}[data-theme=dark] .skeleton{background-color:var(--color-surface)}[data-theme=dark] .skeleton-wave{background:linear-gradient(90deg,var(--color-surface)0%,var(--color-surface-hover)40%,var(--color-surface)80%);background-size:200% 100%}@media (prefers-reduced-motion:reduce){.skeleton-pulse,.skeleton-wave{animation:none}.skeleton-pulse{opacity:.7}}.skeleton-card{padding:var(--spacing-lg);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:#fff}[data-theme=dark] .skeleton-card{background:var(--color-surface)}
.speed-dial-backdrop{z-index:40;background-color:#0000;position:fixed;inset:0}.speed-dial-container{flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:fixed;bottom:24px;right:24px}.speed-dial-actions{flex-direction:column;align-items:flex-end;gap:8px;margin-bottom:8px;display:flex}.speed-dial-action{background-color:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border-radius:24px;align-items:center;gap:12px;padding:8px 16px 8px 12px;animation:.2s ease-out backwards speedDialFanOut;display:flex;box-shadow:0 2px 8px #00000026}.speed-dial-action:hover{background-color:var(--color-surface-hover);transform:translate(-4px);box-shadow:0 4px 12px #0003}.speed-dial-action:active{transform:translate(-2px)scale(.98)}.speed-dial-action-icon{width:24px;height:24px;color:var(--color-brand);justify-content:center;align-items:center;display:flex}.speed-dial-action-label{color:var(--color-text-primary);font-size:14px;font-weight:500}.speed-dial-main{background-color:var(--color-brand);color:#fff;cursor:pointer;width:56px;height:56px;transition:all var(--transition-fast);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;box-shadow:0 4px 12px #0003}.speed-dial-main:hover:not(:disabled){transform:scale(1.05);box-shadow:0 6px 16px #00000040}.speed-dial-main:active:not(:disabled){transform:scale(.98)}.speed-dial-main:disabled{opacity:.5;cursor:not-allowed}.speed-dial-icon{transition:transform var(--transition-fast)}.speed-dial-main-open .speed-dial-icon{transform:rotate(45deg)}@keyframes speedDialFanOut{0%{opacity:0;transform:scale(.8)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.speed-dial-action:first-child{animation-delay:0s}.speed-dial-action:nth-child(2){animation-delay:50ms}.speed-dial-action:nth-child(3){animation-delay:.1s}.speed-dial-action:nth-child(4){animation-delay:.15s}
.empty-state{text-align:center;padding:var(--spacing-2xl)var(--spacing-lg);flex-direction:column;justify-content:center;align-items:center;min-height:300px;animation:.3s cubic-bezier(.4,0,.2,1) fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.empty-state-icon{margin-bottom:var(--spacing-lg);opacity:.8;font-size:64px;line-height:1;animation:3s ease-in-out infinite floatIcon}@keyframes floatIcon{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.empty-state-title{color:var(--color-text-primary);margin:0 0 var(--spacing-sm)0;font-size:20px;font-weight:600;line-height:1.3}.empty-state-description{color:var(--color-text-secondary);margin:0 0 var(--spacing-lg)0;max-width:400px;font-size:15px;line-height:1.5}.empty-state-action{margin-top:var(--spacing-md)}@media (max-width:768px){.empty-state{padding:var(--spacing-xl)var(--spacing-md);min-height:240px}.empty-state-icon{margin-bottom:var(--spacing-md);font-size:48px}.empty-state-title{font-size:18px}.empty-state-description{font-size:14px}}[data-theme=dark] .empty-state-icon{opacity:.7}
