:root{
  --bg:#091511;
  --text:#ffffff;
  --muted:rgba(255,255,255,0.85);
  --line:#b6d935;
  --blue:#1f8fff;
  --orange:#ff7b35;
  --green:#9fd53a;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;background:#ececec;color:var(--text)}
.page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.phone{
  width:min(100%,430px);
  min-height:880px;
  position:relative;
  overflow:hidden;
  border-radius:42px;
  background:url('assets/background.jpg') center/cover no-repeat;
  box-shadow:0 30px 80px rgba(0,0,0,.22);
}
.overlay{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, rgba(6,16,13,.72) 0%, rgba(6,16,13,.42) 30%, rgba(6,16,13,.58) 100%),
    radial-gradient(circle at 50% 18%, rgba(182,217,53,.12), transparent 24%);
}
.content{position:relative;z-index:1;padding:42px 22px 26px}
.logo{display:block;width:72px;margin:0 auto 10px;filter:drop-shadow(0 10px 18px rgba(0,0,0,.24))}
.eyebrow{text-align:center;letter-spacing:.34em;font-size:10px;margin-bottom:6px}
h1{text-align:center;font-size:20px;line-height:.95;margin:0;font-weight:800}
.subtitle{text-align:center;margin:16px 0 12px;font-size:10px;color:var(--muted)}
.accent-line{
  width:70px;height:4px;border-radius:999px;margin:0 auto 28px;
  background:linear-gradient(90deg, rgba(182,217,53,.15), var(--line), rgba(182,217,53,.15));
}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.card{
  position:relative;
  display:block;
  height:250px;
  border-radius:24px;
  overflow:hidden;
  text-decoration:none;
  color:#fff;
  box-shadow:0 22px 48px rgba(0,0,0,.34);
  transform:translateY(0);
  transition:transform .2s ease, box-shadow .2s ease;
}
.card:hover{transform:translateY(-4px);box-shadow:0 28px 56px rgba(0,0,0,.42)}
.card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gradient{position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.18) 45%, rgba(0,0,0,.78) 100%)}
.card-content{
  position:absolute;left:16px;right:16px;bottom:16px;z-index:1;
  display:flex;align-items:flex-end;justify-content:space-between;gap:12px;
}
.card-text span{display:block;font-size:15px;font-weight:300;line-height:0.5}
.card-text strong{display:block;font-size:12px;font-weight:700;line-height:1.05;margin-top:6px}
.arrow{
  width:44px;height:44px;border-radius:999px;display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(255,255,255,.22);background:rgba(16,25,22,.24);backdrop-filter:blur(8px);font-size:24px
}
.card-blue{border-bottom:4px solid var(--blue)}
.card-orange{border-bottom:4px solid var(--orange)}
.card-green{border-bottom:4px solid var(--green)}
.card-wide{
  grid-column:1/-1;
  height:250px;
}
.card-wide .card-text strong{
  font-size:26px;
}
footer{text-align:center;margin-top:44px}
footer small{display:block;letter-spacing:.22em;font-size:12px;color:rgba(255,255,255,.82)}
footer strong{display:block;margin-top:8px;letter-spacing:.12em;font-size:18px;color:var(--line)}

