:root{
  --nh-green:#64cf16;
  --nh-green-dark:#52b60d;
  --nh-text:#18202b;
  --nh-muted:#6e7680;
  --nh-border:#e8ecef;
  --nh-bg:#f7f9f7;
}

body{
  color:var(--nh-text);
  background:#fff;
}

.nh-header{
  background:rgba(255,255,255,.96);
  border-bottom:1px solid #edf0f2;
  backdrop-filter:blur(14px);
  box-shadow:0 4px 18px rgba(10,25,10,.045);
}

.nh-logo{
  font-size:1.65rem;
  font-weight:800;
  text-decoration:none;
  color:#111820;
  letter-spacing:-.04em;
}

.nh-logo span{
  color:var(--nh-green);
}

.nh-header .nav-link{
  color:#222a31;
  font-size:.95rem;
  font-weight:600;
}

.nh-header .nav-link:hover{
  color:var(--nh-green-dark);
}

.nh-user-btn{
  display:flex;
  align-items:center;
  gap:.5rem;
  border:0;
  background:#fff;
}

.nh-user-avatar{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--nh-green);
  color:#fff;
  font-weight:800;
}

.nh-wallet-mini{
  border-radius:12px;
}

.nh-footer{
  background:#171b20;
  color:#fff;
}

.schedule-page{
  background:linear-gradient(180deg,#fff,#f7f9f7 38%,#fff);
  min-height:80vh;
}

.schedule-title-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:1rem;
  margin-bottom:1.25rem;
}

.schedule-eyebrow{
  color:var(--nh-green-dark);
  font-weight:700;
  margin-bottom:.4rem;
}

.schedule-title-row h1{
  margin:0;
  font-size:2rem;
  font-weight:800;
  letter-spacing:-.035em;
}

.schedule-title-row p{
  margin:.35rem 0 0;
  color:var(--nh-muted);
}

.schedule-controls{
  display:flex;
  align-items:center;
  gap:.7rem;
}

.week-switcher{
  display:flex;
  align-items:center;
  gap:.45rem;
}

.week-switcher span,
.week-switcher a{
  width:42px;
  height:34px;
  border-radius:10px;
  border:1px solid var(--nh-border);
  display:grid;
  place-items:center;
  text-decoration:none;
  color:#424b53;
  background:#fff;
  font-weight:700;
}

.week-switcher span.active{
  background:var(--nh-green);
  color:#fff;
  border-color:var(--nh-green);
}

.timeline-shell{
  background:#fff;
  border:1px solid var(--nh-border);
  border-radius:18px;
  box-shadow:0 10px 35px rgba(20,35,20,.055);
  overflow:hidden;
}

.timeline-scroll{
  overflow-x:auto;
  scrollbar-width:thin;
}

.timeline-grid{
  display:grid;
  grid-template-columns:150px repeat(13,110px);
  min-width:1580px;
}

.timeline-head{
  position:sticky;
  top:0;
  z-index:3;
  background:#fbfcfb;
  border-bottom:1px solid var(--nh-border);
}

.timeline-day-head,
.timeline-hour{
  padding:1rem .6rem;
  font-weight:700;
  text-align:center;
  border-right:1px solid var(--nh-border);
}

.timeline-row{
  position:relative;
  min-height:118px;
  border-bottom:1px solid var(--nh-border);
}

.timeline-row:last-child{
  border-bottom:0;
}

.timeline-day{
  grid-column:1;
  grid-row:1;
  padding:1.1rem;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-right:1px solid var(--nh-border);
  background:#fbfcfb;
  z-index:2;
}

.timeline-day strong{
  font-size:1.15rem;
}

.timeline-day span{
  color:var(--nh-muted);
  font-size:.9rem;
}

.timeline-cell{
  grid-row:1;
  min-height:118px;
  border-right:1px solid #eef1f2;
}

.lesson-card{
  grid-row:1;
  align-self:center;
  justify-self:stretch;
  z-index:2;
  margin:8px 5px;
  padding:.65rem .7rem;
  border-radius:10px;
  border:1px solid color-mix(in srgb,var(--lesson-color),white 45%);
  background:color-mix(in srgb,var(--lesson-color),white 88%);
  text-align:left;
  color:#17202a;
  min-height:95px;
  box-shadow:0 3px 12px rgba(0,0,0,.035);
  transition:.15s ease;
}

.lesson-card:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(0,0,0,.08);
}

.lesson-card strong,
.lesson-card span,
.lesson-card small,
.lesson-card b{
  display:block;
}

