/* ==UserStyle==
@name ichi.moe Catppuccin
@namespace github.com/catppuccin/userstyles/styles/ichi.moe
@homepageURL https://github.com/catppuccin/userstyles/tree/main/styles/ichi.moe
@version 2025.09.06
@updateURL https://github.com/catppuccin/userstyles/raw/main/styles/ichi.moe/catppuccin.user.less
@supportURL https://github.com/catppuccin/userstyles/issues?q=is%3Aopen+is%3Aissue+label%3Aichi.moe
@description Soothing pastel theme for ichi.moe
@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"]

@var checkbox zen "Zen Mode" 0
==/UserStyle== */

@import "https://userstyles.catppuccin.com/lib/lib.less";

@-moz-document domain("ichi.moe") {
  :root {
    @media (prefers-color-scheme: light) {
      #catppuccin(@lightFlavor);
    }
    @media (prefers-color-scheme: dark) {
      #catppuccin(@darkFlavor);
    }
  }

  #catppuccin(@flavor) {
    #lib.palette();
    #lib.defaults();

    html,
    body {
      background: @base;
      color: @text;
    }

    footer {
      color: @subtext1;
    }

    span.query-word:hover {
      border-color: @pink;
    }

    .panel-error {
      background-color: fade(@red, 80%);
    }

    .highlight {
      background-color: fade(@yellow, 80%);
    }

    .gloss {
      background-color: if(@flavor = "latte", @base, @surface0);
    }

    .gloss,
    .gloss-rtext {
      border-color: if(@flavor = "latte", @surface2, @overlay0);
    }

    .gloss:target {
      & when (@flavor = "latte") {
        box-shadow: 0 0 5px @surface2;
        -webkit-box-shadow: 0 0 5px @surface2;
        -moz-box-shadow: 0 0 5px @surface2;
      }
      box-shadow: 0 0 5px @overlay0;
      -webkit-box-shadow: 0 0 5px @overlay0;
      -moz-box-shadow: 0 0 5px @overlay0;
    }

    a {
      color: @sapphire;
    }

    a.wiktionary-link {
      color: @text;
    }

    a.info-link {
      color: @text;
    }

    a.info-link:hover {
      border-bottom-color: @sapphire;
    }

    .note-skipped a {
      color: @subtext1;
    }

    .note-skipped a:hover {
      border-color: @subtext1;
    }

    .jspDrag {
      background-color: if(@flavor = "latte", @surface1, @surface2);
    }

    .conj-negative {
      color: @red;
    }

    .conj-formal {
      color: @blue;
    }

    .pos-desc {
      color: @green;
    }

    .reading-table tr:nth-of-type(2n),
    table.kanji-match tr:nth-of-type(2n) {
      background: fade(if(@flavor = "latte", @surface0, @surface1), 50%);
    }

    .kanji-big a {
      color: @subtext1;
    }

    .autocomplete-suggestions {
      border-color: if(@flavor = "latte", @surface2, @overlay0);
    }

    .autocomplete-suggestions,
    .autocomplete-selected {
      background: if(@flavor = "latte", @base, @surface0);
    }

    .autocomplete-suggestions strong {
      color: @lavender;
    }

    .autocomplete-group strong {
      border-bottom-color: @text;
    }

    .button {
      background-color: @sapphire;
      border-color: @sapphire;
      color: @base;
    }

    button:hover,
    button:focus,
    .button:hover,
    .button:focus {
      background-color: darken(@sapphire, 25%);
      color: @base;
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
      color: @text;
    }

    input[type="text"],
    input[type="password"],
    input[type="date"],
    input[type="datetime"],
    input[type="datetime-local"],
    input[type="month"],
    input[type="week"],
    input[type="email"],
    input[type="number"],
    input[type="search"],
    input[type="tel"],
    input[type="time"],
    input[type="url"],
    input[type="color"],
    textarea,
    input[type="file"],
    input[type="checkbox"],
    input[type="radio"],
    select,
    input[type="text"]:focus,
    input[type="password"]:focus,
    input[type="date"]:focus,
    input[type="datetime"]:focus,
    input[type="datetime-local"]:focus,
    input[type="month"]:focus,
    input[type="week"]:focus,
    input[type="email"]:focus,
    input[type="number"]:focus,
    input[type="search"]:focus,
    input[type="tel"]:focus,
    input[type="time"]:focus,
    input[type="url"]:focus,
    input[type="color"]:focus,
    textarea:focus,
    input[type="file"]:focus,
    input[type="checkbox"]:focus,
    input[type="radio"]:focus,
    select:focus {
      & when (@flavor = "latte") {
        background-color: @base;
        border-color: @surface0;
      }
      background-color: @surface0;
      border-color: @surface1;
      color: @text;
    }

    .header-nav a {
      color: @pink;
    }

    .header-nav a:hover {
      color: darken(@pink, 15%);
    }

    .jspTrack {
      background: if(@flavor = "latte", @surface0, @surface1);
    }

    .f-dropdown {
      background-color: if(@flavor = "latte", @base, @surface0);
      border-color: @subtext1;
    }

    .f-dropdown::before {
      border-color: transparent transparent @subtext1;
    }

    span.query-pick {
      color: @text;
    }

    .has-tip {
      color: @subtext1;
      border-color: @overlay1;
    }

    .has-tip:hover,
    .has-tip:focus {
      border-bottom-color: @sapphire;
      color: @sapphire;
    }

    label {
      color: @subtext1;
    }

    table {
      background: @base;
      background-color: if(@flavor = "latte", @surface0, @surface1);
    }

    table tr th,
    table tr td {
      color: @subtext1;
    }

    table tr.even,
    table tr.alt,
    table tr:nth-of-type(2n) {
      background: fade(if(@flavor = "latte", @surface0, @surface1), 50%);
    }

    .kanji-table td,
    .reading-table tr ~ tr > td,
    table.kanji-match td,
    tr.match-row-kanji,
    tr.match-row-reading {
      border-color: if(@flavor = "latte", @surface0, @surface1);
    }

    img {
      filter: contrast(1.2) opacity(85%);
    }

    /* Options */
    & when (@zen = 1) {
      .header,
      footer,
      .landing-page {
        display: none;
      }

      div.wrapper {
        display: flex;
        flex-direction: column;
        align-items: center;
        place-content: center center;
        padding: 50px 0;
        min-height: 100vh;
        margin: 0;
      }

      .gloss-all {
        width: 100%;
        padding: 0 10px;
      }

      #div-ichiran-result {
        padding: 0 10px;
      }

      #div-kanji-form,
      #w-form {
        width: 100%;
      }

      #k-form > div > div,
      #w-form > div > div {
        width: 100%;
        max-width: 304px;
      }
    }
  }
}