/* ==UserStyle==
@name NameMC Catppuccin
@namespace github.com/catppuccin/userstyles/styles/namemc
@homepageURL https://github.com/catppuccin/userstyles/tree/main/styles/namemc
@version 2024.12.31
@updateURL https://github.com/catppuccin/userstyles/raw/main/styles/namemc/catppuccin.user.less
@supportURL https://github.com/catppuccin/userstyles/issues?q=is%3Aopen+is%3Aissue+label%3Anamemc
@description Soothing pastel theme for NameMC
@author Catppuccin
@license MIT

@preprocessor less
@var select lightFlavor "Light Flavor" ["latte:Latte*", "frappe:Frappé", "macchiato:Macchiato", "mocha:Mocha"]
@var select darkFlavor "Dark Flavor" ["latte:Latte", "frappe:Frappé", "macchiato:Macchiato", "mocha:Mocha*"]
@var select accentColor "Accent" ["rosewater:Rosewater", "flamingo:Flamingo", "pink:Pink", "mauve:Mauve*", "red:Red", "maroon:Maroon", "peach:Peach", "yellow:Yellow", "green:Green", "teal:Teal", "blue:Blue", "sapphire:Sapphire", "sky:Sky", "lavender:Lavender", "subtext0:Gray"]
==/UserStyle== */

