/* ============================================================================
   EFFECTS UTILITIES
   ============================================================================ */


/* Background Colors */
.bg-base        { background: var(--color-bg-base); }
.bg-secondary   { background: var(--color-bg-secondary); }
.bg-card        { background: var(--color-bg-card); }
.bg-sidebar     { background: var(--color-bg-sidebar); }
.bg-surface     { background: var(--color-bg-surface); }
.bg-panel       { background: var(--color-bg-panel); }
.bg-transparent { background: transparent; }

.bg-success { background: var(--color-bg-success); }
.bg-danger  { background: var(--color-bg-danger); }
.bg-warning { background: var(--color-bg-warning); }
.bg-info    { background: var(--color-bg-info); }


/* Border */
.border   { border: var(--border-thin) solid var(--color-border); }
.border-0 { border: none; }
.border-t { border-top: var(--border-thin) solid var(--color-border); }
.border-b { border-bottom: var(--border-thin) solid var(--color-border); }
.border-l { border-left: var(--border-thin) solid var(--color-border); }
.border-r { border-right: var(--border-thin) solid var(--color-border); }

.border-accent  { border-color: var(--color-border-accent); }
.border-success { border-color: var(--color-border-success); }
.border-danger  { border-color: var(--color-border-danger); }


/* Border Radius */
.rounded-none { border-radius: 0; }
.rounded-sm   { border-radius: var(--radius-sm); }
.rounded-md   { border-radius: var(--radius-md); }
.rounded-lg   { border-radius: var(--radius-lg); }
.rounded-xl   { border-radius: var(--radius-xl); }
.rounded-full { border-radius: var(--radius-pill); }


/* Box Shadow */
.shadow-none { box-shadow: none; }
.shadow-2xs  { box-shadow: var(--shadow-2xs); }
.shadow-xs   { box-shadow: var(--shadow-xs); }
.shadow-sm   { box-shadow: var(--shadow-sm); }
.shadow-md   { box-shadow: var(--shadow-md); }
.shadow-lg   { box-shadow: var(--shadow-lg); }


/* Opacity */
.opacity-0   { opacity: 0; }
.opacity-50  { opacity: 0.5; }
.opacity-75  { opacity: 0.75; }
.opacity-100 { opacity: 1; }


/* Cursor */
.cursor-pointer     { cursor: pointer; }
.cursor-default     { cursor: default; }
.cursor-not-allowed { cursor: not-allowed; }


/* Pointer Events */
.pointer-events-none { pointer-events: none; }
.pointer-events-auto { pointer-events: auto; }


/* Outline */
.outline-none { outline: none; }
.outline      { outline: 2px solid; }


/* Transitions */
.transition-all       { transition: all 0.2s ease; }
.transition-colors    { transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease; }
.transition-transform { transition: transform 0.2s ease; }
.transition-opacity   { transition: opacity 0.2s ease; }


/* Transform */
.scale-100 { transform: scale(1); }
.scale-105 { transform: scale(1.05); }
.scale-95  { transform: scale(0.95); }


/* User Select */
.select-none { user-select: none; }
.select-text { user-select: text; }
.select-all  { user-select: all; }


/* Appearance */
.appearance-none { appearance: none; }
