/* DECLARATIONS */
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap");

/* ROOT VARIABLES */
:root {
  --clor: #512f96;
  --color-primary: #7380ec;
  --color-danger: #ff7782;
  --color-success: #41f1b6;
  --color-warning: #ffbb55;
  --color-white: #202528; /* Цает блока */
  --color-info-dark: #7d8da1;
  --color-info-light: #dce1eb;
  --color-dark: #edeffd; /* Свечение блока */
  --color-light: rgba(0, 0, 0, 0.4);
  --color-primary-variant: #111e88;
  --color-dark-variant: #a3bdcc;
  --color-background: #181a1e; /* Темный фон 181a1e 202528 */

  --card-border-radius: 2rem;
  --border-radius-1: 0.4rem;
  --border-radius-2: 0.8rem;
  --border-radius-3: 1.2rem;

  --card-padding: 1.8rem;
  --padding-1: 1.2rem;

  --box-leagues: 0 0.5rem 0.5rem var(--color-light);
  --box-shadow: 0 2rem 3rem var(--color-light);
}

/* DARK THEME VARIABLES */
.dark-theme-variables {
  --color-background: #f6f6f9; /* Светлый фон f6f6f9 fff */
  --color-white: #fff; /* Цает блока */
  --color-dark: #363949;  /* Свечение блока */
  --color-dark-variant: #677483;
  --color-light: rgba(132, 139, 200, 0.18);
  --box-shadow: 0 1rem 2rem var(--color-light);
}

/* STYLES */
* {
  margin: 0;
  padding: 0;
  outline: 0;
  appearance: none;
  border: 0;
  text-decoration: none;
  list-style: none;
  box-sizing: border-box;
}
html {
  font-size: 14px;
}
body {
  width: 100vw;
  height: 100vh;
  font-family: poppins, sans-serif;
  font-size: 0.88rem;
  background: var(--color-background);
  /*user-select: none;*/
  overflow-x: hidden;
  color: var(--color-dark);
}
.container {
  display: grid;
  width: 96%;
  margin: 0 auto;
  gap: 1.8rem;
  grid-template-columns: 14rem auto 23rem;
}
a {
  color: var(--color-dark);
}
img {
  display: block;
  width: 100%;
}
h1 {
  font-weight: 800;
  font-size: 1.8rem;
}
h2 {
  font-size: 1.4rem;
}
h3 {
  font-size: 0.87rem;
}
h4 {
  font-size: 0.8rem;
}
h5 {
  font-family: 0.77rem;
}
small {
  font-size: 0.75rem;
}
.profile-photo {
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 50%;
  overflow: hidden;
}
.text-muted {
  color: var(--color-info-dark);
}
p {
  color: var(--color-dark-variant);
}
b {
  color: var(--color-dark);
}
.primary {
  color: var(--color-primary);
}
.danger {
  color: var(--color-danger);
}
.success {
  color: var(--color-success);
}
.warning {
  color: var(--color-warning);
}
.time {
  font-size: 1rem;
}

/* START ASIDE */
aside {
  height: 100vh;
}
aside .top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 1.4rem;
}
aside .logo {
  display: flex;
  gap: 0.8rem;
}
aside .logo img {
  width: 2rem;
  height: 2rem;
}
aside .close {
  display: none;
}

