@import url('https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap');
@import url("https://fonts.googleapis.com/css2?family=Raleway:ital,wght@0,100..900;1,100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap");
@import url('https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,200..1000;1,200..1000&display=swap');

@tailwind base;
@tailwind components;
@tailwind utilities;

@font-face {
  font-family: "NunitoUI";
  src: url(/assets/NunitoSans-dc39e2e5d157b193fcfde51953b2b9d540c10f7917ea7f716287b51ea6ec49db.ttf) format("ttf");
}

.nunito-600 {
  font-family: "Nunito", sans-serif;
  font-optical-sizing: auto;
  font-weight: 600;
  font-style: normal;
}
.nunito-500 {
  font-family: "Nunito", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
}
.nunito-700 {
    font-family: "Nunito", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
}

.raleway-500 {
  font-family: "Raleway", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
}

.roboto-flex-500 {
  font-family: "Roboto Flex", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

.raleway-500 {
    font-family: "Raleway", sans-serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
}

.raleway-600 {
    font-family: "Raleway", sans-serif;
    font-optical-sizing: auto;
    font-weight: 600;
    font-style: normal;
}

.roboto-flex-300 {
    font-family: "Roboto Flex", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
}


@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: only light;
  }
}

@layer utilities {
  input[list]::-webkit-calendar-picker-indicator {
    display: none !important;
    -webkit-appearance: none;
  }

  input[list]::-webkit-list-button {
    display: none !important;
    -webkit-appearance: none;
  }

  .select-arrow {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background: no-repeat right center / 22px 22px;
  }

  .select-arrow {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23A8A8A8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  }

  .select-arrow:hover {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23212229' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  }

  .select-arrow:focus {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%233b82f6' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 12l4-4 4 4'/%3e%3c/svg%3e");
  }

  .select-arrow:disabled {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23A8A8A8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
    cursor: not-allowed;
  }

  .select-arrow:disabled:hover {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23A8A8A8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  }

  .select-arrow:disabled:focus {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23A8A8A8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  }
}

.custom-accordion .collapse .collapse-title::after,
.custom-accordion .collapse-arrow .collapse-title::after {
  display: none !important;
}

.accordion-arrow {
  transform-origin: center;
  transition: transform 380ms cubic-bezier(0.22, 0.9, 0.32, 1);
  display: inline-block;
}

.accordion-arrow {
  transform: rotate(0deg);
}

input[type="checkbox"].accordion-toggle:checked + label .accordion-arrow,
input[type="checkbox"].accordion-toggle:checked ~ label .accordion-arrow {
  transform: rotate(180deg);
}

.accordion-content {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-8px);
  will-change: max-height, opacity, transform;
  transition:
    max-height 520ms cubic-bezier(0.2, 0.8, 0.2, 1),
    opacity 620ms cubic-bezier(0.2, 0.8, 0.2, 1),
    transform 620ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

input[type="checkbox"].accordion-toggle:checked + label + .accordion-content,
input[type="checkbox"].accordion-toggle:checked ~ .accordion-content {
  max-height: 800px;
  opacity: 1;
  transform: translateY(0);
}

label[for^="semester-accordion"] {
  gap: 0;
}

#autoCompleteInternationalCode {
  border: none;
  focus-outline: none;
}

.radio-image-remove {
  background-image: none !important;
}

.asterisk {
  @apply text-red-stepper;
}

.form-field-style {
  @apply px-0 py-1 border-x-0 border-t-0 border-b-[1px] border-line-color hover:border-black focus:border-black focus:ring-0;
}

.badge-base {
  @apply flex w-fit h-fit cursor-help whitespace-nowrap select-none border-[1.5px] px-[12px] py-[2px] rounded-full text-[12px] font-bold;
}

.stage-badge {
  @apply badge-base text-dark-blue border-dark-blue;
}

.role-badge {
  @apply badge-base text-badge-purple border-badge-purple;
}

.new-stage-badge {
    @apply badge-base text-white border-dark-blue bg-dark-blue;
}

.new-role-badge {
    @apply badge-base text-white border-badge-purple bg-badge-purple lowercase;
}

