{ lib, theme, ... }:

{
  services.swaync = {
    enable = false;
    style = lib.mkDefault ''
      * {
        all: unset;
        font-size: 14px;
        font-family: "${theme.nerdFont} Nerd Font", monospace;
        transition: 200ms;
      }

      trough highlight {
        background: #${theme.textAlpha};
      }

      scale trough {
        margin: 0 1rem;
        background-color: #${theme.surface0Alpha};
        min-height: 8px;
        min-width: 70px;
      }

      slider {
        background-color: #${theme.blueAlpha};
      }

      .floating-notifications.background .notification-row .notification-background {
        box-shadow:
          0 0 8px 0 rgba(0, 0, 0, 0.8),
          inset 0 0 0 1px #${theme.surface0Alpha};
        border-radius: 12.6px;
        margin: 18px;
        background-color: #${theme.baseAlpha};
        color: #${theme.textAlpha};
        padding: 0;
      }

      .floating-notifications.background
        .notification-row
        .notification-background
        .notification {
        padding: 7px;
        border-radius: 12.6px;
      }

      .floating-notifications.background
        .notification-row
        .notification-background
        .notification.critical {
        box-shadow: inset 0 0 7px 0 #${theme.redAlpha};
      }

      .floating-notifications.background
        .notification-row
        .notification-background
        .notification
        .notification-content {
        margin: 7px;
      }

      .floating-notifications.background
        .notification-row
        .notification-background
        .notification
        .notification-content
        .summary {
        color: #${theme.textAlpha};
      }

      .floating-notifications.background
        .notification-row
        .notification-background
        .notification
        .notification-content
        .time {
        color: #${theme.subtext0Alpha};
      }

      .floating-notifications.background
        .notification-row
        .notification-background
        .notification
        .notification-content
        .body {
        color: #${theme.textAlpha};
      }

      .floating-notifications.background
        .notification-row
        .notification-background
        .notification
        > *:last-child
        > * {
        min-height: 3.4em;
      }

      .floating-notifications.background
        .notification-row
        .notification-background
        .notification
        > *:last-child
        > *
        .notification-action {
        border-radius: 7px;
        color: #${theme.textAlpha};
        background-color: #${theme.surface0Alpha};
        box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
        margin: 7px;
      }

      .floating-notifications.background
        .notification-row
        .notification-background
        .notification
        > *:last-child
        > *
        .notification-action:hover {
        box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
        background-color: #${theme.surface0Alpha};
        color: #${theme.textAlpha};
      }

      .floating-notifications.background
        .notification-row
        .notification-background
        .notification
        > *:last-child
        > *
        .notification-action:active {
        box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
        background-color: #${theme.sapphireAlpha};
        color: #${theme.textAlpha};
      }

      /* Close Button */
      .floating-notifications.background
        .notification-row
        .notification-background
        .close-button {
        margin: 7px;
        padding: 2px;
        border-radius: 6.3px;
        color: #${theme.baseAlpha};
        background-color: #${theme.redAlpha};
      }

      .floating-notifications.background
        .notification-row
        .notification-background
        .close-button:hover {
        background-color: #${theme.maroonAlpha};
        color: #${theme.baseAlpha};
      }

      .floating-notifications.background
        .notification-row
        .notification-background
        .close-button:active {
        background-color: #${theme.redAlpha};
        color: #${theme.baseAlpha};
      }

      .control-center {
        box-shadow:
          0 0 8px 0 rgba(0, 0, 0, 0.8),
          inset 0 0 0 1px #${theme.surface0Alpha};
        border-radius: 12.6px;
        margin: 18px;
        background-color: #${theme.baseAlpha};
        color: #${theme.textAlpha};
        padding: 14px;
      }

      .control-center .widget-title > label {
        color: #${theme.textAlpha};
        font-size: 1.3em;
      }

      .control-center .widget-title button {
        border-radius: 7px;
        color: #${theme.textAlpha};
        background-color: #${theme.surface0Alpha};
        box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
        padding: 8px;
      }

      .control-center .widget-title button:hover {
        box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
        background-color: #585b70;
        color: #${theme.textAlpha};
      }

      .control-center .widget-title button:active {
        box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
        background-color: #${theme.sapphireAlpha};
        color: #${theme.baseAlpha};
      }

      .control-center .notification-row .notification-background {
        border-radius: 7px;
        color: #${theme.textAlpha};
        background-color: #${theme.surface0Alpha};
        box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
        margin-top: 14px;
      }

      .control-center .notification-row .notification-background .notification {
        padding: 7px;
        border-radius: 7px;
      }

      .control-center
        .notification-row
        .notification-background
        .notification.critical {
        box-shadow: inset 0 0 7px 0 #${theme.redAlpha};
      }

      .control-center
        .notification-row
        .notification-background
        .notification
        .notification-content {
        margin: 7px;
      }

      .control-center
        .notification-row
        .notification-background
        .notification
        .notification-content
        .summary {
        color: #${theme.textAlpha};
      }

      .control-center
        .notification-row
        .notification-background
        .notification
        .notification-content
        .time {
        color: #a6adc8;
      }

      .control-center
        .notification-row
        .notification-background
        .notification
        .notification-content
        .body {
        color: #${theme.textAlpha};
      }

      .control-center
        .notification-row
        .notification-background
        .notification
        > *:last-child
        > * {
        min-height: 3.4em;
      }

      .control-center
        .notification-row
        .notification-background
        .notification
        > *:last-child
        > *
        .notification-action {
        border-radius: 7px;
        color: #${theme.textAlpha};
        background-color: #${theme.crustAlpha};
        box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
        margin: 7px;
      }

      .control-center
        .notification-row
        .notification-background
        .notification
        > *:last-child
        > *
        .notification-action:hover {
        box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
        background-color: #${theme.surface0Alpha};
        color: #${theme.textAlpha};
      }

      .control-center
        .notification-row
        .notification-background
        .notification
        > *:last-child
        > *
        .notification-action:active {
        box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
        background-color: #${theme.sapphireAlpha};
        color: #${theme.textAlpha};
      }

      .control-center .notification-row .notification-background .close-button {
        margin: 7px;
        padding: 2px;
        border-radius: 6.3px;
        color: #${theme.baseAlpha};
        background-color: #${theme.maroonAlpha};
      }

      .close-button {
        border-radius: 6.3px;
      }

      .control-center .notification-row .notification-background .close-button:hover {
        background-color: #${theme.redAlpha};
        color: #${theme.baseAlpha};
      }

      .control-center
        .notification-row
        .notification-background
        .close-button:active {
        background-color: #${theme.redAlpha};
        color: #${theme.baseAlpha};
      }

      .control-center .notification-row .notification-background:hover {
        box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
        background-color: #${theme.overlay1Alpha};
        color: #${theme.textAlpha};
      }

      .control-center .notification-row .notification-background:active {
        box-shadow: inset 0 0 0 1px #${theme.surface1Alpha};
        background-color: #${theme.sapphireAlpha};
        color: #${theme.textAlpha};
      }

      .notification.critical progress {
        background-color: #${theme.redAlpha};
      }

      .notification.low progress,
      .notification.normal progress {
        background-color: #${theme.blueAlpha};
      }

      .control-center-dnd {
        margin-top: 5px;
        border-radius: 8px;
        background: #${theme.surface0Alpha};
        border: 1px solid #${theme.surface1Alpha};
        box-shadow: none;
      }

      .control-center-dnd:checked {
        background: #${theme.surface0Alpha};
      }

      .control-center-dnd slider {
        background: #${theme.surface1Alpha};
        border-radius: 8px;
      }

      .widget-dnd {
        margin: 0px;
        font-size: 1.1rem;
      }

      .widget-dnd > switch {
        font-size: initial;
        border-radius: 8px;
        background: #${theme.surface0Alpha};
        border: 1px solid #${theme.surface1Alpha};
        box-shadow: none;
      }

      .widget-dnd > switch:checked {
        background: #${theme.surface0Alpha};
      }

      .widget-dnd > switch slider {
        background: #${theme.surface1Alpha};
        border-radius: 8px;
        border: 1px solid #${theme.overlay0Alpha};
      }

      .widget-mpris .widget-mpris-player {
        background: #${theme.surface0Alpha};
        padding: 7px;
      }

      .widget-mpris .widget-mpris-title {
        font-size: 1.2rem;
      }

      .widget-mpris .widget-mpris-subtitle {
        font-size: 0.8rem;
      }

      .widget-menubar > box > .menu-button-bar > button > label {
        font-size: 3rem;
        padding: 0.5rem 2rem;
      }

      .widget-menubar > box > .menu-button-bar > :last-child {
        color: #${theme.redAlpha};
      }

      .power-buttons button:hover,
      .powermode-buttons button:hover,
      .screenshot-buttons button:hover {
        background: #${theme.surface0Alpha};
      }

      .control-center .widget-label > label {
        color: #${theme.textAlpha};
        font-size: 2rem;
      }

      .widget-buttons-grid {
        padding-top: 1rem;
      }

      .widget-buttons-grid > flowbox > flowboxchild > button label {
        font-size: 2.5rem;
      }

      .widget-volume {
        padding-top: 1rem;
      }

      .widget-volume label {
        font-size: 1.5rem;
        color: #${theme.sapphireAlpha};
      }

      .widget-volume trough highlight {
        background: #${theme.sapphireAlpha};
      }

      .widget-backlight trough highlight {
        background: #${theme.yellowAlpha};
      }

      .widget-backlight label {
        font-size: 1.5rem;
        color: #${theme.yellowAlpha};
      }

      .widget-backlight .KB {
        padding-bottom: 1rem;
      }

      .image {
        padding-right: 0.5rem;
      }
    '';
  };
}