@-moz-document domain("namemc.com") {
  :root[data-bs-theme="dark"] {
    #catppuccin(@darkFlavor);
  }
  :root[data-bs-theme="light"] {
    #catppuccin(@lightFlavor);
  }

  #catppuccin(@flavor) {
    @rosewater: @catppuccin[@@flavor][@rosewater];
    @flamingo: @catppuccin[@@flavor][@flamingo];
    @pink: @catppuccin[@@flavor][@pink];
    @mauve: @catppuccin[@@flavor][@mauve];
    @red: @catppuccin[@@flavor][@red];
    @maroon: @catppuccin[@@flavor][@maroon];
    @peach: @catppuccin[@@flavor][@peach];
    @yellow: @catppuccin[@@flavor][@yellow];
    @green: @catppuccin[@@flavor][@green];
    @teal: @catppuccin[@@flavor][@teal];
    @sky: @catppuccin[@@flavor][@sky];
    @sapphire: @catppuccin[@@flavor][@sapphire];
    @blue: @catppuccin[@@flavor][@blue];
    @lavender: @catppuccin[@@flavor][@lavender];
    @text: @catppuccin[@@flavor][@text];
    @subtext1: @catppuccin[@@flavor][@subtext1];
    @subtext0: @catppuccin[@@flavor][@subtext0];
    @overlay2: @catppuccin[@@flavor][@overlay2];
    @overlay1: @catppuccin[@@flavor][@overlay1];
    @overlay0: @catppuccin[@@flavor][@overlay0];
    @surface2: @catppuccin[@@flavor][@surface2];
    @surface1: @catppuccin[@@flavor][@surface1];
    @surface0: @catppuccin[@@flavor][@surface0];
    @base: @catppuccin[@@flavor][@base];
    @mantle: @catppuccin[@@flavor][@mantle];
    @crust: @catppuccin[@@flavor][@crust];
    @accent: @catppuccin[@@flavor][@@accentColor];

    color-scheme: if(@flavor = latte, light, dark);

    ::selection {
      background-color: fade(@accent, 30%);
    }

    input,
    textarea {
      &::placeholder {
        color: @subtext0 !important;
      }
    }

    #bsButton(@col, @bgCol) {
      --bs-btn-color: @col;
      --bs-btn-hover-color: darken(@col, 5%);
      --bs-btn-active-color: darken(@col, 5%);
      --bs-btn-disabled-color: @col;

      --bs-btn-bg: @bgCol;
      --bs-btn-hover-bg: darken(@bgCol, 5%);
      --bs-btn-active-bg: darken(@bgCol, 5%);
      --bs-btn-disabled-bg: @bgCol;
      --bs-btn-border-color: @bgCol;
      --bs-btn-hover-border-color: @bgCol;
      --bs-btn-active-border-color: @bgCol;
      --bs-btn-disabled-border-color: @bgCol;
    }
    #bsButtonOutline(@col, @hover) {
      --bs-btn-color: @col;
      --bs-btn-hover-bg: @col;
      --bs-btn-active-bg: @col;
      --bs-btn-border-color: @col;
      --bs-btn-disabled-color: @col;
      --bs-btn-focus-shadow-rgb: @col;
      --bs-btn-hover-border-color: @col;
      --bs-btn-active-border-color: @col;
      --bs-btn-disabled-border-color: @col;

      --bs-btn-hover-color: @hover;
      --bs-btn-active-color: @hover;
    }

    --bs-body-color: @text;
    --bs-body-color-rgb: #rgbify(@text)[];
    --bs-body-bg: @base;
    --bs-body-bg-rgb: #rgbify(@base)[];
    --bs-emphasis-color: @text;
    --bs-emphasis-color-rgb: #rgbify(@text)[];
    --bs-blue: @blue;
    --bs-indigo: @mauve;
    --bs-purple: @mauve;
    --bs-pink: @pink;
    --bs-red: @red;
    --bs-orange: @peach;
    --bs-yellow: @yellow;
    --bs-green: @green;
    --bs-teal: @teal;
    --bs-cyan: @sapphire;
    --bs-secondary-color: @subtext0;
    --bs-secondary-color-rgb: #rgbify(@subtext0)[];
    --bs-tertiary-color: @subtext1;
    --bs-tertiary-color-rgb: #rgbify(@subtext1)[];
    --bs-tertiary-bg: @base;
    --bs-tertiary-bg-rgb: #rgbify(@base)[];
    --bs-secondary-text-emphasis: @subtext0;
    --bs-success-text-emphasis: @green;
    --bs-primary: @accent;
    --bs-primary-rgb: #rgbify(@accent)[];
    --bs-secondary: @subtext0;
    --bs-secondary-rgb: #rgbify(@subtext0)[];
    --bs-success: @green;
    --bs-success-rgb: #rgbify(@green)[];
    --bs-info: @sky;
    --bs-info-rgb: #rgbify(@sky)[];
    --bs-warning: @yellow;
    --bs-warning-rgb: #rgbify(@yellow)[];
    --bs-danger: @red;
    --bs-danger-rgb: #rgbify(@red)[];
    --bs-light: @base;
    --bs-light-rgb: #rgbify(@base)[];
    --bs-dark: @text;
    --bs-dark-rgb: #rgbify(@text)[];
    --bs-dark-text-emphasis: @text;
    --bs-primary-bg-subtle: @crust;
    --bs-secondary-bg-subtle: @mantle;
    --bs-success-bg-subtle: fade(@green, 20%);
    --bs-warning-bg-subtle: fade(@yellow, 20%);
    --bs-danger-bg-subtle: @base;
    --bs-secondary-border-subtle: @surface1;
    --bs-success-border-subtle: @green;
    --bs-info-border-subtle: @sky;
    --bs-warning-border-subtle: @yellow;
    --bs-danger-border-subtle: @red;
    --bs-link-color: @accent;
    --bs-link-color-rgb: #rgbify(@accent)[];
    --bs-code-color: @accent;
    --bs-highlight-bg: @base;
    --bs-form-valid-color: @green;
    --bs-focus-ring-color: @accent;
    --bs-form-valid-border-color: @green;
    --bs-form-invalid-color: @red;
    --bs-form-invalid-border-color: @red;

    .btn-primary {
      #bsButton(@crust, @accent);
    }
    .btn-secondary {
      #bsButton(@text, @overlay0);
    }
    .btn-success {
      #bsButton(@crust, @green);
    }
    .btn-info {
      #bsButton(@crust, @sapphire);
    }
    .btn-warning {
      #bsButton(@crust, @yellow);
    }
    .btn-danger {
      #bsButton(@crust, @red);
    }
    .btn-light {
      #bsButton(@crust, @overlay2);
    }
    .btn-dark {
      #bsButton(@text, @surface0);
    }

    .btn-outline-primary {
      #bsButtonOutline(@accent, @text);
    }
    .btn-outline-secondary {
      #bsButtonOutline(@overlay0, @text);
    }
    .btn-outline-success {
      #bsButtonOutline(@green, @text);
    }
    .btn-outline-info {
      #bsButtonOutline(@sapphire, @crust);
    }
    .btn-outline-warning {
      #bsButtonOutline(@yellow, @crust);
    }
    .btn-outline-danger {
      #bsButtonOutline(@red, @text);
    }
    .btn-outline-light {
      #bsButtonOutline(@text, @crust);
    }
    .btn-outline-dark {
      #bsButtonOutline(@surface0, @text);
    }

    .text-success {
      color: @green !important;
    }

    .btn-link {
      --bs-btn-disabled-color: @overlay0;
      --bs-btn-disabled-border-color: transparent;
      --bs-btn-focus-shadow-rgb: #rgbify(@blue)[];
    }

    /* i hate that this is necessary */
    .dropdown-menu {
      --bs-dropdown-header-color: @overlay1 !important;
      --bs-dropdown-border-color: @surface2 !important;
    }

    #header {
      form {
        div.input-group.input-group-lg {
          input.form-control {
            background-color: @surface0 !important;

            &:focus {
              border-color: @accent;
              box-shadow: none;
            }
          }
        }
      }
    }

    .navbar-nav .nav-item a {
      color: @text !important;

      &:hover {
        color: @subtext0 !important;
      }
      span {
        color: @text !important;

        &:hover {
          color: @subtext0 !important;
        }
      }
    }

    .card {
      background-color: @surface0 !important;
      color: @subtext0 !important;
      --bs-card-bg: @base !important;

      .card-header {
        border-color: @surface2 !important;
      }
    }

    /* skin display link */
    div.card-header {
      span {
        color: @text;

        &:hover {
          color: @accent !important;
        }
      }

      strong a {
        color: @accent !important;
      }
    }

    /* skin display background */
    .checkered {
      @dark: fade(@surface0, 40%);
      @light: fade(@surface1, 40%);
      @svg: escape(
        '<svg width="64" height="64" xmlns="http://www.w3.org/2000/svg"><path fill="@{dark}" d="M0 0h32v32H0z"/><path fill="@{light}" d="M32 0h32v32H32zM0 32h32v32H0z"/><path fill="@{dark}" d="M32 32h32v32H32z"/></svg>'
      );
      background-image: url("data:image/svg+xml,@{svg}");
    }

    /* skins page nav buttons */
    .nav.nav-pills {
      .nav-item .nav-link a {
        color: @text !important;
      }
      .nav-link.active {
        background-color: @accent !important;
        color: @crust !important;
      }
    }

    .page-item .page-link {
      background-color: @surface0 !important;
      border-color: @surface2 !important;
      color: @text;

      &.active {
        background-color: @accent !important;
      }

      &:focus,
      &:hover {
        box-shadow: none !important;
        color: @accent !important;
      }
    }

    .page-item.active .page-link {
      background-color: @accent !important;
      border-color: @accent !important;
      color: @crust !important;
    }

    /* single skin page */
    a.badge,
    span.badge {
      background-color: @accent !important;
      color: @crust !important;
    }

    /* usernames page */
    form#upcoming-form {
      div.row {
        label.col-form-label {
          color: @text !important;
        }

        div.col {
          .input-group {
            .input-group-text {
              background-color: @base !important;
              border-color: @surface2 !important;
            }
          }
        }
      }
    }

    .form-control,
    .form-select {
      background-color: @base !important;
      border-color: @surface2 !important;
      box-shadow: none !important;
      color: @subtext1 !important;

      &:focus {
        border-color: @accent !important;
        box-shadow: 0 0 0 0.25rem fade(@accent, 25%);
      }
    }

    /* server list page */
    .mc-red {
      color: @maroon !important;
    }
    .mc-dark-red {
      color: @red !important;
    }
    .mc-gold {
      color: @peach !important;
    }
    .mc-yellow {
      color: @yellow !important;
    }
    .mc-green,
    .mc-dark-green {
      color: @green !important;
    }
    .mc-aqua {
      color: @sky !important;
    }
    .mc-dark-aqua {
      color: @teal !important;
    }
    .mc-blue {
      color: @sapphire !important;
    }
    .mc-dark-blue {
      color: @blue !important;
    }
    .mc-light-purple {
      color: @pink !important;
    }
    .mc-dark-purple {
      color: @mauve !important;
    }

    /* profile page */
    .namemc-rank-10 {
      color: @green !important;
    }

    .namemc-rank-100,
    .namemc-rank-200,
    .namemc-rank-900,
    .namemc-rank-1000 {
      color: @red !important;
    }

    #uuid-select {
      background-color: @surface1 !important;
    }

    .card.mb-3 .card-header a {
      color: @accent !important;
    }

    .skin-button-selected {
      /* society if box-shadow-color existed */
      box-shadow: 0 0 6px @overlay0 !important;
      background-color: @overlay0 !important;
    }

    .player-list {
      a:hover {
        color: @subtext1 !important;
      }
    }

    .head-command,
    #head-command-select {
      background-color: @base !important;

      &:focus {
        border-color: @accent !important;
        box-shadow: none !important;
      }
    }

    button.head-command {
      border-color: @surface0 !important;
      color: @subtext1;

      &:hover {
        background-color: @surface1 !important;
        border-color: @surface2 !important;
        color: @text !important;
      }
    }

    #country {
      background-color: @mantle !important;
    }

    fieldset.form-group input.form-control {
      background-color: @mantle;
    }

    form > .row > .col > .input-group {
      #discord-input,
      #facebook-input,
      #github-input,
      #instagram-input,
      #reddit-input,
      #snapchat-input,
      #soundcloud-input,
      #spotify-input,
      #steam-input,
      #telegram-input,
      #tiktok-input,
      #threads-input,
      #twitch-input,
      #twitter-input,
      #youtube-input,
      fieldset.form-group input.form-control {
        background-color: @mantle;
      }
    }

    & when (@flavor = latte) {
      --bs-black: @text;
      --bs-black-rgb: #rgbify(@text)[];
      --bs-white: @crust;
      --bs-white-rgb: #rgbify(@crust)[];
      --bs-gray: @subtext0;
      --bs-gray-dark: @text;
      --bs-gray-100: @base;
      --bs-gray-200: @mantle;
      --bs-gray-300: @crust;
      --bs-gray-400: @surface0;
      --bs-gray-500: @surface2;
      --bs-gray-600: @overlay2;
      --bs-gray-700: @subtext0;
      --bs-gray-800: @subtext1;
      --bs-gray-900: @text;
      --bs-secondary-bg: @mantle;
      --bs-secondary-bg-rgb: #rgbify(@mantle)[];
      --bs-primary-text-emphasis: @text;
      --bs-info-text-emphasis: @text;
      --bs-warning-text-emphasis: @text;
      --bs-danger-text-emphasis: @red;
      --bs-light-text-emphasis: @subtext0;
      --bs-info-bg-subtle: @surface0;
      --bs-light-bg-subtle: @base;
      --bs-dark-bg-subtle: @surface0;
      --bs-primary-border-subtle: @surface2;
      --bs-light-border-subtle: @mantle;
      --bs-dark-border-subtle: @surface2;
      --bs-link-hover-color: @accent;
      --bs-link-hover-color-rgb: #rgbify(@accent)[];
      --bs-border-color: @crust;

      .mc-black {
        color: @text !important;
      }
      .mc-dark-gray {
        color: @subtext0 !important;
      }
      .mc-gray,
      .mc-reset {
        color: @overlay1 !important;
      }
      .mc-white {
        color: @base !important;
      }
    }

    & when not(@flavor = latte) {
      --bs-black: @crust;
      --bs-white: @text;
      --bs-gray: @overlay2;
      --bs-gray-dark: @surface2;
      --bs-secondary-bg: @surface0;
      --bs-secondary-bg-rgb: #rgbify(@surface0)[];
      --bs-primary-text-emphasis: @sapphire;
      --bs-info-text-emphasis: @sky;
      --bs-warning-text-emphasis: @yellow;
      --bs-danger-text-emphasis: @maroon;
      --bs-light-text-emphasis: @text;
      --bs-info-bg-subtle: @crust;
      --bs-light-bg-subtle: @surface0;
      --bs-dark-bg-subtle: @mantle;
      --bs-primary-border-subtle: @mantle;
      --bs-light-border-subtle: @surface1;
      --bs-dark-border-subtle: @surface0;
      --bs-link-hover-color: @text;
      --bs-link-hover-color-rgb: #rgbify(@text)[];
      --bs-border-color: @surface1;

      .mc-black {
        color: @crust !important;
      }
      .mc-dark-gray {
        color: @overlay0 !important;
      }
      .mc-gray,
      .mc-reset {
        color: @subtext0 !important;
      }
      .mc-white {
        color: @text !important;
      }
    }
  }
}

