@use 'variables' as *; @mixin icon-btn($size: 28px, $shape: 50%) { display: flex; align-items: center; justify-content: center; width: $size; height: $size; border-radius: $shape; background: transparent; border: none; cursor: pointer; transition: opacity $transition-fast, background $transition-fast, color $transition-fast; svg { pointer-events: none; } } @mixin card($bg: $color-card-white, $radius: $radius-lg) { background: $bg; border-radius: $radius; box-shadow: $shadow-card; } @mixin page-shell { min-height: 100vh; background: var(--color-bg); display: flex; flex-direction: column; } @mixin section-header { background: linear-gradient(135deg, var(--color-header-from) 0%, var(--color-header-to) 100%); display: flex; align-items: center; justify-content: space-between; gap: $space-6; box-shadow: $shadow-header; } @mixin text-truncate { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } @mixin form-label { font-size: $font-size-sm; color: $color-text-muted; text-align: right; padding-right: $space-2; white-space: nowrap; }