/* path: src/calc/static/calc/css/blocks/calculator_route.css */

/* =============================================================================
   Calculator Route
   ============================================================================= */

.CalcRoute{
  margin-bottom:var(--space-5);
}

.CalcRoute__inner{
  display:grid;
  gap:var(--space-3);
  padding:var(--space-4);
  border:1px solid var(--divider);
  border-radius:var(--r-m);
  background:var(--surface);
}

/* =============================================================================
   Route Card
   ============================================================================= */

.CalcRouteCard{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:var(--space-3);
  align-items:center;
  padding:var(--space-3);
  border:1px solid var(--divider-2);
  border-radius:var(--r-m);
  background:var(--surface-2);
  transition:
    border-color .15s ease,
    background .15s ease,
    box-shadow .15s ease;
}

.CalcRouteCard:hover{
  border-color:var(--divider-3);
}

.CalcRouteCard:focus-within{
  border-color:rgba(207,133,36,.9);
  box-shadow:0 0 0 1px rgba(207,133,36,.08) inset;
}

.CalcRouteCard__content{
  min-width:0;
  display:grid;
  gap:10px;
}

.CalcRouteCard__row{
  min-width:0;
  display:grid;
  gap:4px;
}

.CalcRouteCard__label{
  color:var(--text);
  font-size:1rem;
  line-height:1.2;
}

.CalcRouteCard__input{
  width:100%;
  min-width:0;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  color:var(--text);
  font:inherit;
  font-size:1rem;
  line-height:1.3;
  outline:none;
}

.CalcRouteCard__input::placeholder{
  color:var(--text-2);
  opacity:1;
}

.CalcRouteCard__divider{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:8px;
  min-width:0;
}

.CalcRouteCard__dot{
  width:8px;
  height:8px;
  border-radius:50%;
  flex:0 0 auto;
}

.CalcRouteCard__dot--start{
  background:rgba(255,255,255,.22);
}

.CalcRouteCard__dot--end{
  background:transparent;
  border:1px solid rgba(255,255,255,.28);
}

.CalcRouteCard__line{
  height:1px;
  background:
    repeating-linear-gradient(
      to right,
      rgba(255,255,255,.16) 0 10px,
      transparent 10px 20px
    );
}

.CalcRouteCard:focus-within .CalcRouteCard__dot--start{
  background:var(--accent);
}

.CalcRouteCard:focus-within .CalcRouteCard__dot--end{
  border-color:var(--accent);
}

.CalcRouteCard:focus-within .CalcRouteCard__line{
  background:
    repeating-linear-gradient(
      to right,
      rgba(207,133,36,.8) 0 10px,
      transparent 10px 20px
    );
}

.CalcRouteCard__swap{
  width:var(--h-btn);
  height:var(--h-btn);
  border:1px solid transparent;
  border-radius:var(--r-m);
  background:rgba(0,0,0,.16);
  color:var(--text);
  font-size:1.3rem;
  line-height:1;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:
    background .15s ease,
    border-color .15s ease,
    color .15s ease,
    transform .08s ease;
}

.CalcRouteCard__swap:hover{
  background:rgba(0,0,0,.22);
}

.CalcRouteCard__swap:active{
  transform:translateY(1px);
}

.CalcRouteCard:focus-within .CalcRouteCard__swap{
  border-color:rgba(207,133,36,.7);
  background:rgba(0,0,0,.16);
}

/* =============================================================================
   Route Stats
   ============================================================================= */

.CalcRoute__stats{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--space-2);
}

.CalcStat{
  width:100%;
  min-width:0;
  padding:var(--space-3);
  border:1px solid var(--divider-2);
  border-radius:var(--r-m);
  background:rgba(255,255,255,.02);
}

.CalcStat__label{
  margin-bottom:6px;
  color:var(--text-2);
  font-size:.92rem;
  line-height:1.2;
}

.CalcStat__value{
  display:flex;
  align-items:baseline;
  gap:6px;
  color:var(--text);
  font-size:1.2rem;
  line-height:1.1;
  letter-spacing:-.01em;
}

.CalcStat__unit{
  color:var(--text-3);
  font-size:.95rem;
  line-height:1;
}

/* =============================================================================
   Tablet / Desktop
   ============================================================================= */

@media (min-width:768px){
  .CalcRoute__inner{
    grid-template-columns:minmax(0, 1.4fr) minmax(260px, .78fr);
    align-items:stretch;
  }

  .CalcRoute__main{
    display:flex;
  }

  .CalcRouteCard{
    width:100%;
    height:100%;
  }

  .CalcRoute__stats{
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:1fr 1fr;
    gap:10px;
    width:100%;
    align-self:stretch;
    height:100%;
  }

  .CalcStat{
    display:flex;
    flex-direction:column;
    justify-content:center;
    height:100%;
    min-height:0;
  }
}

@media (max-width:767.98px){
  .CalcRouteCard{
    grid-template-columns:minmax(0, 1fr) auto;
  }

  .CalcRoute__stats{
    grid-template-columns:1fr 1fr;
  }

  .CalcStat__value{
    font-size:1.1rem;
  }

  .CalcStat__unit{
    font-size:.9rem;
  }
}

@media (min-width:1024px){
  .CalcRoute{
    margin-bottom:28px;
  }

  .CalcRoute__inner{
    grid-template-columns:minmax(0, 1.36fr) minmax(280px, .74fr);
    gap:var(--space-2);
  }

  .CalcRouteCard{
    background:rgba(255,255,255,.02);
    border-color:rgba(255,255,255,.06);
  }

  .CalcRouteCard:hover{
    background:rgba(255,255,255,.024);
    border-color:rgba(255,255,255,.09);
  }

  .CalcRouteCard:focus-within{
    border-color:rgba(207,133,36,.55);
    background:rgba(255,255,255,.026);
    box-shadow:0 0 0 1px rgba(207,133,36,.05) inset;
  }

  .CalcStat{
    background:transparent;
    border-color:rgba(255,255,255,.05);
    padding:16px 18px;
  }

  .CalcStat__label{
    margin-bottom:8px;
  }

  .CalcStat__value{
    font-size:1.14rem;
  }

  .CalcRouteCard__swap{
    width:44px;
    height:44px;
    font-size:1.08rem;
    background:rgba(0,0,0,.1);
    border-color:rgba(255,255,255,.04);
  }

  .CalcRouteCard__swap:hover{
    background:rgba(0,0,0,.13);
    border-color:rgba(255,255,255,.08);
  }

  .CalcRouteCard:focus-within .CalcRouteCard__swap{
    border-color:rgba(207,133,36,.4);
    background:rgba(0,0,0,.11);
  }
}