.lesson-card strong{
  color:var(--lesson-color);
  font-size:.9rem;
}

.lesson-card span{
  font-size:.78rem;
  margin:.1rem 0;
}

.lesson-card small{
  font-size:.72rem;
  color:#4f5961;
}

.lesson-card b{
  margin-top:.35rem;
  font-size:.82rem;
  color:var(--lesson-color);
}

.schedule-benefits{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  background:#fff;
  border:1px solid var(--nh-border);
  border-radius:16px;
  overflow:hidden;
}

.schedule-benefits>div{
  display:flex;
  gap:.8rem;
  align-items:center;
  padding:1.1rem 1.2rem;
  border-right:1px solid var(--nh-border);
}

.schedule-benefits>div:last-child{
  border-right:0;
}

.schedule-benefits i{
  font-size:1.4rem;
  color:var(--nh-green-dark);
}

.schedule-benefits strong,
.schedule-benefits small{
  display:block;
}

.schedule-benefits small{
  color:var(--nh-muted);
}

.lesson-modal{
  border:0;
  border-radius:22px;
  box-shadow:0 30px 90px rgba(0,0,0,.18);
}

.lesson-modal-info{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:.8rem;
  padding:1rem 0 1.2rem;
}

.lesson-modal-info>div{
  display:flex;
  align-items:center;
  gap:.6rem;
  color:#505a63;
}

.payment-box{
  border:1px solid var(--nh-border);
  border-radius:16px;
  overflow:hidden;
}

.payment-option{
  padding:1rem;
  border-bottom:1px solid var(--nh-border);
}

.payment-option:last-child{
  border-bottom:0;
}

.payment-option label{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding-left:.35rem;
}

.payment-option span strong,
.payment-option span small{
  display:block;
}

.payment-option span small{
  color:var(--nh-muted);
}

.disabled-option{
  opacity:.5;
}

@media(max-width:991.98px){
  .schedule-title-row{
    align-items:flex-start;
    flex-direction:column;
  }

  .schedule-controls{
    width:100%;
  }

  .schedule-controls form{
    flex:1;
  }

  .schedule-benefits{
    grid-template-columns:1fr 1fr;
  }

  .schedule-benefits>div:nth-child(2){
    border-right:0;
  }
}

@media(max-width:575.98px){
  .schedule-benefits{
    grid-template-columns:1fr;
  }

  .schedule-benefits>div{
    border-right:0;
    border-bottom:1px solid var(--nh-border);
  }

  .lesson-modal-info{
    grid-template-columns:1fr;
  }

  .nh-wallet-mini{
    display:none;
  }
}

.payment-methods {
    border: 1px solid #e3e7eb;
    border-radius: 16px;
    overflow: hidden;
    margin-bottom: 16px;
    background: #fff;
}

.payment-method {
    position: relative;
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    min-height: 78px;
    padding: 16px 18px;
    margin: 0;
    cursor: pointer;
    background: #fff;
    border-bottom: 1px solid #e3e7eb;
    transition: background .15s ease;
}

.payment-method:last-child {
    border-bottom: 0;
}

.payment-method:hover {
    background: #fafbfc;
}

.payment-method input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.payment-radio {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    border: 2px solid #c9d0d7;
    border-radius: 50%;
    position: relative;
}

.payment-method input:checked + .payment-radio {
    border-color: #55cf00;
}

.payment-method input:checked + .payment-radio::after {
    content: "";
    position: absolute;
    width: 8px;
    height: 8px;
    left: 3px;
    top: 3px;
    border-radius: 50%;
    background: #55cf00;
}

.payment-content {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
}

.payment-content strong {
    font-size: 16px;
    font-weight: 700;
    color: #20252b;
}

.payment-content small {
    display: block;
    margin-top: 3px;
    font-size: 14px;
    color: #7a838c;
}

.payment-right {
    margin-left: auto;
    white-space: nowrap;
    color: #7a838c;
    font-size: 14px;
}

.payment-right strong {
    color: #20252b;
}

.payment-method:has(input:checked) {
    background: #fbfff8;
}

.reservation-submit {
    height: 49px;
    border: 0;
    border-radius: 9px;
    font-size: 18px;
    font-weight: 700;
    background: #55d000;
}

.reservation-submit:hover {
    background: #49bd00;
}

@media (max-width: 600px) {
    .payment-method {
        padding: 14px;
        min-height: 72px;
    }

    .payment-right {
        font-size: 13px;
    }

    .payment-content strong {
        font-size: 15px;
    }

    .payment-content small {
        font-size: 13px;
    }
}
