/**
 * Casino Staff Transport — booking form.
 *
 * Every rule is scoped to .ct-app so the form looks identical wherever it is
 * placed. Divi styles inputs, buttons and labels site-wide, so the properties
 * a theme most often overrides are forced here.
 */

.ct-app{
  --ct-bg:#0e1116; --ct-panel:#161b23; --ct-panel-2:#1d2430; --ct-line:#2a3341; --ct-line-2:#374357;
  --ct-txt:#e8edf4; --ct-muted:#98a4b6; --ct-accent:#c8a24a; --ct-accent-2:#e0bd6a;
  --ct-ok:#3fb27f; --ct-err:#e05a5a;
  --ct-font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  background:var(--ct-bg); color:var(--ct-txt); font-family:var(--ct-font);
  font-size:16px; line-height:1.5; padding:8px 16px 34px; border-radius:14px;
  max-width:780px; margin:0 auto; -webkit-font-smoothing:antialiased;
}
.ct-app *,.ct-app *::before,.ct-app *::after{box-sizing:border-box}
.ct-app p{margin:0}

/* cards + fields */
.ct-app .ct-card{background:var(--ct-panel); border:1px solid var(--ct-line); border-radius:12px;
  padding:22px; margin-top:18px; box-shadow:0 6px 24px rgba(0,0,0,.35)}
.ct-app .ct-card h2{margin:0 0 4px; padding:0; font-size:15px; font-weight:700; letter-spacing:.4px;
  text-transform:uppercase; color:var(--ct-accent); font-family:var(--ct-font); border:0}
.ct-app .ct-sub{margin:0 0 18px; color:var(--ct-muted); font-size:13.5px}
.ct-app .ct-field{margin-bottom:18px}
.ct-app .ct-field:last-child{margin-bottom:0}
.ct-app label{display:block; font-size:13.5px; font-weight:600; margin-bottom:7px;
  color:var(--ct-txt); text-transform:none; letter-spacing:0}
.ct-app label .ct-req{color:var(--ct-accent)}
.ct-app .ct-hint{font-size:12.5px; color:var(--ct-muted); font-weight:400; margin-top:6px}
.ct-app .ct-hint.ok{color:var(--ct-ok)}
.ct-app .ct-hint.warn{color:#e5a86d}
.ct-app .ct-hint a{cursor:pointer; text-decoration:underline; color:var(--ct-accent-2)}

.ct-app input[type=text],.ct-app input[type=email],.ct-app select{
  width:100%; background:var(--ct-panel-2); border:1px solid var(--ct-line-2); border-radius:9px;
  color:var(--ct-txt); font-family:var(--ct-font); font-size:15px; line-height:1.4; padding:11px 12px;
  margin:0; height:auto; box-shadow:none; -webkit-appearance:none; appearance:none}
.ct-app select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'><path d='M3 5l4 4 4-4' fill='none' stroke='%2398a4b6' stroke-width='1.8' stroke-linecap='round'/></svg>");
  background-repeat:no-repeat; background-position:right 12px center; padding-right:36px}
.ct-app input:focus,.ct-app select:focus{outline:none; border-color:var(--ct-accent);
  box-shadow:0 0 0 3px rgba(200,162,74,.16)}