.text-field {
  @apply flex items-center w-full border-x-0 border-t-0 border-b-[1px]
    border-line-color placeholder-line-color px-0 text-text-gray
    hover:shadow-[0_0.5px_0_0_#212229] hover:border-b-dark hover:text-dark
    focus:shadow-[0_0.5px_0_0_#3b82f6] focus:ring-0 focus:border-b-focus-blue focus:text-dark;
}

.text-field-left-padding {
  @apply flex items-center w-full border-x-0 border-t-0 border-b-[1px]
    border-line-color placeholder-line-color pl-12 text-text-gray
    hover:shadow-[0_0.5px_0_0_#212229] hover:border-b-dark hover:text-dark
    focus:shadow-[0_0.5px_0_0_#3b82f6] focus:ring-0 focus:border-b-focus-blue focus:text-dark
    disabled:border-dashed disabled:text-line-color disabled:bg-transparent;
}

.text-field:disabled {
  @apply border-dashed text-line-color bg-transparent cursor-not-allowed;
}

.text-field:disabled:hover {
  @apply shadow-none border-b-line-color text-line-color;
}

.text-field:disabled:focus {
  @apply shadow-none border-b-line-color text-line-color;
}

.text-field-label {
  @apply flex items-center text-base font-medium text-text-gray
    transition-colors mb-3 lowercase group-hover:text-dark group-focus-within:text-focus-blue;
}
.text-label-empty-field {
    @apply flex items-center text-base font-medium text-dark
    transition-colors mb-3 lowercase group-hover:text-dark group-focus-within:text-focus-blue;
}
.text-field:not(:disabled) + .text-field-label {
  @apply group-hover:text-dark group-focus-within:text-focus-blue;
}

.text-field:disabled + .text-field-label {
  @apply text-line-color;
}

.submit-button-filled {
    @apply cursor-pointer flex px-6 py-2 bg-focus-blue text-[16px] text-white font-[nunito] font-medium justify-center items-center
    focus:ring-0 focus:outline-0 transition-all duration-700 hover:bg-button-hover
    disabled:bg-button-focus lowercase;
}

.modal-right {
  display: flex;
  justify-content: flex-end;
}

.modal-right .modal-box {
  transform: translateX(100%);
  transition: transform 0.3s ease-out;
}

.modal-toggle:checked ~ .modal-right .modal-box {
  transform: translateX(0);
}

.modal-right .modal-backdrop {
  opacity: 0;
  transition: opacity 0.3s ease;
}

.modal-toggle:checked ~ .modal-right .modal-backdrop {
  opacity: 1;
}

.gradient-button {
  @apply cursor-pointer flex py-2 text-base bg-gradient-to-r from-gradient-green to-gradient-purple text-white font-semibold rounded-none transition-all duration-700 ease-in-out hover:bg-gradient-to-l hover:from-gradient-purple hover:to-gradient-green hover:shadow-lg transform hover:scale-[1.02] focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gradient-green justify-center items-center;
}

.gradient-button:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

#generate-credentials:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  background-color: #9ca3af;
}

#generate-credentials:disabled:hover {
  background-color: #9ca3af;
  transform: none;
}

.custom-scrollbar::-webkit-scrollbar {
  width: 8px;
}

.custom-scrollbar::-webkit-scrollbar-track {
  background: rgba(208, 226, 255, 1);
  border-radius: 4px;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
  background: rgba(153, 179, 255, 1);
  border-radius: 4px;
}

.custom-scrollbar::-webkit-scrollbar-thumb:hover {
  background: rgba(133, 159, 235, 1);
}

.custom-scrollbar {
  scrollbar-width: thin;
  scrollbar-color: rgba(153, 179, 255, 1) rgba(208, 226, 255, 1);
}

.modal-skills {
  @apply uppercase;
}

.flex-col-s {
  @apply flex flex-col;
}

.x-button {
  @apply absolute right-6 top-6 text-gray-400 hover:text-gray-600 text-3xl flex items-center justify-center;
}

.vaul-text {
  @apply transition-colors duration-300 uppercase font-medium truncate max-w-[9ch] inline-block align-bottom;
}

.vaul-card {
  @apply flex px-4 py-2 bg-gray-50 border-[1px] border-gray-400 rounded-lg justify-center items-center mt-3;
}

.border-button-blue {
    @apply flex lowercase px-6 py-2 bg-gray-50 border-[1px] font-[nunito] border-focus-blue text-base text-focus-blue font-medium hover:bg-[#DBEAFE] active:ring-[1px] active:ring-[#1D4ED8] justify-center items-center cursor-pointer;
}

.border-button-grey {
    @apply flex px-6 py-2 bg-gray-50 border-[1px] border-line-color text-base text-gray-600 font-medium hover:bg-gray-200 active:ring-[1px] active:ring-gray-700 justify-center items-center lowercase;
}

.button-grey-no-border {
    @apply flex px-6 py-2 bg-card-background text-[16px] text-blue-gray font-medium hover:bg-[#EDE9FE] active:ring-[1px] active:ring-gray-700 justify-center items-center lowercase transition-all;
}

.blue-radio {
    @apply h-5 w-5 rounded-full border-[1.5px] border-text-gray text-[#3B82F6] checked:bg-[#3B82F6] checked:border-[#3B82F6] focus:ring-0 focus:ring-offset-0 cursor-pointer;
    background-image: none !important;
    position: relative;
}

.filter-button {
  @apply inline-flex text-text-gray font-sans font-semibold items-center gap-x-[10px] active:ring-[1px] active:ring-gray-700 cursor-pointer;

  :hover {
    @apply text-button-hover;
  }
}

.filter-button:hover svg,
.filter-button:hover p,
.filter-button:focus svg,
.filter-button:focus p {
  @apply text-button-hover;
}

.filter-button.toggled {
  @apply inline-flex text-dark-blue font-sans font-semibold items-center gap-x-[10px] active:ring-[1px] active:ring-gray-700;
}

.filter-button.toggled:hover svg,
.filter-button.toggled:hover p,
.filter-button.toggled:focus svg,
.filter-button.toggled:focus p {
  @apply text-focus-blue;
}

.choices-custom {
  margin: 0px -5px !important;
}

.select-dropdown {
  border: 0px !important;
  box-shadow: 1px 1px 3px 2px rgba(144, 161, 188, 0.25);
  margin-top: 4px !important;
}

.single-select-list {
  padding: 6px !important;
}

.single-select-item {
  font-family: "Nunito", sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  color: text-header !important;
}

.is-highlighted-custom {
  @apply bg-card-background;
}

.is-selected-custom {
  @apply bg-focus-blue text-white;
}

.choices__inner > .choices__arrow {
  display: none !important;
}

.hidden-arrow {
  display: none !important;
}

.choices[data-type*="select-one"]::after {
  display: none !important;
}

.choices[data-type*="select-one"] {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23A8A8A8' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  background-position: right 2px center;
  background-repeat: no-repeat;
  background-size: 22px 22px;
}

.choices[data-type*="select-one"]:hover {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%23212229' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
}

.choices[data-type*="select-one"]:focus {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%233b82f6' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 12l4-4 4 4'/%3e%3c/svg%3e");
}


.blue-radio:checked::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 95%;  /* размер внутреннего круга */
    height: 95%;
    background-color: #3B82F6; /* цвет центра */
    border: 2px solid #F9FAFB; /* цвет “пробела” между border и центром (card-background) */
    border-radius: 50%;
    transform: translate(-50%, -50%);
    pointer-events: none;
}

.custom-dash-7-7 {
    border-style: dashed;
    border-image: repeating-linear-gradient(
            to right,
            #A8A8A8 0,
            #A8A8A8 7px,
            transparent 7px,
            transparent 14px
    ) 1;
}

.result-filter {
  @apply inline-flex items-center rounded-full bg-tip-color px-[12px] py-[1px];
}

.filter-badge {
    @apply font-[nunito] font-light text-dark rounded-full bg-[#F8F6F9] flex items-center gap-x-2 text-sm pl-3 pr-2 py-[2.5px] mb-2;
}

/* Отступ для компенсации фиксированного хедера */
.scroll-mt-20 {
    scroll-margin-top: 5rem;
}

/* Стили для якорных ссылок в содержании */
a[href^="#"] {
    cursor: pointer;
}

a[href^="#"]:hover {
    color: #1e40af;
}

.markdown-content {
    /* Защитные стили */
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-word;
}

.markdown-content > * {
    max-width: 100%;
    white-space: normal;
}

/* Особое внимание к инлайновым элементам */
.markdown-content span,
.markdown-content strong,
.markdown-content em,
.markdown-content a {
    white-space: normal;
    display: inline;
}


.semester-stepper-wrapper {
  @apply flex w-full gap-[6px] items-start;
}

.semester-stepper-wrapper li {
  @apply flex flex-col items-center justify-center gap-y-[8px];
}

.semester-stepper-wrapper li .stage-line {
  @apply h-[12px] bg-current w-full;
}

.semester-stepper-wrapper li .stage-line .progress-bar {
  width: var(--progress);
  @apply absolute top-0 left-0 bg-yellow-stepper h-full;
}

.ball {
  @apply bg-current w-[9px] h-[9px] rounded-full;
}

.semester-stepper-wrapper li .period {
  @apply text-[16px] font-bold;
}

.custom-scrollbar {
  @apply [&::-webkit-scrollbar]:w-[6px]
      [&::-webkit-scrollbar-track]:bg-scroll-track-color
      [&::-webkit-scrollbar-track]:rounded-full
      [&::-webkit-scrollbar-thumb]:bg-scroll-thumb-color
      [&::-webkit-scrollbar-thumb]:rounded-full;
}

.flat-button-for-filled {
    @apply cursor-pointer flex py-2 text-[16px] text-white font-[nunito] w-44 font-medium justify-center items-center
    focus:ring-0 focus:outline-0 transition-all duration-700 lowercase hover:bg-button-hover disabled:bg-button-focus;
}

.flat-button-w-full {
    @apply cursor-pointer flex py-2 px-3 text-[16px] text-white font-[nunito] font-medium justify-center items-center
    focus:ring-0 focus:outline-0 transition-all duration-700 lowercase hover:bg-button-hover disabled:bg-button-focus;
}

.dashboard-el {
    @apply bg-card-background px-8 py-4 grid grid-cols-12 items-center;
}

.dashboard-el-icon {
    @apply col-span-4 flex gap-x-2 font-bold text-[16px] uppercase items-center;
}

.dashboard-el-descript {
    @apply col-span-5 flex flex-wrap;
}

.dashboard-el-button {
    @apply col-span-3 flex justify-end;
}

.skills-bars {
    @apply grid grid-cols-2 pb-2 mr-12 ml-8 border-b-[1px] items-center;
}

.active-tab {
    @apply text-dark flex gap-x-1 items-center pb-3;
}

.tab {
    @apply text-text-gray flex gap-x-1 items-center pb-3;
}

.active-tab-underline {
    @apply mx-3 h-[6px] bg-gradient-to-r from-[#83C4F8] to-[#3B82F6];
}
.tab-underline {
    @apply w-full h-[6px] bg-white;
}

.left-menu-header-grid {
  @apply flex flex-col gap-y-[32px];
}

.left-menu-section-grid {
  @apply grid grid-flow-row gap-y-[8px]
}

.section-header {
  @apply flex font-semibold text-[16px] mb-[8px];
}

.section-link {
    @apply flex px-[8px] py-[4px] rounded-[4px];
    &:hover {
      @apply bg-card-background;
    }

    &.is-disabled {
      @apply text-line-color pointer-events-none;
    }
    
    &.is-active {
      @apply bg-card-background text-focus-blue;
    }
  }
.custom-dash-full {
    padding: 20px;
    width: 100%;
    display: flex;
    background:
            repeating-linear-gradient(90deg, #AEB7C2 0 7px, transparent 7px 14px) top,
            repeating-linear-gradient(90deg, #AEB7C2 0 7px, transparent 7px 14px) bottom,
            repeating-linear-gradient(0deg,  #AEB7C2 0 7px, transparent 7px 14px) left,
            repeating-linear-gradient(0deg,  #AEB7C2 0 7px, transparent 8px 14px) right;
    background-size: 100% 1px, 100% 1px, 1px 100%, 1px 100%;
    background-repeat: no-repeat;
    overflow-x: hidden;
}

.head-row {
    @apply bg-card-background;
}
.custom-dash-no-p {
    background:
            repeating-linear-gradient(90deg, #AEB7C2 0 7px, transparent 7px 14px) top,
            repeating-linear-gradient(90deg, #AEB7C2 0 7px, transparent 7px 14px) bottom,
            repeating-linear-gradient(0deg,  #AEB7C2 0 7px, transparent 7px 14px) left,
            repeating-linear-gradient(0deg,  #AEB7C2 0 7px, transparent 8px 14px) right;
    background-size: 100% 1px, 100% 1px, 1px 100%, 1px 100%;
    background-repeat: no-repeat;
    overflow-x: hidden;
    z-index: 10;
}

.head-cell {
    @apply w-full flex flex-col justify-center items-center text-center;
}
.issue-accent {
    width: 4px;
    background-color: #D0E2FF; /* bg-pale-blue */
    overflow: hidden;
}

.issue-accent::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(
            to top,
            #BDA6D7,
            #D0E2FF
    );
    opacity: 0;
    transition: opacity 0.5s ease;
}


.row-divider {
    height: 1px;
    background: repeating-linear-gradient(
            90deg,
            #AEB7C2 0 7px,
            transparent 7px 14px
    );
    margin: 6px 0;
}

.filter-btn {
    @apply px-3 py-1 rounded-sm bg-white border border-line-color
    hover:bg-pale-blue transition;
}

.filter-btn.is-active {
    @apply bg-focus-blue text-white border-focus-blue;
}
/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *


 */