/* START SIDEBAR */
aside .sidebar {
  display: flex;
  flex-direction: column;
  height: 86vh;
  position: relative;
  top: 3rem;
}
aside h3 {
  font-weight: 500;
}
aside .sidebar a {
  display: flex;
  color: var(--color-info-dark);
  margin-left: 2rem;
  gap: 1rem;
  align-items: center;
  position: relative;
  height: 3.7rem;
  transition: all 300ms ease;
}
aside .sidebar a span {
  font-size: 1.6rem;
  transition: all 300ms ease;
}
aside .sidebar a:last-child {
  position: absolute;
  bottom: 2rem;
  width: 100%;
}
aside .sidebar a.active {
  background: var(--color-light);
  color: var(--color-primary);
  margin-left: 0;
}
aside .sidebar a.active:before {
  content: "";
  width: 6px;
  height: 100%;
  background: var(--color-primary);
}
aside .sidebar a.active span {
  color: var(--color-primary);
  margin-left: calc(1rem - 6px);
}
aside .sidebar a:hover {
  color: var(--color-primary);
}
aside .sidebar a:hover span {
  margin-left: 1rem;
}
aside .sidebar .message-count {
  background: var(--color-danger);
  color: var(--color-white);
  padding: 2px 10px;
  font-size: 11px;
  border-radius: var(--border-radius-1);
}
/* END SIDEBAR */
/* END ASIDE */

/* START MAIN */
main {
  margin-top: 1.4rem;
}

/* START DATE INPUT */
main .date {
  display: inline-block;
  background: var(--color-light);
  border-radius: var(--border-radius-1);
  margin-top: 1rem;
  padding: 0.5rem 1.6rem;
}
main .date input[type="date"] {
  background: transparent;
  color: var(--color-dark);
}
/* END DATE INPUT */
text {
  white-space: nowrap;
}
/* white-space: nowrap */