.subpage-title{font-size:42px;line-height:1;margin:0 0 6px}
.back-link{
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:#fff;
  background:rgba(255,255,255,.08);padding:10px 14px;border-radius:999px;margin-bottom:18px;backdrop-filter:blur(8px)
}
.subpage-subtitle{margin:0 0 22px;color:var(--muted);font-size:16px}
.court-list{display:grid;gap:16px}
.court-item{
  display:grid;grid-template-columns:108px 1fr;gap:14px;align-items:center;
  background:rgba(7,18,15,.5);border:1px solid rgba(255,255,255,.08);
  border-radius:22px;overflow:hidden;box-shadow:0 18px 42px rgba(0,0,0,.28)
}
.court-item img{width:100%;height:100%;min-height:128px;object-fit:cover}
.court-body{padding:14px 14px 14px 0}
.status{
  display:inline-block;padding:7px 10px;border-radius:999px;font-size:12px;
  font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px
}
.status-ok{background:rgba(83,214,107,.18);color:#8ef1a1}
.status-warn{background:rgba(255,190,89,.16);color:#ffd27f}
.court-name{margin:0 0 6px;font-size:24px}
.court-meta{margin:0 0 14px;color:var(--muted);font-size:15px;line-height:1.4}
.reserve-btn{
  border:0;border-radius:14px;padding:12px 18px;font-size:16px;font-weight:700;cursor:pointer;color:#fff;
  background:linear-gradient(180deg,#5ec862,#319a42);box-shadow:0 10px 22px rgba(24,119,51,.28)
}
.reserve-btn:hover{filter:brightness(1.05)}
.note{margin-top:18px;text-align:center;font-size:14px;color:rgba(255,255,255,.74)}

@media (max-width: 480px){
  .page{padding:0}
  .phone{width:100%;min-height:100vh;border-radius:0}
}


/* Home screen fit */
.home-screen .page{min-height:100dvh;padding:0;}
.home-screen .home-phone{width:min(100%,430px);height:100dvh;min-height:100dvh;border-radius:0;}
.home-screen .home-content{
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:clamp(18px,4.2vh,34px) 20px max(16px,env(safe-area-inset-bottom));
  gap:clamp(10px,1.6vh,16px);
}
.home-screen .home-logo{width:clamp(54px,8vh,72px);margin:0 auto 6px;}
.home-screen .eyebrow{font-size:clamp(12px,1.7vh,14px);margin-bottom:2px;}
.home-screen h1{font-size:clamp(32px,7.2vh,48px);}
.home-screen .subtitle{margin:6px 0 6px;font-size:clamp(14px,2.2vh,16px);}
.home-screen .accent-line{margin:0 auto 4px;width:112px;height:3px;}
.home-screen .home-cards{gap:12px;}
.home-screen .home-card{
  height:clamp(145px,19vh,175px);
  border-radius:22px;
}

.home-screen .home-card-wide{
  height:clamp(145px,19vh,175px);
}
.home-screen .card-content{left:14px;right:14px;bottom:14px;}
.home-screen .card-text span{font-size:clamp(13px,2.2vh,18px);}
.home-screen .card-text strong{font-size:clamp(20px,3.9vh,34px);margin-top:4px;}
.home-screen .home-card-wide .card-text strong{font-size:clamp(22px,3.6vh,30px);}
.home-screen .arrow{width:42px;height:42px;font-size:22px;flex:0 0 42px;}
.home-screen .home-footer{margin-top:auto;padding-top:6px;}
.home-screen footer small{font-size:clamp(11px,1.6vh,12px);}
.home-screen footer strong{margin-top:6px;font-size:clamp(16px,2.3vh,18px);}

@media (min-width: 481px){
  .home-screen .page{padding:0;display:flex;align-items:center;justify-content:center;background:#ececec;}
  .home-screen .home-phone{height:min(100dvh,932px);min-height:min(100dvh,932px);border-radius:42px;}
  .home-screen .home-content{min-height:100%;height:100%;padding:clamp(20px,3.5vh,34px) 22px 24px;}
}

@media (max-height: 740px){
  .home-screen .home-content{padding-top:16px;padding-bottom:max(12px,env(safe-area-inset-bottom));gap:12px;}
  .home-screen .home-card{height:142px;}
  .home-screen .home-card-wide{height:142px;}
  .home-screen .arrow{width:25px;height:25px;font-size:10px;flex-basis:25px;}
}

.sub-screen .page{
  min-height:100dvh;
  padding:0;
}

.sub-screen .sub-phone{
  width:min(100%,430px);
  min-height:100dvh;
  border-radius:0;
}

.sub-screen .sub-content,
.sub-screen .reservation-content{
  min-height:100dvh;
  padding:22px 20px max(20px, env(safe-area-inset-bottom));
  position:relative;
  z-index:1;
}

.sub-header{
  text-align:center;
  margin-bottom:20px;
}

.subpage-title{
  font-size:34px;
  line-height:1;
  margin:6px 0 8px;
  font-weight:800;
}

.subpage-subtitle{
  margin:0 0 12px;
  color:var(--muted);
  font-size:15px;
}

.back-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  color:#fff;
  background:rgba(255,255,255,.08);
  padding:10px 14px;
  border-radius:999px;
  margin-bottom:18px;
  backdrop-filter:blur(8px);
}

.court-item-link{
  text-decoration:none;
  color:inherit;
}

.court-list{
  display:grid;
  gap:16px;
}

.court-item{
  display:grid;
  grid-template-columns:118px 1fr;
  gap:14px;
  align-items:center;
  background:rgba(7,18,15,.55);
  border:1px solid rgba(255,255,255,.08);
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 18px 42px rgba(0,0,0,.28);
}

.court-item img{
  width:100%;
  height:100%;
  min-height:138px;
  object-fit:cover;
}

.court-body{
  padding:14px 14px 14px 0;
}

.status{
  display:inline-block;
  padding:7px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:10px;
}

.status-ok{
  background:rgba(83,214,107,.18);
  color:#8ef1a1;
}

.status-warn{
  background:rgba(255,190,89,.16);
  color:#ffd27f;
}

.court-name{
  margin:0 0 6px;
  font-size:24px;
}

.court-meta{
  margin:0 0 14px;
  color:var(--muted);
  font-size:14px;
  line-height:1.4;
}

.reserve-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:14px;
  padding:12px 18px;
  font-size:15px;
  font-weight:700;
  color:#fff;
  background:linear-gradient(180deg,#5ec862,#319a42);
  box-shadow:0 10px 22px rgba(24,119,51,.28);
}

.booking-card{
  background:rgba(8,18,15,.55);
  border:1px solid rgba(255,255,255,.08);
  border-radius:24px;
  padding:18px;
  backdrop-filter:blur(8px);
  box-shadow:0 20px 44px rgba(0,0,0,.26);
}

.booking-section + .booking-section{
  margin-top:20px;
}

.section-title{
  margin:0 0 12px;
  font-size:18px;
  font-weight:700;
}

.calendar-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
}

.calendar-day{
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.06);
  color:#fff;
  border-radius:16px;
  padding:12px 8px;
  text-align:center;
  cursor:pointer;
  transition:.2s ease;
}

.calendar-day .weekday{
  display:block;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:rgba(255,255,255,.75);
  margin-bottom:4px;
}

.calendar-day strong{
  font-size:15px;
}

.calendar-day.active{
  border-color:rgba(182,217,53,.7);
  background:rgba(182,217,53,.18);
  box-shadow:0 0 0 1px rgba(182,217,53,.2) inset;
}

.time-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
}

