.dtb-booking{
  --dtb-bg:#071020;
  --dtb-card:rgba(26,39,63,.78);
  --dtb-line:rgba(144,188,255,.28);
  --dtb-primary:#47d6ff;
  --dtb-accent:#9bb8ff;
  color:var(--dtb-text,#f7fbff);
  background:linear-gradient(145deg,color-mix(in srgb,var(--dtb-bg,#0b1224) 92%,#263957),color-mix(in srgb,var(--dtb-bg,#0b1224) 82%,#263957));
  border:1px solid var(--dtb-line);
  border-radius:var(--dtb-radius,24px);
  padding:clamp(16px,3cqw,34px);
  box-shadow:0 28px 80px rgba(0,0,0,.35),inset 0 1px rgba(255,255,255,.08);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  width:100%;
  max-width:var(--dtb-width,1200px);
  min-width:0;
  margin:0 auto;
  overflow:hidden;
  container-type:inline-size;
}
.dtb-booking *{box-sizing:border-box;min-width:0}
.dtb-booking [hidden]{display:none!important}
.dtb-booking__tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 clamp(18px,3cqw,30px);padding:5px;border:1px solid var(--dtb-line);border-radius:999px;background:rgba(3,10,24,.4);width:max-content;max-width:100%}
.dtb-booking__tabs button{border:0;border-radius:999px;background:transparent;color:#b8c4d8;font:inherit;font-weight:800;padding:11px 22px;cursor:pointer}
.dtb-booking__tabs button.is-active{background:linear-gradient(135deg,var(--dtb-primary),var(--dtb-accent));color:#071020;box-shadow:0 5px 18px rgba(71,214,255,.18)}
.dtb-booking__events-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--dtb-line);padding:0 0 20px;margin-bottom:0}
.dtb-booking__events-heading h2{margin:0}
.dtb-booking__events-heading>span{font-size:36px;color:var(--dtb-primary);line-height:1}
.dtb-booking__events{display:grid}
.dtb-booking__event{display:grid;grid-template-columns:minmax(72px,10%) minmax(180px,1fr) minmax(150px,26%) minmax(100px,140px);align-items:center;gap:clamp(14px,2cqw,28px);padding:clamp(18px,2.5cqw,30px) 0;border-bottom:1px solid var(--dtb-line)}
.dtb-booking__event-date{align-self:stretch;border-right:1px solid var(--dtb-line);display:flex;flex-direction:column;align-items:center;justify-content:center;padding-right:12px;color:var(--dtb-primary);text-align:center}
.dtb-booking__event-date strong{font-size:clamp(30px,5cqw,48px);line-height:1;font-weight:900}
.dtb-booking__event-date span{font-size:13px;font-weight:800;color:#b8c4d8}
.dtb-booking__event-detail h3{font-size:clamp(20px,3cqw,27px);line-height:1.15;margin:0 0 10px;color:var(--dtb-text,#f7fbff)}
.dtb-booking__event-detail p{margin:0;color:#aab7ca;font-size:clamp(13px,1.8cqw,16px);line-height:1.6}
.dtb-booking__event-poster{width:100%;aspect-ratio:1.78/1;background:linear-gradient(135deg,rgba(71,214,255,.14),rgba(155,184,255,.08));border:1px solid var(--dtb-line);border-radius:10px;overflow:hidden}
.dtb-booking__event-poster:empty{display:none}
.dtb-booking__event-poster img{display:block;width:100%;height:100%;object-fit:cover}
.dtb-booking__ticket{justify-self:stretch;text-align:center;display:block;padding:14px 12px;background:#ff342e;color:#fff!important;text-decoration:none!important;font-weight:900;border:1px solid #ff342e;transition:filter .18s ease,transform .18s ease}
.dtb-booking__ticket:hover{filter:brightness(1.12);transform:translateY(-1px)}
.dtb-booking__empty{color:#b8c4d8;padding:26px 0}
.dtb-booking__eyebrow{color:var(--dtb-primary);font-weight:800;text-transform:uppercase;letter-spacing:.14em;margin:0 0 8px}
.dtb-booking h2{font-size:clamp(28px,7cqw,54px);line-height:1;margin:0 0 12px}
.dtb-booking__header p:last-child{color:#b8c4d8;font-size:clamp(15px,2.2cqw,18px);line-height:1.25;margin:0 0 clamp(18px,3cqw,28px)}
.dtb-booking__monthbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(8px,1.4cqw,18px);margin-bottom:clamp(12px,2cqw,18px)}
.dtb-booking__monthbar strong{font-size:clamp(24px,5cqw,38px);line-height:1.05;text-align:center;white-space:normal;overflow-wrap:anywhere}
.dtb-booking__monthbar button{width:clamp(40px,6cqw,52px);height:clamp(40px,6cqw,52px);border-radius:clamp(12px,2cqw,18px);border:1px solid var(--dtb-line);background:rgba(255,255,255,.08);color:#fff;font-size:clamp(26px,5cqw,36px);cursor:pointer;display:grid;place-items:center;line-height:1}
.dtb-booking__weekdays,.dtb-booking__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:clamp(4px,1.1cqw,10px);width:100%}
.dtb-booking__weekdays span{color:#dce8ff;font-weight:800;text-align:center;padding:clamp(4px,.9cqw,8px);font-size:clamp(12px,1.8cqw,16px)}
.dtb-day{min-height:clamp(54px,10.5cqw,86px);border:1px solid rgba(255,255,255,.08);border-radius:clamp(10px,1.8cqw,16px);background:rgba(255,255,255,.08);color:#fff;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:clamp(7px,1.5cqw,13px);text-align:left;cursor:pointer;transition:.18s ease;overflow:hidden}
.dtb-day strong{font-size:clamp(18px,3.2cqw,24px);line-height:1}
.dtb-day span{font-size:clamp(10px,1.4cqw,12px);line-height:1.1;color:#bac7dc;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dtb-day:hover,.dtb-day.is-selected{border-color:var(--dtb-primary);box-shadow:0 0 0 3px rgba(71,214,255,.18)}
.dtb-day--empty{visibility:hidden}
.dtb-day--option{background:rgba(255,196,77,.18);border-color:rgba(255,196,77,.35)}
.dtb-day--requested{background:rgba(71,214,255,.12);border-color:rgba(71,214,255,.25)}
.dtb-day--unavailable{background:rgba(255,85,85,.16);border-color:rgba(255,85,85,.38);opacity:.72;cursor:not-allowed}
.dtb-booking__legend{display:flex;gap:clamp(10px,2cqw,18px);flex-wrap:wrap;margin:clamp(12px,2cqw,18px) 0 clamp(20px,3cqw,28px);color:#b8c4d8;font-size:clamp(12px,1.7cqw,14px)}
.dtb-booking__legend i{display:inline-block;width:12px;height:12px;border-radius:999px;margin-right:6px;background:rgba(255,255,255,.18)}
.dtb-booking__legend .option{background:#ffc44d}
.dtb-booking__legend .unavailable{background:#ff5555}
.dtb-booking__form{display:grid;gap:clamp(12px,2cqw,18px);background:rgba(5,12,28,.42);border:1px solid var(--dtb-line);border-radius:22px;padding:clamp(16px,2.5cqw,24px)}
.dtb-booking__form[hidden]{display:none}
.dtb-booking label{display:grid;gap:8px;color:#eaf2ff;font-weight:800}
.dtb-booking input,.dtb-booking select{width:100%;border:1px solid rgba(144,188,255,.32);border-radius:14px;background:rgba(4,10,24,.76);color:#fff;padding:14px 16px;font:inherit}
.dtb-booking fieldset{display:grid;gap:12px;border:1px solid rgba(144,188,255,.2);border-radius:18px;padding:clamp(14px,2cqw,18px);margin:0}
.dtb-booking legend{font-weight:900;color:var(--dtb-primary);padding:0 8px}
.dtb-booking__split{display:grid;grid-template-columns:1fr 2fr;gap:12px}
.dtb-booking button[type=submit]{border:0;border-radius:16px;padding:18px 24px;background:linear-gradient(135deg,var(--dtb-primary),var(--dtb-accent));color:#071020;font-size:18px;font-weight:900;cursor:pointer}
.dtb-booking__selected{color:var(--dtb-primary);font-weight:900}
.dtb-booking__message{min-height:24px;color:#b8c4d8;font-weight:800}
.dtb-booking__message.is-success{color:#39e69a}
.dtb-booking__message.is-error,.dtb-booking__error{color:#ff8b8b}
.dtb-booking__loading{color:#b8c4d8;padding:24px}
@container (max-width: 760px){
  .dtb-booking__header p:last-child{max-width:100%}
  .dtb-booking__monthbar strong{font-size:clamp(24px,6cqw,34px)}
  .dtb-day{min-height:clamp(52px,11cqw,70px)}
  .dtb-day span{display:none}
  .dtb-booking__split{grid-template-columns:1fr}
}
@container (max-width: 520px){
  .dtb-booking{padding:14px}
  .dtb-booking__monthbar{gap:6px}
  .dtb-booking__monthbar button{width:36px;height:36px;border-radius:12px}
  .dtb-booking__weekdays,.dtb-booking__days{gap:4px}
  .dtb-day{min-height:46px;padding:6px;border-radius:10px;align-items:center;justify-content:center;text-align:center}
  .dtb-day strong{font-size:17px}
  .dtb-booking__legend{font-size:12px}
}
@media(max-width:720px){
  .dtb-booking{padding:18px}
  .dtb-booking__split{grid-template-columns:1fr}
}
@media(max-width:800px){
  .dtb-booking__event{grid-template-columns:60px minmax(0,1fr) auto;gap:14px}
  .dtb-booking__event-poster{grid-column:2;grid-row:2;max-width:260px}
  .dtb-booking__ticket{grid-column:3;grid-row:1/3;min-width:88px}
}
@media(max-width:520px){
  .dtb-booking__event{grid-template-columns:54px minmax(0,1fr);gap:12px;padding:18px 0}
  .dtb-booking__event-date{grid-row:1/3}
  .dtb-booking__event-detail{grid-column:2}
  .dtb-booking__event-poster{grid-column:2;grid-row:auto;max-width:100%}
  .dtb-booking__ticket{grid-column:2;grid-row:auto}
  .dtb-booking__tabs{width:100%}
  .dtb-booking__tabs button{flex:1}
}