.ct-app select:disabled{opacity:.5; cursor:not-allowed}
.ct-app input.ct-matched{border-color:rgba(63,178,127,.6); background:rgba(63,178,127,.07)}
.ct-app input[readonly]{cursor:default}
.ct-app .ct-row{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.ct-app .ct-hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

/* taps register immediately on touch devices */
.ct-app .ct-seg button,.ct-app .ct-trip,.ct-app .ct-day,.ct-app .ct-chip,
.ct-app .ct-pill button,.ct-app .ct-btn,.ct-app .ct-calhd button{
  touch-action:manipulation; -webkit-tap-highlight-color:rgba(200,162,74,.3);
  -webkit-user-select:none; user-select:none; -webkit-appearance:none; appearance:none}
.ct-app .ct-seg button:active,.ct-app .ct-trip:active,.ct-app .ct-chip:active{filter:brightness(1.35)}

/* casino selector */
.ct-app .ct-seg{display:grid; grid-template-columns:1fr 1fr; gap:10px}
.ct-app .ct-seg button{background:var(--ct-panel-2); border:1px solid var(--ct-line-2); border-radius:10px;
  padding:16px 14px; cursor:pointer; font-family:var(--ct-font); font-size:15px; color:var(--ct-txt);
  text-align:left; transition:.12s; text-transform:none; letter-spacing:0; box-shadow:none; width:100%}
.ct-app .ct-seg button:hover{border-color:#4a5a72; background:var(--ct-panel-2)}
.ct-app .ct-seg button.on{border-color:var(--ct-accent); background:rgba(200,162,74,.11);
  box-shadow:0 0 0 1px var(--ct-accent) inset}
.ct-app .ct-seg button b{display:block; font-size:15px; font-weight:650; margin-bottom:2px}
.ct-app .ct-seg button span{display:block; font-size:12.5px; color:var(--ct-muted)}
.ct-app .ct-seg button.on span{color:var(--ct-accent-2)}

/* trip type */
.ct-app .ct-trips{display:grid; gap:9px}
.ct-app .ct-trip{display:flex; align-items:flex-start; gap:12px; width:100%; text-align:left;
  font-family:var(--ct-font); font-size:15px; color:var(--ct-txt); background:var(--ct-panel-2);
  border:1px solid var(--ct-line-2); border-radius:10px; padding:12px 14px; cursor:pointer;
  transition:.12s; text-transform:none; letter-spacing:0; box-shadow:none}
.ct-app .ct-trip:hover{border-color:#4a5a72; background:var(--ct-panel-2)}
.ct-app .ct-trip .ct-radio{flex:none; width:19px; height:19px; margin-top:2px; border-radius:50%;
  border:2px solid var(--ct-line-2); display:grid; place-items:center}
.ct-app .ct-trip.on{border-color:var(--ct-accent); background:rgba(200,162,74,.09)}
.ct-app .ct-trip.on .ct-radio{border-color:var(--ct-accent)}
.ct-app .ct-trip.on .ct-radio::after{content:""; width:9px; height:9px; border-radius:50%; background:var(--ct-accent)}
.ct-app .ct-trip .ct-ttl{display:block; font-size:14.5px; font-weight:600}
.ct-app .ct-trip .ct-det{display:block; font-size:12.5px; color:var(--ct-muted)}
.ct-app .ct-tag{display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.6px;
  padding:2px 7px; border-radius:20px; vertical-align:2px; margin-left:8px}
.ct-app .ct-tag.n{background:rgba(111,127,214,.2); color:#9dabee}
.ct-app .ct-tag.a{background:rgba(214,143,74,.2); color:#e5a86d}

/* calendar */
.ct-app .ct-cal{background:var(--ct-panel-2); border:1px solid var(--ct-line-2); border-radius:10px; padding:14px}
.ct-app .ct-calhd{display:flex; align-items:center; justify-content:space-between; margin-bottom:10px}
.ct-app .ct-calhd b{font-size:14.5px}
.ct-app .ct-calhd button{background:var(--ct-panel); border:1px solid var(--ct-line-2); color:var(--ct-txt);
  width:30px; height:30px; border-radius:8px; cursor:pointer; font-size:15px; line-height:1; padding:0}
.ct-app .ct-calhd button:disabled{opacity:.3; cursor:not-allowed}
.ct-app .ct-calgrid{display:grid; grid-template-columns:repeat(7,1fr); gap:5px}
.ct-app .ct-calgrid .ct-dow{text-align:center; font-size:11px; color:var(--ct-muted); font-weight:700;
  letter-spacing:.5px; padding-bottom:4px}
.ct-app .ct-day{aspect-ratio:1; border:1px solid transparent; background:var(--ct-panel); border-radius:8px;
  color:var(--ct-txt); font-family:var(--ct-font); font-size:14px; cursor:pointer; display:grid;
  place-items:center; position:relative; padding:0; text-transform:none; letter-spacing:0; box-shadow:none}
.ct-app .ct-day:hover:not(:disabled){border-color:var(--ct-line-2); background:var(--ct-panel)}
.ct-app .ct-day:disabled{opacity:.22; cursor:not-allowed}
.ct-app .ct-day.sel{background:var(--ct-accent); color:#1a1408; font-weight:700; border-color:var(--ct-accent)}
.ct-app .ct-day.today:not(.sel)::after{content:""; position:absolute; bottom:5px; width:4px; height:4px;
  border-radius:50%; background:var(--ct-accent)}
.ct-app .ct-day.empty{visibility:hidden}
.ct-app .ct-quick{display:flex; flex-wrap:wrap; gap:7px; margin-top:12px}
.ct-app .ct-chip{background:var(--ct-panel); border:1px solid var(--ct-line-2); color:var(--ct-muted);
  font-family:var(--ct-font); font-size:12.5px; padding:5px 11px; border-radius:20px; cursor:pointer;
  text-transform:none; letter-spacing:0; box-shadow:none}
.ct-app .ct-chip:hover{color:var(--ct-txt); border-color:#4a5a72; background:var(--ct-panel)}
.ct-app .ct-seldates{margin-top:12px; display:flex; flex-wrap:wrap; gap:6px}
.ct-app .ct-pill{background:rgba(200,162,74,.14); border:1px solid rgba(200,162,74,.4); color:var(--ct-accent-2);
  font-size:12.5px; padding:4px 8px 4px 10px; border-radius:20px; display:inline-flex; align-items:center; gap:6px}
.ct-app .ct-pill button{background:none; border:0; color:inherit; cursor:pointer; font-size:14px;
  line-height:1; padding:0; opacity:.7; box-shadow:none}
.ct-app .ct-pill button:hover{opacity:1; background:none}

/* buttons + messages */
.ct-app .ct-btn{background:linear-gradient(180deg,var(--ct-accent-2),var(--ct-accent)); color:#1a1408;
  border:0; border-radius:10px; font-family:var(--ct-font); font-size:15px; font-weight:700;
  padding:13px 22px; cursor:pointer; width:100%; text-transform:none; letter-spacing:0; box-shadow:none}
.ct-app .ct-btn:hover{filter:brightness(1.07); background:linear-gradient(180deg,var(--ct-accent-2),var(--ct-accent)); color:#1a1408}
.ct-app .ct-btn:disabled{opacity:.45; cursor:not-allowed; filter:none}
.ct-app .ct-btn.ghost{background:var(--ct-panel-2); color:var(--ct-txt); border:1px solid var(--ct-line-2);
  font-weight:600; width:auto; padding:9px 16px; font-size:14px}
.ct-app .ct-summary{background:var(--ct-panel-2); border:1px dashed var(--ct-line-2); border-radius:10px;
  padding:14px 16px; font-size:14px}
.ct-app .ct-summary .r{display:flex; justify-content:space-between; gap:16px; padding:5px 0;
  border-bottom:1px solid rgba(255,255,255,.04)}
.ct-app .ct-summary .r:last-child{border:0}
.ct-app .ct-summary .r span{color:var(--ct-muted); flex:none}
.ct-app .ct-summary .r b{font-weight:600; text-align:right}
.ct-app .ct-msg{border-radius:10px; padding:12px 14px; font-size:14px; margin-bottom:16px; display:none}
.ct-app .ct-msg.show{display:block}
.ct-app .ct-msg.err{background:rgba(224,90,90,.12); border:1px solid rgba(224,90,90,.45); color:#ffb3b3}
.ct-app .ct-done{text-align:center; padding:34px 20px}
.ct-app .ct-done .tick{width:62px; height:62px; border-radius:50%; background:rgba(63,178,127,.15);
  border:2px solid var(--ct-ok); display:grid; place-items:center; margin:0 auto 16px;
  font-size:30px; color:var(--ct-ok)}
.ct-app .ct-done h2{color:var(--ct-txt); text-transform:none; font-size:21px; letter-spacing:0; margin-bottom:6px}

/* mobile */
@media screen and (max-width:760px){
  .ct-app{padding:4px 12px 26px; border-radius:0}
  .ct-app .ct-card{padding:16px; margin-top:14px}
  .ct-app .ct-row,.ct-app .ct-seg{grid-template-columns:1fr}
  .ct-app input[type=text],.ct-app input[type=email],.ct-app select{font-size:16px; padding:12px}
  .ct-app .ct-day{aspect-ratio:auto; min-height:42px; font-size:15px}
  .ct-app .ct-cal{padding:10px}
  .ct-app .ct-calgrid{gap:4px}
  .ct-app .ct-calhd button{width:38px; height:38px; font-size:17px}
  .ct-app .ct-chip{padding:8px 13px; font-size:13px}
  .ct-app .ct-trip{padding:14px}
  .ct-app .ct-pill{padding:6px 4px 6px 11px; font-size:13px}
  .ct-app .ct-pill button{min-width:28px; min-height:28px; font-size:17px; display:grid; place-items:center}
  .ct-app .ct-summary .r{flex-direction:column; gap:2px; padding:7px 0}
  .ct-app .ct-summary .r b{text-align:left}
}