/* START INSIGHTS */
main .insights {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.6rem;
}
main .insights > div {
  background: var(--color-white);
  padding: var(--card-padding);
  border-radius: var(--card-border-radius);
  margin-top: 1rem;
  box-shadow: var(--box-shadow);
  transition: all 300ms ease;
}
main .insights > div:hover {
  cursor: pointer;
  box-shadow: none;
}
main .insights > div span {
  background: var(--color-primary);
  padding: 0.5rem;
  border-radius: 50%;
  color: var(--color-white);
  font-size: 2rem;
}
main .insights > div.expenses span {
  background: var(--color-danger);
}
main .insights > div.income span {
  background: var(--color-success);
}
main .insights > div .middle {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
main .insights h3 {
  margin: 1rem 0 0.6rem;
  font-size: 1rem;
}
main .insights .progress {
  position: relative;
  width: 92px;
  height: 92px;
  border-radius: 50%;
}
main .insights svg {
  width: 7rem;
  height: 7rem;
}
main .insights svg circle {
  fill: none;
  stroke: var(--color-primary);
  stroke-width: 14;
  stroke-linecap: round;
  transform: translate(5px, 5px);
  stroke-dasharray: 110;
  stroke-dashoffset: 92;
}

main .insights .progress .number {
  position: absolute;
  top: -2px;
  left: -2px;
  height: 100%;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
main .insights small {
  margin-top: 1.6rem;
  display: block;
}
/* END INSIGHTS */

/* START FORECAST информационный блок прогнозов */
main .forecast {
  max-height: 400px; /* max Высота box */
  overflow-y: auto; /* Прокрутка внутри box-match */
  margin-top: 2rem;
}
main .forecast h2{
  margin-bottom: 0.8rem;
}
main .forecast table {
  background: var(--color-white);
  width: 100%;
  border-radius: var(--card-border-radius);
  padding: var(--card-padding);
  text-align: center;
  box-shadow: var(--box-shadow);
  transition: all 300ms ease;
}
main .forecast table:hover {
  cursor: pointer;
  box-shadow: none;
}
main table tbody td {
  height: 2.8rem;
  border-bottom: 1px solid var(--color-light);
  color: var(--color-dark-variant);
}
main table tbody tr:last-child td {
  border: none;
}
main .forecast a {
  text-align: center;
  display: block;
  margin: 1rem auto;
  color: var(--color-primary);
}
/* END FORECAST */
/* START ORDER информационный блок история прогнозов */
main .order {
  max-height: 400px; /* max Высота box */
  overflow-y: auto; /* Прокрутка внутри box-match */
  margin-top: 2rem;
}
main .order h2 {
  margin-bottom: 0.8rem;
}
main .order table {
  background: var(--color-white);
  width: 100%;
  border-radius: var(--card-border-radius);
  padding: var(--card-padding);
  text-align: center;
  box-shadow: var(--box-shadow);
  transition: all 300ms ease;
}
main .order table:hover {
  cursor: pointer;
  box-shadow: none;
}
main table tbody td {
  height: 2.8rem;
  border-bottom: 1px solid var(--color-light);
  color: var(--color-dark-variant);
}
main table tbody tr:last-child td {
  border: none;
}
main .order a {
  text-align: center;
  display: block;
  margin: 1rem auto;
  color: var(--color-primary);
}
/* END ORDER */

/* START STATISTIC statistic */ 
main .recent-orders {
  max-height: 400px; /* max Высота box */
  overflow-y: auto; /* Прокрутка внутри box-match */
  margin-top: 2rem;
}
main .recent-orders h2 {
  margin-bottom: 0.8rem;
}
main .recent-orders table {
  background: var(--color-white);
  width: 100%;
  border-radius: var(--card-border-radius);
  padding: var(--card-padding);
  text-align: center;
  box-shadow: var(--box-shadow);
  transition: all 300ms ease;
}
main .recent-orders table:hover {
  cursor: pointer;
  box-shadow: none;
}
main table tbody td {
  height: 2.8rem;
  border-bottom: 1px solid var(--color-light);
  color: var(--color-dark-variant);
}
main table tbody tr:last-child td {
  border: none;
}
main .recent-orders a {
  text-align: center;
  display: block;
  margin: 1rem auto;
  color: var(--color-primary);
}
/* END RECENT ORDERS */

/* START RIGHT SECTION */
.right {
  margin-top: 1.4rem;
}
.right .top {
  display: flex;
  justify-content: end;
  gap: 2rem;
}
.right .top button {
  display: none;
}
.right .theme-toggler {
  background: var(--color-light);
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 1.6rem;
  width: 4.2rem;
  cursor: pointer;
  border-radius: var(--border-radius-1);
}
.right .theme-toggler span {
  font-size: 1.2rem;
  width: 50%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.right .theme-toggler span.active {
  background: var(--color-primary);
  color: white;
  border-radius: var(--border-radius-1);
}
.right .top .profile {
  display: flex;
  gap: 2rem;
  text-align: right;
}

/* START RECENT UPDATES информационный блок обновлений на портале */ 
/*
В данном CSS-коде `.right .recent-updates` — это селектор, который применяется к элементам с классом `recent-updates`, 
находящимся внутри элемента с классом `right`. Свойство `margin-top: 1rem;` задает верхний внешний отступ (margin) для этих элементов, равный 1 рем.
- `rem` — это единица измерения в CSS, которая означает "root em". 
Она основывается на размере шрифта корневого элемента (обычно `<ht ml>`). 
Например, если размер шрифта корневого элемента равен 16 пикселей, то `1rem` будет равен 16 пикселям. 
Использование `rem` позволяет создавать более гибкие и масштабируемые интерфейсы, 
так как отступы и размеры будут изменяться пропорционально изменению размера шрифта корневого элемента.
*/
.right .recent-updates {
  margin-top: 1rem; /* Отступ заголовка от header */
}
/*
В этом CSS-коде селектор `.right .recent-updates h2` применяется к элементам `<h2>`, 
которые находятся внутри элемента с классом `recent-updates`, который, в свою очередь, находится внутри элемента с классом `right`.
Свойство `margin-bottom: 0.8rem;` задает нижний внешний отступ (margin) для этих заголовков `<h2>`, равный 0.8 рем. Как и в предыдущем примере, 
`rem` — это единица измерения, основанная на размере шрифта корневого элемента. 
Это позволяет обеспечить консистентность и масштабируемость отступов в зависимости от базового размера шрифта.
*/
.right .recent-updates h2 {
  margin-bottom: 0.8rem; /* Отступ box "recent-updates" от заголовка */
}
/*
В этом CSS-коде селектор `.right .recent-updates .updates` применяется к элементам с классом `updates`, 
которые находятся внутри элемента с классом `recent-updates`, который, в свою очередь, находится внутри элемента с классом `right`.
1. `background: var(--color-white);` — задает цвет фона элемента, используя CSS-переменную `--color-white`. 
Это позволяет легко изменять цвет фона, изменяя значение переменной.
2. `padding: var(--card-padding);` — задает внутренние отступы (padding) элемента, используя значение из CSS-переменной `--card-padding`.
3. `border-radius: var(--card-border-radius);` — задает радиус скругления углов элемента, используя значение из CSS-переменной `--card-border-radius`. 
Это придает элементу более мягкий и округлый вид.
4. `box-shadow: var(--box-shadow);` — добавляет тень к элементу, используя значение из CSS-переменной `--box-shadow`. 
Это может добавить глубину и визуальное выделение элементу.
5. `transition: all 300ms ease;` — задает анимацию перехода для всех изменяемых свойств элемента. 
В данном случае, любые изменения стилей элемента будут плавно анимироваться в течение 300 миллисекунд с использованием функции плавности `ease`.
*/
.right .recent-updates .updates {
  background: var(--color-white);
  padding: var(--card-padding);
  border-radius: var(--card-border-radius);
  box-shadow: var(--box-shadow);
  transition: all 300ms ease;
}
/*
В этом CSS-коде селектор `.right .recent-updates .updates:hover` применяется к элементам с классом `updates`, 
которые находятся внутри элемента с классом `recent-updates`, который, в свою очередь, находится внутри элемента с классом `right`. 
Псевдокласс `:hover` используется для применения стилей, когда пользователь наводит курсор мыши на элемент.
1. `cursor: pointer;` — изменяет вид курсора на указатель (обычно это рука с вытянутым указательным пальцем), 
когда пользователь наводит курсор на элемент. Это часто используется для обозначения того, что элемент кликабелен, например, как ссылка или кнопка.
2. `box-shadow: none;` — убирает тень элемента при наведении курсора. Это может быть использовано для создания эффекта "нажатия" или выделения, 
когда элемент визуально изменяется при взаимодействии с пользователем.
*/
.right .recent-updates .updates:hover {
  cursor: pointer;
  box-shadow: none;
}

.right .recent-updates .updates .update {
  display: grid;
  grid-template-columns: 2.6rem auto;
  gap: 1rem;
  margin-bottom: 1rem;
}
/* END RECENT UPDATES */

/* START LIGA HOCKEY */
.right .sales-analytics {
  max-height: 700px; /* max Высота box */
  overflow-y: auto; /* Прокрутка внутри box-match */
  margin-top: 2rem;
}
.right .sales-analytics h2 {
  margin-bottom: 0.8rem;
}
.right .sales-analytics .item {
  background: var(--color-white);
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.7rem; /* Отступ от обьектов */
  padding: 0.2rem var(--card-padding);
  border-radius: var(--border-radius-3);
  box-shadow: var(--box-leagues);
  transition: all 300ms ease;
}
.right .sales-analytics .item:hover {
  background: var(--color-primary);
  color: white;
  cursor: pointer;
  box-shadow: none;
}
.right .sales-analytics .item .right {
  display: flex;
  justify-content: space-between;
  align-items: start;
  margin: 0;
  width: 300%;
}

.right .sales-analytics .item .icon {
  padding: 0.1rem;
  color: var(--color-white);
  border-radius: 50%;
  display: flex;
}
.right .sales-analytics .add-product {
  background: transparent;
  border: 2px dashed var(--color-primary);
  color: var(--color-primary);
  display: flex;
  align-items: center;
  justify-content: center;
}
.right .sales-analytics .add-product:hover {
  background: var(--color-primary);
  color: white;
}
.right .sales-analytics .add-product div {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.right .sales-analytics .add-product h3 {
  font-weight: 600;
}
/* END SALES ANALYTICS */
/* END RIGHT SECTION */
