/* Copyright 2024 The Chromium Authors
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file. */

/* #css_wrapper_metadata_start
 * #type=style-lit
 * #scheme=relative
 * #import=./cr_shared_vars.css.js
 * #css_wrapper_metadata_end */

.cr-nav-menu-item {
  /* cr-nav-menu-item CSS inputs */
  --cr-nav-menu-item-color: var(--google-grey-900);
  --cr-nav-menu-item-color-selected: var(--google-blue-700);
  --cr-nav-menu-item-background-color-hover: var(--google-grey-200);
  --cr-nav-menu-item-background-color-selected: var(--google-blue-50);
  --cr-nav-menu-item-icon-color: var(--google-grey-700);
  --cr-nav-menu-item-icon-color-hover: var(--google-grey-700);
  --cr-nav-menu-item-icon-color-selected: var(--google-blue-600);

  --iron-icon-fill-color: var(--cr-nav-menu-item-icon-color);
  /* Sizes icons for iron-icons. */
  --iron-icon-height: 20px;
  --iron-icon-width: 20px;
  /* Sizes icons for cr-icons. */
  --cr-icon-ripple-size: 20px;
  align-items: center;
  border-end-end-radius: 100px;
  border-start-end-radius: 100px;
  box-sizing: border-box;
  color: var(--cr-nav-menu-item-color);
  display: flex;
  font-size: 14px;
  font-weight: 500;
  line-height: 14px;
  margin-inline-end: 2px;
  margin-inline-start: 1px;
  min-height: 40px;
  overflow: hidden;
  padding-block-end: 10px;
  padding-block-start: 10px;
  padding-inline-start: 23px;
  padding-inline-end: 16px;
  position: relative;
  text-decoration: none;
}

:host-context([webui-refresh-2026]) {
  .cr-nav-menu-item {
    /* TODO(crbug.com/509908129): Remove redundant CSS variables. */
    --cr-nav-menu-item-color: var(--color-nav-menu-item);
    --cr-nav-menu-item-color-selected: var(--color-nav-menu-item-selected);
    --cr-nav-menu-item-background-color-hover: var(
        --color-nav-menu-item-background-hover);
    --cr-nav-menu-item-background-color-selected: var(
        --color-nav-menu-item-background-selected);
    --cr-nav-menu-item-icon-color: var(--color-nav-menu-item);
    --cr-nav-menu-item-icon-color-selected: var(--color-nav-menu-item-selected);
  }

  /**
   * Set the outline style to solid so the browser will use the values here
   * instead of delegating to the OS with auto.
   */
  .cr-nav-menu-item:focus{
    outline: solid 2px var(--cr-focus-outline-color);
    outline-offset: -2px;
    border-start-start-radius: 10px;
    border-end-start-radius: 10px;
  }
}

:host-context(cr-drawer) .cr-nav-menu-item {
  margin-inline-end: 8px;
}

.cr-nav-menu-item:hover {
  --iron-icon-fill-color: var(--cr-nav-menu-item-icon-color-hover);
  background: var(--cr-nav-menu-item-background-color-hover);
}

.cr-nav-menu-item[selected] {
  --iron-icon-fill-color: var(--cr-nav-menu-item-icon-color-selected);
  background: var(--cr-nav-menu-item-background-color-selected);
  color: var(--cr-nav-menu-item-color-selected);
}

@media (prefers-color-scheme: dark) {
  .cr-nav-menu-item {
    --cr-nav-menu-item-color: white;
    --cr-nav-menu-item-color-selected: var(--google-grey-900);

    --cr-nav-menu-item-background-color-hover: var(--google-grey-800);
    --cr-nav-menu-item-background-color-selected: var(--google-blue-300);

    --cr-nav-menu-item-icon-color: var(--google-grey-500);
    --cr-nav-menu-item-icon-color-hover: white;
    --cr-nav-menu-item-icon-color-selected: black;
  }
}

.cr-nav-menu-item:focus {
  outline: auto 5px -webkit-focus-ring-color;
  /**
   * A non-zero z-index to force the outline to appear above the fill
   * background of selected item.
   */
  z-index: 1;
}

.cr-nav-menu-item:focus:not([selected]):not(:hover) {
  background: transparent; /* Override iron-list selectable item CSS. */
}

.cr-nav-menu-item cr-icon,
.cr-nav-menu-item iron-icon {
  flex-shrink: 0;
  margin-inline-end: 20px;
  pointer-events: none;
  vertical-align: top;
}

@media (forced-colors: active) {
  .cr-nav-menu-item[selected] {
    background: Highlight;
    color: HighlightText;
    --iron-icon-fill-color: HighlightText;
    /* The default application of forced colors does not work here. */
    forced-color-adjust: none;
  }
}
