/* ========================================
   HyprWave - Mystic Portal Theme
   Inspired by purple/pink portal with blue depths
   ======================================== */

:root {
  /* Background Colors - Deep Void */
  --bg-primary: rgba(15, 12, 30, 1.0);
  --bg-secondary: rgba(20, 18, 40, 0.75);
  --bg-album-cover: rgba(25, 22, 48, 0.85);
  --bg-album-secondary: rgba(30, 28, 55, 0.85);

  /* Button Colors - Default (Prev/Next) - Mystic Purple */
  --btn-default: rgba(140, 100, 180, 0.85);
  --btn-default-secondary: rgba(130, 90, 170, 0.85);
  --btn-default-hover: rgba(160, 120, 200, 0.92);
  --btn-default-hover-secondary: rgba(150, 110, 190, 0.92);

  /* Button Colors - Play/Pause - Bright Pink Portal */
  --btn-play: rgba(255, 100, 200, 0.95);
  --btn-play-secondary: rgba(240, 80, 180, 0.95);
  --btn-play-hover: rgba(255, 120, 215, 0.98);
  --btn-play-hover-secondary: rgba(255, 110, 205, 0.98);
  --btn-play-active: rgba(230, 70, 170, 0.95);
  --btn-play-active-secondary: rgba(220, 60, 160, 0.95);

  /* Button Colors - Expand - Deep Violet */
  --btn-expand: rgba(120, 60, 200, 0.95);
  --btn-expand-secondary: rgba(110, 50, 190, 0.95);
  --btn-expand-hover: rgba(140, 80, 220, 0.98);
  --btn-expand-hover-secondary: rgba(130, 70, 210, 0.98);
  --btn-expand-active: rgba(100, 40, 180, 0.95);
  --btn-expand-active-secondary: rgba(90, 35, 170, 0.95);

  /* Progress Bar Colors */
  --progress-bg: rgba(40, 30, 60, 0.25);
  --progress-fill-start: rgba(255, 100, 200, 0.95);
  --progress-fill-end: rgba(120, 60, 200, 0.95);

  /* Slider Handle Colors */
  --handle-color: rgba(255, 100, 200, 0.98);
  --handle-hover: rgba(255, 120, 215, 1.0);
  --handle-border: rgba(230, 70, 170, 0.5);
  --handle-shadow: rgba(255, 100, 200, 0.6);

  /* Text Colors - Soft pink/purple on dark */
  --text-primary: rgba(255, 220, 245, 0.95);
  --text-secondary: rgba(230, 190, 220, 0.85);
  --text-tertiary: rgba(200, 160, 195, 0.75);
  --text-muted: rgba(160, 120, 165, 0.65);

  /* Border Colors */
  /*--border-primary: rgba(100, 70, 140, 0.35);*/
  --border-button: rgba(120, 85, 160, 0.3);
  --border-button-hover: rgba(140, 100, 180, 0.45);
  --border-play: rgba(255, 100, 200, 0.4);
  --border-play-hover: rgba(255, 120, 215, 0.55);
  --border-expand: rgba(120, 60, 200, 0.4);
  --border-expand-hover: rgba(140, 80, 220, 0.55);

  /* Shadow Colors */
  --shadow-default: rgba(0, 0, 0, 0.6);
  --shadow-button: rgba(0, 0, 0, 0.5);
  --shadow-play: rgba(255, 100, 200, 0.5);
  --shadow-play-hover: rgba(255, 120, 215, 0.7);
  --shadow-expand: rgba(120, 60, 200, 0.5);
  --shadow-expand-hover: rgba(140, 80, 220, 0.7);
  --shadow-focus: rgba(255, 100, 200, 0.7);

  /* Spacing & Sizes */
  --border-radius-container: 100px;
  --border-radius-section: 20px;
  --border-radius-album: 16px;
  --border-radius-button: 50%;
  --border-radius-progress: 2px;

  --padding-container: 12px;
  --padding-section: 16px;
}

