/* ==========================================================================
   Dosing Calculator Component
   Fixed interactive calculator for LIVMARLI ALGS and PFIC dosing.
   ========================================================================== */

@layer components {

  /* --------------------------------------------------------------------------
     Container
     -------------------------------------------------------------------------- */

  .dosing-calculator {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    min-height: 360px;
  }

  /* --------------------------------------------------------------------------
     Prompt Text
     -------------------------------------------------------------------------- */

  .dosing-calculator__prompt {
    text-align: center;
    font-size: var(--theme-font-size, 1.125rem);
    color: var(--color-text-secondary, #555);
    margin-bottom: var(--space-4, 1rem);
  }

  /* --------------------------------------------------------------------------
     Indication Radio Toggle
     -------------------------------------------------------------------------- */

  .dosing-calculator__indications {
    display: flex;
    justify-content: center;
    gap: var(--space-3, 0.75rem);
    margin-bottom: var(--space-6, 1.5rem);
  }

  .dosing-calculator__radio {
    display: flex;
    align-items: center;
    gap: var(--space-2, 0.5rem);
    padding: var(--space-2, 0.5rem) var(--space-5, 1.25rem);
    border: 1px solid var(--color-border, #E0E0E0);
    border-radius: var(--radius-pill, 999px);
    cursor: pointer;
    background: var(--color-white, #fff);
    /* box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08); */
    transition: background 150ms ease, box-shadow 150ms ease;
    user-select: none;
  }

  .dosing-calculator__radio[data-indication="algs"] {
    background: #E7F3E5;
  }

  .dosing-calculator__radio[data-indication="pfic"] {
    background: #FFF5E0;
  }

  /* .dosing-calculator__radio:hover {
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
  } */

  .dosing-calculator__radio:focus-within:has(:focus-visible) {
    outline: 2px solid currentColor;
    outline-offset: 2px;
  }

  .dosing-calculator__radio-input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
  }

  .dosing-calculator__radio-indicator {
    display: inline-block;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 2px solid var(--color-gray-400, #BDBDBD);
    background: var(--color-white, #fff);
    transition: all 150ms ease;
    flex-shrink: 0;
  }

  /* ALGS radio: green fill */
  .dosing-calculator__radio[data-indication="algs"] .dosing-calculator__radio-input:checked ~ .dosing-calculator__radio-indicator {
    border-color: var(--color-green, #4C9A2A);
    background: var(--color-green, #4C9A2A);
    box-shadow: inset 0 0 0 3px var(--color-white, #fff);
  }

  /* PFIC radio: blue fill */
  .dosing-calculator__radio[data-indication="pfic"] .dosing-calculator__radio-input:checked ~ .dosing-calculator__radio-indicator {
    border-color: #003A70;
    background: #003A70;
    box-shadow: inset 0 0 0 3px var(--color-white, #fff);
  }

  .dosing-calculator__radio-label {
    font-weight: 600;
    font-size: var(--theme-font-size, 1.125rem);
    color: var(--color-text-primary, #313131);
  }

  /* --------------------------------------------------------------------------
     Weight Selector
     -------------------------------------------------------------------------- */

  .dosing-calculator__weight {
    text-align: center;
    margin-bottom: var(--space-6, 1.5rem);

    &.disabled {
      opacity: 0.5;
      pointer-events: none;
    }
  }

  .dosing-calculator__weight-label {
    display: block;
    font-size: var(--theme-font-size-sm, 1rem);
    font-weight: 600;
    color: var(--color-text-primary, #313131);
    margin-bottom: var(--space-2, 0.5rem);
  }

  .dosing-calculator__select-wrapper {
    display: inline-block;
    position: relative;
    min-width: 220px;
  }

  /* Trigger button */
  .dosing-calculator__select-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2, 0.5rem);
    padding: var(--space-2, 0.5rem) var(--space-4, 1rem);
    font-family: inherit;
    font-size: var(--theme-font-size, 1.125rem);
    color: var(--color-text-primary, #313131);
    background: var(--color-white, #fff);
    border: 1px solid var(--color-border, #E0E0E0);
    border-radius: var(--radius-pill, 999px);
    cursor: pointer;
    transition: border-color 150ms ease;
  }

  .dosing-calculator__select-trigger:focus-visible {
    outline: 2px solid var(--color-blue, #0077C8);
    outline-offset: 2px;
  }

  .dosing-calculator__select-trigger[aria-expanded="true"] {
    border-color: var(--color-text-secondary, #555);
  }

  .dosing-calculator__select-chevron {
    flex-shrink: 0;
    transition: transform 200ms ease;
  }

  .dosing-calculator__select-trigger[aria-expanded="true"] .dosing-calculator__select-chevron {
    transform: rotate(180deg);
  }

  /* Listbox (custom dropdown panel) */
  .dosing-calculator__select-listbox {
    display: none;
    position: absolute;
    top: calc(100% + var(--space-1, 0.25rem));
    left: 50%;
    transform: translateX(-50%);
    min-width: 100%;
    max-height: 305px;
    overflow-y: auto;
    margin: 0;
    padding: 0;
    list-style: none;
    background: var(--color-white, #fff);
    border-radius: var(--radius-lg, 1rem);
    box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.25);
    z-index: 25;
  }

  .dosing-calculator__select-listbox.is-open {
    display: block;
  }

  /* Individual option */
  .dosing-calculator__select-option {
    padding: var(--space-3, 0.75rem) var(--space-4, 1rem);
    font-size: var(--theme-font-size, 1.125rem);
    color: var(--color-text-primary, #313131);
    cursor: pointer;
    border-bottom: 1px solid var(--color-border, #E0E0E0);
    transition: background-color 100ms ease;
  }

  .dosing-calculator__select-option:last-child {
    border-bottom: none;
  }

  .dosing-calculator__select-option:first-child {
    border-radius: var(--radius-lg, 1rem) var(--radius-lg, 1rem) 0 0;
  }

  .dosing-calculator__select-option:last-child {
    border-radius: 0 0 var(--radius-lg, 1rem) var(--radius-lg, 1rem);
  }

  .dosing-calculator__select-option:only-child {
    border-radius: var(--radius-lg, 1rem);
  }

  .dosing-calculator__select-option:hover,
  .dosing-calculator__select-option.is-focused {
    background-color: var(--color-gray-100, #F5F5F5);
  }

  .dosing-calculator__select-option[aria-selected="true"] {
    background-color: var(--color-gray-100, #F5F5F5);
    font-weight: 600;
  }

  /* --------------------------------------------------------------------------
     Results Area
     -------------------------------------------------------------------------- */

  .dosing-calculator__results {
    margin-top: var(--space-2, 0.5rem);
  }

  /* --------------------------------------------------------------------------
     Card Grid
     -------------------------------------------------------------------------- */

  .dosing-calculator__cards {
    display: grid;
    gap: var(--space-4, 1rem);
    justify-content: center;
  }

  .dosing-calculator__cards--2col {
    grid-template-columns: repeat(2, 448px);
  }

  .dosing-calculator__cards--3col {
    grid-template-columns: repeat(3, 361px);
  }

  @media (max-width: 767px) {
    .dosing-calculator__cards--2col,
    .dosing-calculator__cards--3col {
      grid-template-columns: 1fr;
    }
  }

  /* --------------------------------------------------------------------------
     Individual Card
     -------------------------------------------------------------------------- */

  .dosing-calculator__card {
    border-radius: var(--radius-lg, 1rem);
    overflow: hidden;
    /* box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); */
    display: flex;
    flex-direction: row;
  }

  /* Card Left Column (colored by indication) */
  .dosing-calculator__card-header {
    padding: var(--space-4, 1rem);
    color: var(--color-white, #fff);
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 190px;
    flex-shrink: 0;
    align-items: center;
  }

  .dosing-calculator__cards--3col .dosing-calculator__card-header {
    width: 154px;
  }

  .dosing-calculator__card-header-wrapper {
    width: fit-content;
  }

  .dosing-calculator__cards--algs .dosing-calculator__card-header {
    background: #0F8A00;
  }

  .dosing-calculator__cards--pfic .dosing-calculator__card-header {
    background: linear-gradient(90deg, #FEC35A 0%, #FBAA19 100%);
    color: var(--color-blue-dark)
  }

  .dosing-calculator__card-phase {
    font-weight: 700;
    font-size: 18px;
    margin-bottom: var(--space-1, 0.25rem);
  }

  .dosing-calculator__card-dose {
    font-weight: 600;
    font-size: 18px;
  }

  .dosing-calculator__card-freq {
    font-size: 18px;
    opacity: 0.9;
  }

  /* Card Right Content (tinted by indication) */
  .dosing-calculator__card-body {
    padding: var(--space-3, 0.75rem);
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: var(--space-2, 0.5rem);
    width: 258px;
  }

  .dosing-calculator__cards--algs .dosing-calculator__card-body {
    background: #E7F3E5;
  }

  .dosing-calculator__cards--pfic .dosing-calculator__card-body {
    background: #FFF5E0;
  }

  /* White rounded boxes for oral solution / tablets */
  .dosing-calculator__card-section {
    background: var(--color-white, #fff);
    border-radius: var(--radius-md, 0.5rem);
    padding: var(--space-2, 0.5rem) var(--space-3, 0.75rem);
    text-align: center;
  }

  .dosing-calculator__card-section-label {
    font-size: 18px;
    font-weight: 600;
    color: var(--color-black);
    text-transform: capitalize;
    margin-bottom: var(--space-1, 0.25rem);
  }

  .dosing-calculator__card-section-value {
    font-size: 18px;
    font-weight: 400;
    color: var(--color-black);
  }

  .dosing-calculator__card-section-note {
    font-size: 18px;
    color: var(--color-black);
  }

  /* "or" divider between sections */
  .dosing-calculator__card-or {
    text-align: center;
    font-size: 18px;
    font-weight: 600;
    color: var(--color-black);
    line-height: 1;
  }
}
