/* Custom calendar — matches storefront loc-menu / ui-select */
.ui-date{position:relative;width:100%;min-width:0}
.ui-date .date-native,
.ui-date > input[type="date"]{
  position:absolute !important;width:1px !important;height:1px !important;
  padding:0 !important;margin:-1px !important;overflow:hidden !important;
  clip:rect(0,0,0,0) !important;border:0 !important;background:none !important;
  opacity:0;pointer-events:none;
}
.ui-date .ctrl.date-ctrl{
  cursor:pointer;gap:4px;padding:10px 8px 10px 10px;overflow:visible;
  display:flex;align-items:center;width:100%;box-sizing:border-box;
}
.ui-date.open .ctrl.date-ctrl{
  border-color:var(--amber,#ffbb22);
  box-shadow:0 0 0 3px rgba(255,187,34,.16);
  background:#fff;
}
.ui-date .date-label{
  flex:1 1 auto;min-width:0;border:none;outline:none;background:transparent;
  font-family:'Sora',sans-serif;font-weight:700;font-size:.82rem;color:var(--navy,#021F2D);
  width:100%;max-width:none;line-height:1.3;padding:0;margin:0;cursor:pointer;text-align:left;
  font-variant-numeric:tabular-nums;user-select:none;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em;
}
.ui-date .date-label:empty::before{
  content:'Select date';
  color:var(--muted,#5c6b72);font-weight:600;
}
.ui-date .date-ico{
  display:flex;align-items:center;justify-content:center;
  flex:0 0 15px;width:15px;height:15px;margin-left:0;
  color:var(--muted,#5c6b72);pointer-events:none;
}
.ui-date.open .date-ico{color:var(--horizon,#154a6b)}
.ui-date .date-menu{
  position:fixed;z-index:80;
  width:292px;max-width:min(292px,calc(100vw - 24px));
  background:#fff;border:1.5px solid var(--line,rgba(2,31,45,.1));
  border-radius:16px;box-shadow:0 22px 50px -18px rgba(2,31,45,.5);
  padding:12px 12px 8px;
  animation:uiDateFade .18s cubic-bezier(.22,.61,.36,1) both;
}
.ui-date .date-menu[hidden]{display:none}
.ui-date .date-nav{
  display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:0 2px;
}
.ui-date .date-title{
  flex:1;text-align:center;font-family:'Sora',sans-serif;font-weight:800;
  font-size:.92rem;color:var(--navy,#021F2D);letter-spacing:-.01em;
}
.ui-date .date-navbtn{
  width:32px;height:32px;border-radius:10px;flex:0 0 32px;
  display:flex;align-items:center;justify-content:center;
  color:var(--horizon,#154a6b);background:rgba(21,74,107,.08);
  transition:background .15s,color .15s,transform .15s;
}
.ui-date .date-navbtn:hover:not(:disabled){
  background:rgba(255,187,34,.28);color:var(--navy,#021F2D);transform:translateY(-1px);
}
.ui-date .date-navbtn:disabled{opacity:.32;cursor:default;background:transparent}
.ui-date .date-dows{
  display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px;
}
.ui-date .date-dows span{
  text-align:center;font-size:.62rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted,#5c6b72);padding:6px 0;
}
.ui-date .date-grid{
  display:grid;grid-template-columns:repeat(7,1fr);gap:3px;
}
.ui-date .date-grid button{
  aspect-ratio:1;border-radius:10px;font-family:'Sora',sans-serif;
  font-weight:700;font-size:.8rem;color:var(--navy,#021F2D);
  background:transparent;transition:background .12s,color .12s,box-shadow .12s;
}
.ui-date .date-grid button:hover:not(:disabled):not(.sel){
  background:rgba(255,187,34,.16);
}
.ui-date .date-grid button.sel{
  background:var(--navy,#021F2D);color:var(--ivory,#fffdf3);
  box-shadow:0 8px 16px -10px rgba(2,31,45,.7);
}
.ui-date .date-grid button.today:not(.sel){
  box-shadow:inset 0 0 0 1.5px var(--amber,#ffbb22);
}
.ui-date .date-grid button.out{color:var(--muted,#5c6b72);font-weight:600;opacity:.55}
.ui-date .date-grid button:disabled{opacity:.28;cursor:default;color:var(--muted,#5c6b72);background:transparent;box-shadow:none}
.ui-date .date-foot{
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 2px 2px;margin-top:4px;border-top:1px solid var(--line,rgba(2,31,45,.1));
}
.ui-date .date-today{
  font-size:.75rem;font-weight:700;color:var(--horizon,#154a6b);
  padding:6px 8px;border-radius:8px;
}
.ui-date .date-today:hover:not(:disabled){background:rgba(255,187,34,.16);color:var(--navy,#021F2D)}
.ui-date .date-today:disabled{opacity:.35;cursor:default}
@keyframes uiDateFade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes uiDateFadeDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}

/* Admin form: match white inputs / coupon datetime row */
body.admin .ctrl{
  display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;
  background:#fff;border:1.5px solid var(--line);border-radius:10px;
  padding:0 10px;min-height:42px;
}
body.admin .ui-date .ctrl.date-ctrl{
  padding:0 10px;min-height:42px;background:#fff;border:1.5px solid var(--line);border-radius:10px;
}
body.admin .ui-date .date-label{
  font-family:inherit;font-weight:600;font-size:.92rem;height:39px;line-height:39px;
}
body.admin .ui-date.open .ctrl.date-ctrl{
  border-color:var(--amber);box-shadow:0 0 0 3px rgba(255,187,34,.16);background:#fff;
}
body.admin .coupon-dt{
  display:grid;grid-template-columns:1.2fr .9fr;gap:10px;align-items:start;
  grid-row:3;
}
body.admin .coupon-form-group .field > .coupon-dt{grid-row:3}
body.admin .coupon-dt .ui-date,
body.admin .coupon-dt .ui-select{min-width:0;width:100%}
body.admin .coupon-form-group .field > input[type="hidden"]{display:none}