/* Visualizer bars - mystic portal glow */
.visualizer-bar {
  background: linear-gradient(180deg,
      rgba(255, 120, 215, 0.98),
      rgba(180, 100, 220, 0.98),
      rgba(140, 80, 220, 0.98));
  border-radius: 0px;
  transition: all 0.05s ease-out;
  margin: 0px;
  min-width: 1px;
  min-height: 3px;
  box-shadow: 0 0 16px rgba(255, 100, 200, 0.8),
    0 0 10px rgba(140, 80, 220, 0.6);
}

.vertical-display-label {
  font-family: 'VT323', monospace;
  font-size: 28px;
  font-weight: bold;
  color: rgba(255, 120, 215, 0.98);
  letter-spacing: 0px;
  line-height: 1.2;
}

/* CRITICAL: Disable CSS transitions during JavaScript animations */
.no-transition,
.no-transition * {
  transition: none !important;
  animation: none !important;
}

/* ========================================
   Base Styles
   ======================================== */

/* GTK4 transparent window - CRITICAL for compositor transparency */
window,
window.background,
.hyprwave-window {
  background-color: transparent;
  background-image: none;
}

/* Ensure ALL window-level elements are transparent */
window>* {
  background: transparent;
}

/* Main container - transparent */
.main-container {
  background: transparent;
}

/* ========================================
   Control Container (Vertical Bar)
   ======================================== */

.control-container {
  background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
  border-radius: var(--border-radius-container);
  border: 4px solid rgb(255, 1, 0, 1.0);

  padding: var(--padding-container);
  margin: 0;
}

/* ========================================
   Control Container (Horizontal Bar)
   For Top/Bottom Layouts
   ======================================== */

.control-container-horizontal {
  /* Match the vertical style exactly for consistency */
  background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
  border-radius: var(--border-radius-container);
  /* Keeps the pill shape */
  border: 4px solid var(--border-primary);

  /* Horizontal padding is critical here to prevent buttons 
       from touching the rounded edges */
  padding: 8px 24px;
  margin: 0;
}

/* ========================================
   Expanded Section (Album Details Card)
   ======================================== */

.expanded-section {
  background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
  border-radius: var(--border-radius-section);
  border: 4px solid var(--border-primary);
  padding: var(--padding-section);
  margin: 0;
  margin-top: 4px;
  /* Reduced spacing from control bar */


}

/* ========================================
   Expanded Section (Horizontal Layout)
   For Top/Bottom Layouts
   ======================================== */

.expanded-section-horizontal {
  background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
  border-radius: var(--border-radius-section);
  border: 1px solid var(--border-primary);


  /* Slightly different padding/margin to look good below/above the bar */
  padding: var(--padding-section);
  margin-top: 2px;
  /* Adds gap between control bar and this panel */
  margin-bottom: 2px;

  /* Ensure it doesn't get too squeezed */
  min-width: 300px;
}

/* Album cover */
.album-cover {
  background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary));
  border-radius: var(--border-radius-album);
  border: 1px solid var(--border-button);
  box-shadow: 0 4px 16px var(--shadow-button);
}

/* ========================================
   Text Styles
   ======================================== */

/* Source label (e.g., "Spotify") */
.source-label {
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 500;
  margin-top: 8px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Track title */
.track-title {
  color: var(--text-primary);
  font-size: 14px;
  font-weight: 600;
  margin-top: 4px;
}

/* Artist label */
.artist-label {
  color: var(--text-secondary);
  font-size: 12px;
  font-weight: 500;
  margin-top: 2px;
}

/* Time remaining */
.time-remaining {
  color: var(--text-tertiary);
  font-size: 12px;
  font-weight: 500;
  margin-top: 2px;
}

/* ========================================
   Progress Bar - FIXED FOR GTK4
   ======================================== */

.track-progress {
  min-height: 4px;
  margin-top: 8px;
  margin-bottom: 4px;
}

/* The background track */
.track-progress trough {
  background: var(--progress-bg);
  border-radius: var(--border-radius-progress);
  min-height: 4px;
}

/* The filled progress portion - GTK4 specific */
.track-progress progress {
  background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end));
  border-radius: var(--border-radius-progress);
  min-height: 4px;
}

