.toast-enter{animation:toastScaleIn var(--duration-slow) var(--ease-out) forwards}.toast-exit{animation:fadeOut var(--duration-normal) var(--ease-in) forwards}.toast-exit-left{animation:toastSwipeLeft var(--duration-normal) var(--ease-in) forwards}.toast-exit-right{animation:toastSwipeRight var(--duration-normal) var(--ease-in) forwards}@keyframes toastScaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes toastSwipeLeft{to{transform:translate(-120%);opacity:0}}@keyframes toastSwipeRight{to{transform:translate(120%);opacity:0}}@media(min-width:1024px){.toast-container{left:var(--sidebar-width-expanded)!important}}@media(max-width:639px){.toast-container [role=alert]{max-width:calc(100vw - 12px)!important}}.modal-overlay-enter{animation:fadeIn var(--duration-slow) var(--ease-out) forwards}.modal-overlay-exit{animation:fadeOut var(--duration-normal) var(--ease-in) forwards}.modal-content-enter{animation:slideUp var(--duration-slow) var(--ease-out) forwards}.modal-content-exit{animation:fadeOut var(--duration-normal) var(--ease-in) forwards;transform:translateY(8px)}.skeleton-shimmer{background:linear-gradient(90deg,var(--color-bg-secondary) 25%,var(--color-bg-tertiary) 50%,var(--color-bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s linear infinite}.btn{transition:background-color var(--duration-normal) ease,border-color var(--duration-normal) ease,color var(--duration-normal) ease,transform var(--duration-fast) var(--ease-spring),box-shadow var(--duration-normal) ease}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{transform:none}.btn-primary{background-color:var(--color-primary);color:var(--color-primary-foreground)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-primary:active:not(:disabled){background-color:var(--color-primary-active)}.btn-secondary{background-color:transparent;color:var(--color-primary);border:1.5px solid var(--color-primary)}.btn-secondary:hover:not(:disabled){background-color:var(--color-primary);color:var(--color-primary-foreground)}.btn-secondary:active:not(:disabled){background-color:var(--color-primary-active);border-color:var(--color-primary-active);color:var(--color-primary-foreground)}.btn-ghost{background-color:transparent;color:var(--color-text-secondary);border:none}.btn-ghost:hover:not(:disabled){background-color:var(--color-bg-secondary);color:var(--color-text)}.btn-ghost:active:not(:disabled){background-color:var(--color-border)}.btn-danger{background-color:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background-color:color-mix(in srgb,var(--color-danger) 85%,black)}.btn-danger:active:not(:disabled){background-color:color-mix(in srgb,var(--color-danger) 70%,black)}.btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--color-bg),0 0 0 4px var(--color-primary)}.btn-danger:focus-visible{box-shadow:0 0 0 2px var(--color-bg),0 0 0 4px var(--color-danger)}.splash-loader{display:flex;align-items:center;justify-content:center;width:100%;height:100vh;height:100dvh}.splash-loader-container{position:relative;width:80px;height:80px}.splash-loader-icon{position:absolute;top:50%;left:50%;width:48px;height:48px;transform:translate(-50%,-50%)}.splash-loader-spinner{position:absolute;top:0;right:0;bottom:0;left:0;border:2.5px solid color-mix(in srgb,#8fabbe 20%,transparent);border-top-color:#8fabbe;border-radius:50%;animation:splash-spin 1s linear infinite}@keyframes splash-spin{to{transform:rotate(360deg)}}.hint-popover-wrapper{position:relative;display:inline-flex;align-items:center}.hint-popover-trigger{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:0;margin:0;cursor:pointer;color:var(--color-text-secondary);line-height:1;-webkit-tap-highlight-color:transparent}.hint-popover-trigger:hover{color:var(--color-primary)}.hint-popover-bubble{position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%);background:#f0f7ff;border:1px solid #d4e5f7;border-radius:8px;padding:8px 12px;max-width:280px;min-width:140px;font-size:12px;line-height:1.4;color:var(--color-text-secondary);box-shadow:0 4px 12px #0000001f;z-index:9999;white-space:normal;word-wrap:break-word}.input-base{height:36px;width:100%;border:1.5px solid var(--color-input-border);border-radius:var(--radius-md);background-color:var(--color-input-bg);color:var(--color-text);font-family:var(--font-sans);font-size:14px;padding:0 12px;transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease;outline:none}.input-base::placeholder{color:var(--color-input-placeholder)}.input-base:hover:not(:disabled):not(:focus){border-color:var(--color-border-hover)}.input-base:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 15%,transparent)}.input-base:disabled{opacity:.5;cursor:not-allowed;background-color:var(--color-bg-secondary)}.input-base.input-error{border-color:var(--color-danger)}.input-base.input-error:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-danger) 15%,transparent)}.input-with-icon{padding-left:36px}.select-base{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:36px;cursor:pointer}.select-base:disabled{cursor:not-allowed}.textarea-base{height:auto;min-height:80px;padding:8px 12px;resize:vertical;line-height:1.5}.toggle-track{width:44px;height:24px;border-radius:12px;background-color:var(--color-border);transition:background-color var(--duration-fast) ease;cursor:pointer;position:relative;flex-shrink:0}.toggle-track[data-checked=true]{background-color:var(--color-primary)}.toggle-track[data-disabled=true]{opacity:.5;cursor:not-allowed}.toggle-thumb{width:20px;height:20px;border-radius:50%;background-color:#fff;position:absolute;top:2px;left:2px;transition:transform var(--duration-fast) ease;box-shadow:0 1px 3px #00000026}.toggle-track[data-checked=true] .toggle-thumb{transform:translate(20px)}.checkbox-box{width:18px;height:18px;border:1.5px solid var(--color-input-border);border-radius:5px;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) ease;cursor:pointer;flex-shrink:0}.checkbox-box:hover:not([data-disabled=true]){border-color:var(--color-border-hover)}.checkbox-box[data-checked=true]{background-color:var(--color-primary);border-color:var(--color-primary)}.checkbox-box[data-disabled=true]{opacity:.5;cursor:not-allowed}.radio-circle{width:18px;height:18px;border:1.5px solid var(--color-input-border);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all var(--duration-fast) ease;cursor:pointer;flex-shrink:0}.radio-circle:hover:not([data-disabled=true]){border-color:var(--color-border-hover)}.radio-circle[data-checked=true]{border-color:var(--color-primary)}.radio-circle[data-disabled=true]{opacity:.5;cursor:not-allowed}.radio-dot{width:10px;height:10px;border-radius:50%;background-color:var(--color-primary);transform:scale(0);transition:transform var(--duration-fast) ease}.radio-circle[data-checked=true] .radio-dot{transform:scale(1)}.image-crop-container{display:flex;flex-direction:column;gap:var(--space-4)}.image-crop-area{position:relative;width:100%;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;background-color:var(--color-bg-secondary)}.image-crop-controls{display:flex;align-items:center;gap:var(--space-3)}.image-crop-zoom-label{font-size:var(--text-caption);color:var(--color-text-secondary);white-space:nowrap;min-width:36px}.image-crop-slider{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-border);border-radius:2px;outline:none;cursor:pointer}.image-crop-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid var(--color-bg-elevated);box-shadow:0 1px 3px #0003}.image-crop-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid var(--color-bg-elevated);box-shadow:0 1px 3px #0003}.avatar-compact{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.avatar-compact-circle{position:relative;border-radius:var(--radius-full);border:2px dashed var(--color-border);background-color:color-mix(in srgb,var(--color-primary) 8%,transparent);cursor:pointer;overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:border-color .2s,background-color .2s;padding:0}.avatar-compact-circle:hover{border-color:var(--color-primary);background-color:color-mix(in srgb,var(--color-primary) 14%,transparent)}.avatar-compact-circle:disabled{opacity:.6;cursor:not-allowed}.avatar-compact-image{width:100%;height:100%;object-fit:cover}.avatar-compact-initials{font-weight:var(--weight-semibold);color:var(--color-primary);-webkit-user-select:none;user-select:none}.avatar-compact-icon{color:var(--color-text-tertiary)}.avatar-compact-overlay{position:absolute;bottom:0;right:0;width:32px;height:32px;border-radius:50%;background-color:var(--color-primary);color:var(--color-primary-foreground);display:flex;align-items:center;justify-content:center;border:2px solid var(--color-bg-elevated);transition:transform .15s ease}.avatar-compact-circle:hover .avatar-compact-overlay{transform:scale(1.08)}.avatar-compact-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background-color:#0000004d;border-radius:var(--radius-full)}.avatar-compact-loading:after{content:"";width:24px;height:24px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:avatar-compact-spin .6s linear infinite}@keyframes avatar-compact-spin{to{transform:rotate(360deg)}}.avatar-compact-input{position:absolute;width:0;height:0;opacity:0;overflow:hidden}.avatar-compact-label{font-size:var(--text-caption);color:var(--color-primary);font-weight:var(--weight-medium);cursor:pointer;-webkit-user-select:none;user-select:none}.avatar-compact-label:hover{text-decoration:underline}.avatar-compact-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000d9;display:flex;align-items:center;justify-content:center;touch-action:none;-webkit-user-select:none;user-select:none}.avatar-compact-lightbox-toolbar{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:24px;padding:20px 16px calc(20px + env(safe-area-inset-bottom,0px));background:linear-gradient(transparent,#0009);z-index:1}.avatar-compact-lightbox-btn{background:#ffffff26;border:none;color:#fff;cursor:pointer;padding:14px;border-radius:50%;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.avatar-compact-lightbox-btn:active{background:#ffffff4d}.avatar-compact-lightbox-img{max-width:90vw;max-height:85vh;object-fit:contain;border-radius:8px}.crud-toolbar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2);background-color:var(--color-bg, #faf8f4);margin-left:calc(-1 * var(--space-2));margin-right:calc(-1 * var(--space-2));border-bottom:1px solid var(--color-border);overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.crud-toolbar::-webkit-scrollbar{display:none}.crud-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1.5px solid var(--color-primary);border-radius:var(--radius-md);background:transparent;color:var(--color-primary);cursor:pointer;padding:0;flex-shrink:0;transition:background-color .15s ease,transform .1s ease}.crud-toolbar-btn:hover:not(:disabled){background-color:var(--color-primary-subtle, rgba(59, 130, 246, .08))}.crud-toolbar-btn:active:not(:disabled){transform:scale(.95)}.crud-toolbar-btn:disabled{opacity:.35;cursor:not-allowed}.crud-toolbar-btn--active{background-color:var(--color-primary);color:#fff}.crud-toolbar-btn--active:hover:not(:disabled){background-color:color-mix(in srgb,var(--color-primary) 85%,black)}.crud-cards{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--area-gap)}.crud-cards--deleted :is(.card,[class*=card]){border:1.5px solid var(--color-danger, #ef4444);border-radius:var(--radius-lg);padding-left:var(--space-3);padding-right:var(--space-3)}.admin-users-photo-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-top:var(--space-2)}.admin-users-photo-circle{width:120px;height:120px;border-radius:50%;border:2px solid var(--color-border);background:var(--color-surface);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;padding:0;position:relative;transition:border-color .15s ease}.admin-users-photo-circle:hover:not(:disabled){border-color:var(--color-primary)}.admin-users-photo-circle:disabled{cursor:default}.admin-users-photo-img{width:100%;height:100%;object-fit:cover}.admin-users-photo-initials{font-size:36px;font-weight:var(--weight-semibold);color:var(--color-text-secondary);-webkit-user-select:none;user-select:none}.admin-users-photo-loading{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#fff9;display:flex;align-items:center;justify-content:center}.admin-users-photo-loading:after{content:"";width:28px;height:28px;border:3px solid var(--color-primary);border-top-color:transparent;border-radius:50%;animation:crud-spin .8s linear infinite}@keyframes crud-spin{to{transform:rotate(360deg)}}.admin-users-photo-actions{display:flex;gap:var(--space-2)}.admin-users-lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#000000eb;display:flex;align-items:center;justify-content:center;touch-action:none}.admin-users-lightbox-close{position:absolute;top:max(12px,env(safe-area-inset-top,12px));right:12px;z-index:10;width:40px;height:40px;border-radius:50%;border:none;background:#ffffff26;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:background-color .15s ease}.admin-users-lightbox-close:hover{background:#ffffff4d}.admin-users-lightbox-img{max-width:90vw;max-height:85vh;border-radius:var(--radius-lg);object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
