@charset "UTF-8";
body{background:radial-gradient(circle at 100% -10%,rgba(255,107,157,.13),transparent 28%),var(--cream)}.brand-mark{position:relative;background:#fff;color:var(--navy);display:grid;place-items:center;font-weight:950;box-shadow:0 10px 30px rgba(0,0,0,.15)}.brand-mark--large{width:86px;height:86px;border-radius:28px;font-size:33px}.brand-mark--small{width:40px;height:40px;border-radius:13px;font-size:17px;box-shadow:none}.brand-roof{position:absolute;width:43%;height:43%;border-left:5px solid var(--pink);border-top:5px solid var(--pink);transform:rotate(45deg);top:14%;border-radius:4px 0 0 0}.brand-h{position:relative;z-index:2;margin-top:15%}.brand-heart{position:absolute;width:9px;height:9px;background:var(--pink);right:14%;bottom:17%;transform:rotate(45deg);border-radius:2px}.brand-heart::before,.brand-heart::after{content:"";position:absolute;width:9px;height:9px;background:var(--pink);border-radius:50%}.brand-heart::before{left:-5px}.brand-heart::after{top:-5px}
.app-shell{min-height:100vh}.app-header{height:calc(var(--header-height) + var(--safe-top));padding:var(--safe-top) 14px 0;position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(13,27,61,.96);backdrop-filter:blur(18px);color:#fff;display:flex;align-items:center;gap:8px;box-shadow:0 5px 24px rgba(13,27,61,.16)}.brand-mini{display:flex;align-items:center;gap:9px;min-width:0}.brand-mini>span:last-child{display:grid;line-height:1}.brand-mini strong{font-size:1.02rem;letter-spacing:-.03em}.brand-mini small{font-size:.57rem;color:var(--pink);font-weight:750;margin-top:3px}.app-header__title{font-weight:850;flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-button{margin-left:auto}.notification-badge{position:absolute;right:-2px;top:-2px;background:var(--pink);color:#fff;min-width:18px;height:18px;border-radius:999px;padding:0 5px;font-size:.62rem;font-weight:900;display:grid;place-items:center;border:2px solid var(--navy)}
.page-host{min-height:100vh;padding:calc(var(--header-height) + var(--safe-top) + 18px) 16px calc(var(--bottom-nav-height) + var(--safe-bottom) + 28px);max-width:720px;margin:0 auto;outline:none}.page-host.page-host--full{padding:0;max-width:none}.bottom-nav{position:fixed;z-index:60;left:12px;right:12px;bottom:calc(10px + var(--safe-bottom));height:var(--bottom-nav-height);background:rgba(255,255,255,.94);backdrop-filter:blur(20px);border:1px solid rgba(13,27,61,.08);border-radius:24px;box-shadow:0 15px 38px rgba(13,27,61,.16);display:grid;grid-template-columns:repeat(4,1fr);padding:7px}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:18px;color:#7f8799;font-size:.65rem;font-weight:800;transition:.2s var(--ease)}.bottom-nav a svg{width:20px;height:20px}.bottom-nav a.active{color:var(--navy);background:var(--pink-soft)}.bottom-nav a.active svg{color:var(--pink-2)}
.login-page{min-height:100vh;background:linear-gradient(160deg,var(--navy) 0,var(--navy) 38%,var(--cream) 38.1%);padding:calc(32px + var(--safe-top)) 18px 34px;display:flex;flex-direction:column}.login-brand{color:#fff;display:flex;align-items:center;gap:12px;margin-bottom:54px}.login-brand h1{font-size:1.65rem;letter-spacing:-.045em}.login-brand p{font-size:.74rem;color:var(--pink);font-weight:750}.login-card{background:#fff;border-radius:30px;padding:24px 20px;box-shadow:var(--shadow-float);max-width:480px;width:100%;margin:0 auto}.login-card h2{font-size:1.6rem;letter-spacing:-.04em;margin-bottom:6px}.login-card>p{color:var(--muted);font-size:.87rem;line-height:1.5;margin-bottom:22px}.otp-boxes{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.otp-boxes input{text-align:center;font-weight:900;font-size:1.15rem;padding:0;min-height:50px}.dev-code{background:var(--warning-soft);padding:10px 12px;border-radius:12px;font-size:.78rem;color:#85520a;margin-bottom:12px}
.home-hero{background:linear-gradient(145deg,var(--navy),#183264);color:#fff;border-radius:28px;padding:20px;box-shadow:var(--shadow-md);position:relative;overflow:hidden}.home-hero::after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;background:rgba(255,107,157,.12);right:-55px;top:-68px}.home-hero__top{display:flex;align-items:center;gap:12px;position:relative;z-index:2}.home-hero__text{flex:1;min-width:0}.home-hero__text p{font-size:.76rem;color:#bdc6d9;margin-bottom:3px}.home-hero__text h1{font-size:1.3rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.availability-box{margin-top:18px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.11);border-radius:19px;padding:13px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative;z-index:2}.availability-box strong{display:block;font-size:.9rem}.availability-box small{display:block;color:#c4ccdc;margin-top:2px;font-size:.7rem}.today-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px;position:relative;z-index:2}.today-strip div{background:rgba(255,255,255,.07);border-radius:14px;padding:10px}.today-strip small{display:block;color:#bfc8da;font-size:.63rem}.today-strip strong{display:block;margin-top:3px;font-size:.9rem}.approval-banner{margin-top:12px}.ad-card{overflow:hidden;padding:0}.ad-card img{width:100%;aspect-ratio:16/7;object-fit:cover}.ad-card__body{padding:14px}.ad-card__body h3{font-size:.95rem}.ad-card__body p{font-size:.78rem;color:var(--muted);margin-top:4px;line-height:1.45}
.booking-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.booking-detail-head h1{font-size:1.35rem;letter-spacing:-.035em}.booking-id{font-size:.7rem;color:var(--muted);margin-top:4px}.customer-row{display:flex;align-items:center;gap:12px}.customer-row__body{flex:1}.customer-row__body strong{display:block}.customer-row__body small{color:var(--muted)}.journey-actions{display:grid;gap:10px}.timeline{display:grid;gap:0}.timeline-item{display:grid;grid-template-columns:28px 1fr;gap:10px;min-height:58px}.timeline-marker{display:flex;flex-direction:column;align-items:center}.timeline-marker span{width:13px;height:13px;border:3px solid #ccd1dc;border-radius:50%;background:#fff;margin-top:4px}.timeline-marker::after{content:"";width:2px;background:#e1e4eb;flex:1;margin:4px 0}.timeline-item:last-child .timeline-marker::after{display:none}.timeline-item.done .timeline-marker span{border-color:var(--success);background:var(--success)}.timeline-item.current .timeline-marker span{border-color:var(--pink);background:var(--pink);box-shadow:0 0 0 5px var(--pink-soft)}.timeline-content strong{display:block;font-size:.83rem}.timeline-content small{color:var(--muted);font-size:.72rem}
.profile-head{display:flex;align-items:center;gap:16px}.profile-head__body{flex:1}.profile-head__body h1{font-size:1.25rem;letter-spacing:-.03em}.rating-line{font-size:.8rem;color:var(--muted);margin-top:4px}.profile-menu{display:grid;gap:8px;margin-top:18px}.profile-menu a,.profile-menu button{width:100%;background:#fff;border:1px solid var(--border);border-radius:17px;padding:14px;display:flex;align-items:center;gap:12px;text-align:left;color:var(--navy);cursor:pointer}.profile-menu__icon{width:38px;height:38px;border-radius:13px;background:var(--pink-soft);color:var(--pink-2);display:grid;place-items:center}.profile-menu__icon svg{width:19px}.profile-menu__body{flex:1}.profile-menu__body strong{display:block;font-size:.87rem}.profile-menu__body small{color:var(--muted);font-size:.7rem;display:block;margin-top:2px}
.schedule-date{display:flex;gap:7px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:none}.schedule-date::-webkit-scrollbar{display:none}.date-chip{min-width:66px;background:#fff;border:1px solid var(--border);border-radius:17px;padding:10px;text-align:center;cursor:pointer}.date-chip small{display:block;color:var(--muted);font-size:.67rem}.date-chip strong{display:block;margin-top:4px}.date-chip.active{background:var(--navy);color:#fff;border-color:var(--navy)}.date-chip.active small{color:#c4ccda}
@media(min-width:640px){.page-host{padding-left:22px;padding-right:22px}.quick-actions{grid-template-columns:repeat(4,1fr)}.grid-responsive{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.bottom-nav{left:50%;right:auto;width:520px;transform:translateX(-50%)}}

/* Homigo official logo + visible route progress */
.brand-logo-image{display:block;object-fit:contain;background:transparent;border-radius:0}
.brand-logo-image--splash{width:min(390px,90vw);height:auto;filter:drop-shadow(0 14px 28px rgba(0,0,0,.20))}
.brand-logo-image--header{width:108px;height:50px;padding:0;object-fit:contain}
.brand-logo-image--login{width:min(300px,78vw);height:auto}
.brand-logo-image--location{width:min(310px,80vw);height:auto}
.route-progress{position:fixed;z-index:10000;left:0;right:0;top:0;height:4px;opacity:0;pointer-events:none;overflow:hidden;background:rgba(255,255,255,.14);transition:opacity .12s ease}
.route-progress--active{opacity:1}
.route-progress span{display:block;width:42%;height:100%;background:linear-gradient(90deg,var(--pink),#ff9fbd,var(--pink));box-shadow:0 0 12px rgba(255,107,157,.55);animation:homigoRouteProgress 1s ease-in-out infinite}
@keyframes homigoRouteProgress{0%{transform:translateX(-110%)}100%{transform:translateX(350%)}}




/* Cordova-wrapper matching loading screen.
   Mirrors HOMIGO_Mobile_1.5.1/mobile/www exactly, but namespaced to avoid
   affecting normal PWA cards, headings and buttons. */
.wrapper-loading-screen{
  position:fixed;
  inset:0;
  z-index:2000;
  min-height:100vh;
  min-height:100dvh;
  display:grid;
  place-items:center;
  padding:
    max(24px,env(safe-area-inset-top))
    max(20px,env(safe-area-inset-right))
    max(24px,env(safe-area-inset-bottom))
    max(20px,env(safe-area-inset-left));
  color:#051637;
  background:
    radial-gradient(circle at 18% 14%,rgba(223,76,121,.17),transparent 30%),
    radial-gradient(circle at 83% 16%,rgba(5,22,55,.10),transparent 34%),
    linear-gradient(155deg,#f8f5f0,#f0ede8 62%,#e9e8ec);
  transition:opacity .22s ease,visibility .22s ease;
}
.wrapper-loading-screen.is-gone{opacity:0;visibility:hidden}
.wrapper-loading-card{
  width:min(430px,100%);
  padding:38px 30px;
  text-align:center;
  border:1px solid rgba(5,22,55,.10);
  border-radius:26px;
  background:rgba(255,255,255,.76);
  box-shadow:0 24px 70px rgba(5,22,55,.15);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.wrapper-loading-logo{
  display:block;
  width:min(220px,68vw);
  height:auto;
  max-height:112px;
  margin:0 auto;
  object-fit:contain;
  padding:7px 10px;
  border-radius:16px;
  background:#f0ede8;
}
.wrapper-loading-tagline{
  margin:5px 0 0;
  color:#df4c79;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.08em;
  line-height:1.55;
  text-transform:uppercase;
}
.wrapper-loading-title{
  margin:24px 0 8px;
  color:#051637;
  font-size:clamp(1.7rem,6vw,2.2rem);
  line-height:1.15;
  letter-spacing:-.035em;
}
.wrapper-loading-message{
  margin:0;
  color:#59657a;
  line-height:1.55;
}
.wrapper-loading-spinner{
  width:36px;
  height:36px;
  margin:24px auto 0;
  border:3px solid rgba(5,22,55,.12);
  border-top-color:#df4c79;
  border-right-color:#051637;
  border-radius:50%;
  animation:wrapper-loading-spin .9s linear infinite;
}
.wrapper-loading-hint{
  margin:18px 0 0;
  color:#758096;
  font-size:.88rem;
  line-height:1.55;
}
@keyframes wrapper-loading-spin{to{transform:rotate(360deg)}}

@media (prefers-color-scheme:dark){
  .wrapper-loading-screen{
    color:#f7f2ed;
    background:
      radial-gradient(circle at 18% 14%,rgba(223,76,121,.18),transparent 31%),
      radial-gradient(circle at 82% 18%,rgba(73,104,161,.18),transparent 34%),
      linear-gradient(155deg,#030b1c,#051637 62%,#091d3f);
  }
  .wrapper-loading-card{
    border-color:rgba(240,237,232,.10);
    background:rgba(8,24,53,.84);
    box-shadow:0 24px 70px rgba(0,0,0,.40);
  }
  .wrapper-loading-logo{
    background:#f0ede8;
    filter:drop-shadow(0 10px 28px rgba(0,0,0,.22));
  }
  .wrapper-loading-title{color:#f7f2ed}
  .wrapper-loading-message{color:#bac4d6}
  .wrapper-loading-hint{color:#8f9db6}
  .wrapper-loading-spinner{
    border-color:rgba(240,237,232,.12);
    border-top-color:#df4c79;
    border-right-color:#f0ede8;
  }
}
@media (prefers-reduced-motion:reduce){
  .wrapper-loading-spinner{animation-duration:1.8s}
}



/* Homigo v0.00004 native-style controls. Browser-native selects, date/time
   widgets and visible file inputs are retained only as invisible form state. */
.native-control-source{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  min-width:1px!important;
  min-height:1px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  box-sizing:border-box!important;
  opacity:0!important;
  pointer-events:none!important;
  clip-path:inset(50%)!important;
  overflow:hidden!important;
}
.native-control-trigger{
  width:100%;
  min-height:50px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 13px 11px 14px;
  border:1px solid var(--border);
  border-radius:15px;
  background:var(--surface);
  color:var(--text);
  text-align:left;
  font:inherit;
  font-weight:720;
  box-shadow:0 1px 0 rgba(13,27,61,.02);
  cursor:pointer;
  transition:border-color .18s ease,box-shadow .18s ease,transform .16s var(--ease),background .18s ease;
}
.native-control-trigger:active{transform:scale(.985)}
.native-control-trigger:focus-visible{outline:none;border-color:var(--pink);box-shadow:0 0 0 4px rgba(255,107,157,.13)}
.native-control-trigger:disabled{opacity:.5;cursor:not-allowed}
.native-control-trigger--placeholder .native-control-trigger__value{color:var(--muted);font-weight:650}
.native-control-trigger__value{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.native-control-trigger__icon{width:22px;height:22px;flex:0 0 22px;color:var(--pink-2);display:grid;place-items:center}
.native-control-trigger__icon svg{width:20px;height:20px}

/* Remove browser stepper chrome while retaining the themed text field/keyboard. */
input[type=number]{appearance:textfield;-moz-appearance:textfield}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* Theme native checkbox/radio shapes instead of exposing browser defaults. */
input[type=checkbox]:not(.native-control-source),input[type=radio]:not(.native-control-source){
  appearance:none;
  -webkit-appearance:none;
  width:22px;
  height:22px;
  min-width:22px;
  margin:0;
  border:2px solid #b9c1d0;
  background:var(--surface);
  display:inline-grid;
  place-items:center;
  transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .14s var(--ease);
  cursor:pointer;
}
input[type=checkbox]:not(.native-control-source){border-radius:7px}
input[type=radio]:not(.native-control-source){border-radius:50%}
input[type=checkbox]:not(.native-control-source)::after{
  content:"";
  width:9px;
  height:5px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(-45deg) scale(0);
  transition:transform .14s var(--ease);
  margin-top:-2px;
}
input[type=radio]:not(.native-control-source)::after{
  content:"";
  width:10px;
  height:10px;
  border-radius:50%;
  background:#fff;
  transform:scale(0);
  transition:transform .14s var(--ease);
}
input[type=checkbox]:not(.native-control-source):checked,input[type=radio]:not(.native-control-source):checked{
  background:var(--pink-2);
  border-color:var(--pink-2);
  box-shadow:0 0 0 4px rgba(255,107,157,.10);
}
input[type=checkbox]:not(.native-control-source):checked::after,input[type=radio]:not(.native-control-source):checked::after{transform:rotate(-45deg) scale(1)}
input[type=radio]:not(.native-control-source):checked::after{transform:scale(1)}

html.native-ui-open,html.native-ui-open body{overflow:hidden!important;overscroll-behavior:none}
.native-ui{
  position:fixed;
  inset:0;
  z-index:5000;
  display:grid;
  align-items:end;
  pointer-events:none;
}
.native-ui__backdrop{
  position:absolute;
  inset:0;
  background:rgba(5,15,36,.50);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  opacity:0;
  transition:opacity .2s ease;
}
.native-sheet{
  position:relative;
  z-index:1;
  width:min(100%,560px);
  max-height:min(84dvh,760px);
  margin:0 auto;
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr) auto;
  overflow:hidden;
  border:1px solid rgba(13,27,61,.08);
  border-radius:28px 28px 0 0;
  background:var(--surface);
  color:var(--text);
  box-shadow:0 -18px 70px rgba(5,15,36,.22);
  transform:translateY(104%);
  transition:transform .22s var(--ease);
  padding-bottom:var(--safe-bottom);
}
.native-ui--open{pointer-events:auto}
.native-ui--open .native-ui__backdrop{opacity:1}
.native-ui--open .native-sheet{transform:translateY(0)}
.native-sheet__handle{width:42px;height:5px;border-radius:999px;background:#c9cfda;margin:9px auto 3px}
.native-sheet__header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:13px 17px 12px;border-bottom:1px solid var(--border)}
.native-sheet__heading{min-width:0;flex:1}
.native-sheet__eyebrow{margin:0 0 3px}
.native-sheet__title{font-size:1.18rem;line-height:1.2;letter-spacing:-.025em;color:var(--text)}
.native-sheet__subtitle{margin-top:5px;color:var(--muted);font-size:.82rem;line-height:1.45}
.native-sheet__close{width:40px;height:40px;flex:0 0 40px;border-radius:13px;background:var(--surface-2);color:var(--text);display:grid;place-items:center}
.native-sheet__close svg{width:20px;height:20px}
.native-sheet__body{min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:14px 16px 18px}
.native-sheet__footer{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:10px;padding:10px 16px 12px;border-top:1px solid var(--border);background:var(--surface)}
.native-sheet__action{width:100%}
.native-sheet__divider{height:1px;background:var(--border);margin:17px 0}
.native-dialog-message{font-size:.94rem;line-height:1.62;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}
.native-dialog-input{margin-top:14px;resize:none}
.native-dialog-input--error{border-color:var(--danger)!important;box-shadow:0 0 0 4px rgba(196,54,76,.12)!important}

.native-option-list{display:grid;gap:8px}
.native-option{
  width:100%;
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 13px;
  border:1px solid var(--border);
  border-radius:16px;
  background:var(--surface);
  color:var(--text);
  text-align:left;
  font-weight:760;
}
.native-option:active{transform:scale(.988)}
.native-option--selected{border-color:rgba(255,107,157,.48);background:var(--pink-soft);color:var(--navy)}
.native-option__check{width:23px;height:23px;flex:0 0 23px;color:var(--pink-2)}
.native-option__check svg{width:21px;height:21px}

.native-calendar{display:grid;gap:12px}
.native-calendar__nav{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;text-align:center}
.native-calendar__nav strong{font-size:1rem}
.native-calendar__arrow{width:40px;height:40px;border-radius:13px;background:var(--surface-2);color:var(--text);font-size:1.65rem;line-height:1;display:grid;place-items:center}
.native-calendar__weekdays,.native-calendar__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.native-calendar__weekdays span{text-align:center;color:var(--muted);font-size:.7rem;font-weight:850;padding:2px 0}
.native-calendar__blank{aspect-ratio:1}
.native-calendar__day{aspect-ratio:1;min-width:0;border-radius:12px;background:transparent;color:var(--text);font-weight:780;display:grid;place-items:center}
.native-calendar__day:active{background:var(--surface-2)}
.native-calendar__day--selected{background:linear-gradient(135deg,var(--pink),var(--pink-2));color:#fff;box-shadow:0 7px 17px rgba(245,72,131,.22)}
.native-calendar__day:disabled{opacity:.25}

.native-time-picker{display:grid;gap:12px}
.native-time-picker__preview{text-align:center;font-size:1.55rem;font-weight:900;letter-spacing:-.035em;color:var(--navy)}
.native-time-wheels{height:190px;display:grid;grid-template-columns:1fr 1fr .86fr;gap:8px;position:relative}
.native-time-wheels::before,.native-time-wheels::after{content:"";position:absolute;left:0;right:0;height:54px;pointer-events:none;z-index:2}
.native-time-wheels::before{top:0;background:linear-gradient(var(--surface),rgba(255,255,255,0))}
.native-time-wheels::after{bottom:0;background:linear-gradient(rgba(255,255,255,0),var(--surface))}
.native-time-wheel{min-width:0;overflow-y:auto;scroll-snap-type:y proximity;overscroll-behavior:contain;padding:68px 0;scrollbar-width:none}
.native-time-wheel::-webkit-scrollbar{display:none}
.native-time-wheel__item{width:100%;height:44px;scroll-snap-align:center;border-radius:12px;background:transparent;color:var(--muted);font-weight:800;font-size:1.05rem}
.native-time-wheel__item--selected{background:var(--pink-soft);color:var(--pink-2);font-weight:950}

@media(max-width:390px){
  .native-sheet{border-radius:24px 24px 0 0}
  .native-sheet__header{padding-left:14px;padding-right:14px}
  .native-sheet__body{padding-left:13px;padding-right:13px}
  .native-sheet__footer{padding-left:13px;padding-right:13px}
  .native-time-wheels{height:176px}
}
@media(prefers-reduced-motion:reduce){
  .native-ui__backdrop,.native-sheet,.native-control-trigger{transition:none!important}
}