/* GTK4 also needs this for the fill bar to show */
progressbar trough {
  background: var(--progress-bg);
  border-radius: var(--border-radius-progress);
  min-height: 4px;
}

progressbar progress {
  background: linear-gradient(90deg, var(--progress-fill-start), var(--progress-fill-end));
  border-radius: var(--border-radius-progress);
  min-height: 4px;
}

/* ========================================
   Control Buttons - FIXED ROUNDED SHAPE
   ======================================== */

/* All control buttons - base styles */
.control-button {
  padding: 0;

  /* Add margin to compensate for removed border */
  margin: 1.5px;
  /* Same as the old border width */

  min-width: 44px;
  min-height: 44px;

  background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));

  border: none;
  box-shadow:
    inset 0 0 0 1.5px var(--border-button),
    0 4px 16px var(--shadow-button),
    inset 0 1px 1px rgba(255, 255, 255, 0.2);

  border-radius: 50%;
}

.control-button:hover {
  background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary));
  border-color: var(--border-button-hover);
  box-shadow:
    0 6px 20px var(--shadow-button),
    inset 0 1px 1px rgba(255, 255, 255, 0.25);
  transform: translateY(-1px);
}

.control-button:active {
  transform: scale(0.96);
  box-shadow:
    0 2px 8px var(--shadow-button),
    inset 0 2px 4px rgba(0, 0, 0, 0.2);
}

/* ========================================
   Play/Pause Button (Blue)
   ======================================== */

.play-button {
  background: linear-gradient(135deg, var(--btn-play), var(--btn-play-secondary));
  border-color: var(--border-play);
  box-shadow:
    0 4px 16px var(--shadow-play),
    inset 0 1px 1px rgba(255, 255, 255, 0.3);
}

.play-button:hover {
  background: linear-gradient(135deg, var(--btn-play-hover), var(--btn-play-hover-secondary));
  border-color: var(--border-play-hover);
  box-shadow:
    0 6px 20px var(--shadow-play-hover),
    inset 0 1px 1px rgba(255, 255, 255, 0.4);
}

.play-button:active {
  background: linear-gradient(135deg, var(--btn-play-active), var(--btn-play-active-secondary));
  box-shadow:
    0 2px 10px var(--shadow-play),
    inset 0 2px 4px rgba(0, 0, 0, 0.15);
}

/* ========================================
   Expand Button (Purple)
   ======================================== */

.expand-button {
  background: linear-gradient(135deg, var(--btn-expand), var(--btn-expand-secondary));
  border-color: var(--border-expand);
  box-shadow:
    0 4px 16px var(--shadow-expand),
    inset 0 1px 1px rgba(255, 255, 255, 0.3);
}

.expand-button:hover {
  background: linear-gradient(135deg, var(--btn-expand-hover), var(--btn-expand-hover-secondary));
  border-color: var(--border-expand-hover);
  box-shadow:
    0 6px 20px var(--shadow-expand-hover),
    inset 0 1px 1px rgba(255, 255, 255, 0.4);
}

.expand-button:active {
  background: linear-gradient(135deg, var(--btn-expand-active), var(--btn-expand-active-secondary));
  box-shadow:
    0 2px 10px var(--shadow-expand),
    inset 0 2px 4px rgba(0, 0, 0, 0.15);
}

/* ========================================
   Previous/Next Buttons
   ======================================== */

.prev-button,
.next-button {
  background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));
}

.prev-button:hover,
.next-button:hover {
  background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary));
}

/* ========================================
   Focus & Accessibility
   ======================================== */

button {
  outline: none;
}

button:focus {
  outline: none;
  box-shadow:
    0 0 0 3px var(--shadow-focus),
    0 4px 16px var(--shadow-play),
    inset 0 1px 1px rgba(255, 255, 255, 0.3);
}