.time-slot{
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.06);
  color:#fff;
  border-radius:14px;
  padding:14px 10px;
  font-size:15px;
  font-weight:600;
  cursor:pointer;
  transition:.2s ease;
}

.time-slot.active{
  border-color:rgba(31,143,255,.8);
  background:rgba(31,143,255,.18);
}

.time-slot.unavailable{
  opacity:.35;
  cursor:not-allowed;
  text-decoration:line-through;
}

.selected-info{
  margin-top:18px;
  font-size:14px;
  color:rgba(255,255,255,.86);
  text-align:center;
}

.confirm-booking-btn{
  width:100%;
  margin-top:16px;
  border:0;
  border-radius:18px;
  padding:16px 18px;
  font-size:16px;
  font-weight:800;
  color:#fff;
  background:linear-gradient(180deg,#6bd86f,#2d9d42);
  box-shadow:0 14px 26px rgba(24,119,51,.28);
  cursor:pointer;
}

.confirm-booking-btn:disabled{
  opacity:.45;
  cursor:not-allowed;
}

@media (max-width:480px){
  .sub-screen .sub-phone{
    width:100%;
  }

  .court-item{
    grid-template-columns:100px 1fr;
  }

  .court-item img{
    min-height:126px;
  }

  .calendar-grid,
  .time-grid{
    grid-template-columns:repeat(3, 1fr);
  }
}

.top-actions{
  width:100%;
  display:flex;
  justify-content:flex-end;
  margin-bottom:8px;
}

.history-wrapper{
  display:flex;
  justify-content:center;
  margin-top:14px;
}

.history-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 18px;
  border-radius:999px;
  text-decoration:none;
  color:#fff;
  font-size:14px;
  font-weight:600;
  letter-spacing:.04em;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 10px 28px rgba(0,0,0,.22);
  transition:all .2s ease;
}

.history-btn:hover{
  background:rgba(255,255,255,.18);
  transform:translateY(-2px);
}