#rgbify(@color) {
  @rgb: red(@color), green(@color), blue(@color);
}

/* deno-fmt-ignore */
@catppuccin: {
  @latte:     { @rosewater: #dc8a78; @flamingo: #dd7878; @pink: #ea76cb; @mauve: #8839ef; @red: #d20f39; @maroon: #e64553; @peach: #fe640b; @yellow: #df8e1d; @green: #40a02b; @teal: #179299; @sky: #04a5e5; @sapphire: #209fb5; @blue: #1e66f5; @lavender: #7287fd; @text: #4c4f69; @subtext1: #5c5f77; @subtext0: #6c6f85; @overlay2: #7c7f93; @overlay1: #8c8fa1; @overlay0: #9ca0b0; @surface2: #acb0be; @surface1: #bcc0cc; @surface0: #ccd0da; @base: #eff1f5; @mantle: #e6e9ef; @crust: #dce0e8; };
  @frappe:    { @rosewater: #f2d5cf; @flamingo: #eebebe; @pink: #f4b8e4; @mauve: #ca9ee6; @red: #e78284; @maroon: #ea999c; @peach: #ef9f76; @yellow: #e5c890; @green: #a6d189; @teal: #81c8be; @sky: #99d1db; @sapphire: #85c1dc; @blue: #8caaee; @lavender: #babbf1; @text: #c6d0f5; @subtext1: #b5bfe2; @subtext0: #a5adce; @overlay2: #949cbb; @overlay1: #838ba7; @overlay0: #737994; @surface2: #626880; @surface1: #51576d; @surface0: #414559; @base: #303446; @mantle: #292c3c; @crust: #232634; };
  @macchiato: { @rosewater: #f4dbd6; @flamingo: #f0c6c6; @pink: #f5bde6; @mauve: #c6a0f6; @red: #ed8796; @maroon: #ee99a0; @peach: #f5a97f; @yellow: #eed49f; @green: #a6da95; @teal: #8bd5ca; @sky: #91d7e3; @sapphire: #7dc4e4; @blue: #8aadf4; @lavender: #b7bdf8; @text: #cad3f5; @subtext1: #b8c0e0; @subtext0: #a5adcb; @overlay2: #939ab7; @overlay1: #8087a2; @overlay0: #6e738d; @surface2: #5b6078; @surface1: #494d64; @surface0: #363a4f; @base: #24273a; @mantle: #1e2030; @crust: #181926; };
  @mocha:     { @rosewater: #f5e0dc; @flamingo: #f2cdcd; @pink: #f5c2e7; @mauve: #cba6f7; @red: #f38ba8; @maroon: #eba0ac; @peach: #fab387; @yellow: #f9e2af; @green: #a6e3a1; @teal: #94e2d5; @sky: #89dceb; @sapphire: #74c7ec; @blue: #89b4fa; @lavender: #b4befe; @text: #cdd6f4; @subtext1: #bac2de; @subtext0: #a6adc8; @overlay2: #9399b2; @overlay1: #7f849c; @overlay0: #6c7086; @surface2: #585b70; @surface1: #45475a; @surface0: #313244; @base: #1e1e2e; @mantle: #181825; @crust: #11111b; };
};