/* ========================================
   Notification Styles
   ======================================== */

.notification-window {
  background: transparent;
}

.notification-container {
  background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
  border-radius: var(--border-radius-section);
  border: 1px solid var(--border-primary);
  padding: 10px 12px;
  /* Reduced from 12px to 10px vertical padding */
  min-width: 280px;
  /* Reduced from 320px */
  max-width: 300px;
  /* Added max-width */
}

.notification-album {
  background: linear-gradient(135deg, var(--bg-album-cover), var(--bg-album-secondary));
  border-radius: var(--border-radius-album);
  border: 1px solid var(--border-button);
}

.notification-header {
  color: var(--text-muted);
  font-size: 10px;
  /* Reduced from 11px */
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
  /* Reduced from 8px */
}

.notification-song {
  color: var(--text-primary);
  font-size: 13px;
  /* Reduced from 14px */
  font-weight: 600;
  line-height: 1.2;
  /* Added for tighter spacing */
}

.notification-artist {
  color: var(--text-secondary);
  font-size: 11px;
  /* Reduced from 12px */
  font-weight: 500;
  line-height: 1.2;
  /* Added for tighter spacing */
}

/* ========================================
   Volume Control Styles
   ======================================== */

.volume-container {
  background: linear-gradient(145deg, var(--bg-primary), var(--bg-secondary));
  border-radius: var(--border-radius-section);
  border: 1px solid var(--border-primary);
  padding: 12px;
  margin: 0px;
}

.volume-icon {
  min-width: 20px;
  min-height: 20px;
}

.volume-percentage {
  color: var(--text-primary);
  font-size: 13px;
  font-weight: 600;
  min-width: 40px;
}

/* Volume slider - similar to progress bar but with different colors */
.volume-slider {
  min-height: 24px;
  min-width: 24px;
}

/* The background track */
.volume-slider trough {
  background: var(--progress-bg);
  border-radius: var(--border-radius-progress);
  min-height: 6px;
  min-width: 6px;
}

/* The filled portion */
.volume-slider progress {
  background: linear-gradient(90deg, var(--btn-default), var(--btn-default-secondary));
  border-radius: var(--border-radius-progress);
  min-height: 6px;
  min-width: 6px;
}

/* The slider handle */
.volume-slider slider {
  min-height: 16px;
  min-width: 16px;
  background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));
  border: 2px solid var(--border-button);
  border-radius: 50%;

}

.volume-slider slider:hover {
  background: linear-gradient(135deg, var(--btn-default-hover), var(--btn-default-hover-secondary));
  border-color: var(--border-button-hover);
  transform: scale(1.1);
}

.volume-slider slider:active {
  background: linear-gradient(135deg, var(--btn-default), var(--btn-default-secondary));
  transform: scale(0.95);
}

/* GTK4 specific for vertical sliders */
.volume-slider.vertical trough {
  min-width: 6px;
}

.volume-slider.vertical progress {
  min-width: 6px;
}


/* ========================================
   Visualizer Bars - Idle Mode Animation
   ======================================== */

/* Container padding to keep bars inside control bar edges */
.visualizer-container {
  padding: 0px;
  /* 5px padding on left/right keeps bars inside */
  padding-bottom: 1px;
  /* Small bottom padding to align with control bar bottom */
  border-radius: 0 0 12px 12px;
}

Smooth control bar height transitions for idle mode */ .control-container-horizontal {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Smooth button fade transitions */
.control-button {
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.3s ease-in-out;
}

/* Ensure overlay respects size changes */
overlay {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Vertical Display (for vertical layouts) */
.vertical-display-container {
  background: transparent;
  padding: 8px 4px;
}

.vertical-display-label {
  font-family: 'VT323', monospace;
  font-size: 28px;
  font-weight: bold;
  color: white;
  /* Match visualizer bar color */
  letter-spacing: 0px;
  line-height: 1.2;
}
