/* K-sazoo V70: consistent mobile selection controls. */
.ks70-overlay{position:fixed;inset:0;z-index:99999;background:rgba(54,30,41,.5);display:flex;justify-content:center;align-items:center;padding:12px max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));box-sizing:border-box}
.ks70-sheet{box-sizing:border-box;width:min(100%,520px);max-height:min(85vh,750px);background:#fffbf9;border:2px solid #edafc4;border-radius:22px;box-shadow:0 7px 0 rgba(152,86,115,.2);overflow:hidden;display:flex;flex-direction:column;font-family:'Galmuri11','Malgun Gothic',sans-serif;color:#684251}
.ks70-top{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #f4d5df;padding:15px 18px;background:#fff0f5;font-size:16px}
.ks70-x{width:38px;height:38px;border:1px solid #edbaca;border-radius:50%;background:#fff;color:#75445d;font-size:19px;cursor:pointer}
.ks70-content{padding:14px 16px 20px;overflow:auto;overscroll-behavior:contain;min-height:0}
.ks70-search,.ks70-date-fields input,.ks70-time-fields input{box-sizing:border-box;width:100%;height:45px;border:1.5px solid #ebbdcf;border-radius:12px;background:#fff;color:#4c3441;padding:9px 12px;font-size:16px;font-family:inherit}
.ks70-search{margin-bottom:10px}
.ks70-options{display:flex;flex-direction:column;gap:6px;max-height:min(54vh,420px);overflow-y:auto}
.ks70-choice{display:flex;align-items:center;justify-content:space-between;text-align:left;gap:10px;padding:13px 15px;background:#fff;border:1.5px solid #f0d0da;border-radius:12px;font-family:inherit;font-size:14px;color:#573846;min-height:50px;cursor:pointer}
.ks70-choice.selected{background:#ffe3ee;border-color:#e970a0}.ks70-choice:disabled{opacity:.45}
.ks70-date-fields{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:9px}.ks70-date-fields label,.ks70-time-fields label{display:flex;flex-direction:column;gap:7px;font-size:13px}
.ks70-cal-head{display:flex;align-items:center;justify-content:space-between;margin:15px 0 8px;gap:10px}.ks70-cal-head button{border:1px solid #f2becd;background:#fff7fa;border-radius:10px;width:41px;height:36px;font-size:24px;color:#793b52}.ks70-cal-head strong{font-weight:normal}
.ks70-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.ks70-wday{text-align:center;font-size:12px;padding:8px 0;color:#99717d}.ks70-day{border:0;border-radius:9px;background:#fff3f7;color:#533745;font-size:13px;padding:0;min-height:38px;font-family:inherit}.ks70-day.selected{background:#ef75a6;color:#fff}.ks70-day:disabled{opacity:.25}
.ks70-time-fields{display:flex;align-items:end;justify-content:center;gap:10px;margin:10px 0 17px}.ks70-time-fields label{flex:1;max-width:180px}.ks70-colon{font-size:26px;padding-bottom:7px}
.ks70-error{min-height:20px;font-size:12px;color:#ce3858;margin:8px 0}.ks70-confirm{display:block;width:100%;padding:14px 12px;background:#f14e91;border:1px solid #dd3980;border-radius:13px;color:#fff;font-family:inherit;font-size:15px;cursor:pointer}
/* V85: centred selection modal on desktop, Android and iOS alike. */
@supports (height:100dvh){.ks70-overlay{height:100dvh;inset:0 0 auto 0}.ks70-sheet{max-height:min(85dvh,750px)}}

/* V80: independent hit surface; keeps native picker from opening and lets vertical swipe scroll. */
.ks70-picker-host{display:block;position:relative;min-width:0;max-width:100%;box-sizing:border-box}
.ks70-picker-host>select,.ks70-picker-host>input[type="date"],.ks70-picker-host>input[type="time"]{width:100%!important;box-sizing:border-box;pointer-events:none!important}
.ks70-picker-hit{position:absolute;inset:0;width:100%;height:100%;border:0!important;border-radius:inherit;background:transparent!important;opacity:1;cursor:pointer;touch-action:pan-y;z-index:2;box-shadow:none!important;padding:0!important;min-height:0!important}
.ks70-picker-hit:disabled{cursor:default}
.ks70-picker-hit:focus-visible{outline:2px solid #e85b9a;outline-offset:2px}

/* V84: Android/WebKit default blue touch highlight must never appear on a
   newly opened option just because the opener occupied the same pixels.
   Keep pink .selected for the actual saved selection only. */
.ks70-overlay, .ks70-overlay *, .ks70-picker-hit {
  -webkit-tap-highlight-color: transparent !important;
}
.ks70-overlay button, .ks70-picker-hit {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}
.ks70-choice:focus:not(:focus-visible),
.ks70-day:focus:not(:focus-visible),
.ks70-picker-hit:focus:not(:focus-visible) { outline:none!important; box-shadow:none!important; }
.ks70-choice:active:not(.selected), .ks70-choice:focus:not(:focus-visible):not(.selected) {
  background:#fff!important; color:#573846!important;
}
.ks70-day:active:not(.selected), .ks70-day:focus:not(:focus-visible):not(.selected) {
  background:#fff3f7!important; color:#533745!important;
}
