
:root{
  --navy:#1A222B; --navy-deep:#12171C; --blue:#2F3B68; --cyan:#A3B6EC; --brand:#8FA6E4; --royal:#6A80C8;
  --btn:linear-gradient(180deg,#C3D2F5 0%,#93A9E4 50%,#7188D0 100%); --btn-hover:linear-gradient(180deg,#D3DEF8 0%,#A3B6EC 50%,#7F95DA 100%);
  --ice:#C3F5FE; --silver:#C5D2DE; --white:#F2FBFF; --green:#3ecf8e; --red:#ff6b6b;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;}
html{scroll-padding-top:env(safe-area-inset-top,0px);}
body{margin:0;background:var(--navy-deep);color:var(--white);font-family:'Nunito',sans-serif;-webkit-font-smoothing:antialiased;}
h1,h2,h3,.brand{font-family:'Baloo 2',sans-serif;font-weight:800;margin:0;}
a{color:inherit;}
.wrap{max-width:900px;margin:0 auto;padding:0 24px;}
.demo-banner{background:#3a2a0d;color:#ffd479;text-align:center;font-size:.8rem;font-weight:700;padding:7px 12px;}

nav.mainnav{position:sticky;top:0;z-index:20;background:rgba(18,23,28,0.95);backdrop-filter:blur(6px);border-bottom:1px solid rgba(143,166,228,0.2);}
nav.mainnav .wrap{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;max-width:900px;}
.nav-brand{font-family:'Baloo 2',sans-serif;font-weight:800;font-size:1.1rem;color:var(--white);cursor:pointer;}
.nav-brand span{color:var(--brand);}
.nav-links{display:flex;gap:8px;}
.nav-links button{background:transparent;border:none;color:var(--white);font-family:'Nunito',sans-serif;font-weight:700;font-size:.92rem;padding:8px 14px;border-radius:999px;cursor:pointer;opacity:.85;}
.nav-links button.active,.nav-links button:hover{background:rgba(143,166,228,0.12);color:var(--cyan);opacity:1;}
.nav-links button.cta-nav{background:var(--btn);color:var(--navy-deep);opacity:1;}

header.hero{background:linear-gradient(160deg,var(--navy) 0%, var(--navy-deep) 100%);padding:56px 0 48px;text-align:center;border-bottom:3px solid var(--cyan);}
.logo-badge{display:inline-flex;align-items:center;gap:10px;background:#12171C;border:2px solid var(--cyan);border-radius:999px;padding:10px 22px;margin-bottom:22px;}
.logo-badge svg{width:28px;height:28px;}
.logo-badge span{font-family:'Baloo 2',sans-serif;font-weight:700;letter-spacing:1px;color:var(--cyan);font-size:.95rem;}
header.hero h1{font-size:clamp(2.2rem,7vw,3.4rem);line-height:1.05;color:var(--white);}
header.hero h1 span{color:var(--brand);}
header.hero .tagline{margin-top:14px;font-size:1.2rem;font-weight:700;opacity:.9;}
.cta{display:inline-block;margin-top:28px;margin-right:10px;background:var(--btn);color:var(--navy-deep);font-weight:800;font-family:'Baloo 2',sans-serif;padding:14px 30px;border-radius:999px;text-decoration:none;font-size:1.05rem;box-shadow:0 6px 20px rgba(143,166,228,0.25);border:none;cursor:pointer;}
.cta.outline{background:transparent;border:2px solid var(--cyan);color:var(--cyan);box-shadow:none;}

section{padding:56px 0;}
.band-navy{background:var(--navy-deep);}
.band-purple{background:var(--blue);}
section h2{font-size:1.8rem;text-align:center;margin-bottom:28px;color:var(--cyan);}
.band-purple h2{color:var(--white);}
.about-text{max-width:620px;margin:0 auto;text-align:center;font-size:1.05rem;line-height:1.7;opacity:.95;}
.card-grid{display:grid;grid-template-columns:1fr;gap:18px;}
@media(min-width:640px){.card-grid{grid-template-columns:1fr 1fr;}
  /* an odd last card (Ceramic) sits centered under the others, same width as the rest */
  .card-grid > .card:last-child:nth-child(odd){grid-column:1 / -1;justify-self:center;width:calc(50% - 9px);}}
.card{background:var(--navy);border:1px solid rgba(143,166,228,0.25);border-radius:16px;padding:22px;}
.card h3{color:var(--cyan);font-size:1.15rem;margin-bottom:10px;}
.card p{margin:0;font-size:.98rem;line-height:1.6;opacity:.9;}
.upgrades-grid{display:grid;grid-template-columns:1fr;gap:20px;}
@media(min-width:640px){.upgrades-grid{grid-template-columns:repeat(3,1fr);}}
.upgrade-col h3{color:var(--white);font-size:1.1rem;border-bottom:2px solid var(--cyan);padding-bottom:8px;margin-bottom:12px;}
.upgrade-col ul{list-style:none;padding:0;margin:0;}
.upgrade-col li{padding:6px 0;font-size:.98rem;opacity:.95;}
.upgrade-col li::before{content:"— ";color:var(--cyan);font-weight:700;}

footer{background:var(--navy-deep);text-align:center;padding:44px 24px 30px;border-top:3px solid var(--cyan);}
footer .brand{font-size:1.3rem;color:var(--white);}
footer .tag{opacity:.8;margin-top:6px;font-weight:600;}
footer .phone{display:inline-block;margin-top:20px;font-family:'Baloo 2',sans-serif;font-weight:800;font-size:1.3rem;color:var(--cyan);text-decoration:none;}
footer .admin-link{display:block;margin-top:28px;font-size:.75rem;opacity:.35;text-decoration:none;color:var(--white);}
footer .admin-link:hover{opacity:.7;}

.narrow{max-width:640px;margin:0 auto;padding:36px 20px 60px;}
label{display:block;font-weight:700;margin:16px 0 6px;font-size:.92rem;color:var(--cyan);}
input,select,textarea{width:100%;padding:11px 13px;border-radius:10px;border:1px solid rgba(143,166,228,.3);background:var(--navy);color:var(--white);font-family:'Nunito',sans-serif;font-size:1rem;}
textarea{resize:vertical;min-height:60px;}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;margin-top:8px;}
.slot-btn{padding:10px 6px;border-radius:8px;border:1px solid rgba(143,166,228,.3);background:var(--navy);color:var(--white);font-weight:700;cursor:pointer;font-family:'Nunito',sans-serif;}
.slot-btn.selected{background:var(--btn);color:var(--navy-deep);border-color:var(--cyan);}
.btn{display:inline-block;margin-top:22px;width:100%;background:var(--btn);color:var(--navy-deep);font-weight:800;font-family:'Baloo 2',sans-serif;padding:13px 20px;border-radius:999px;border:none;font-size:1rem;cursor:pointer;}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.btn.secondary{background:transparent;border:2px solid var(--cyan);color:var(--cyan);width:auto;margin-top:0;padding:9px 16px;}
.msg{margin-top:14px;padding:11px 13px;border-radius:10px;font-weight:600;font-size:.92rem;}
.msg.error{background:rgba(255,107,107,.15);color:var(--red);border:1px solid var(--red);}
.msg.success{background:rgba(62,207,142,.15);color:var(--green);border:1px solid var(--green);}
.hint{opacity:.7;font-size:.85rem;margin:6px 0 0;}
.check-label{display:flex;align-items:center;font-weight:600;color:var(--white);font-size:.92rem;margin:16px 0 0;opacity:.9;}
.check-label input{width:auto;}

.login-box{max-width:340px;margin:60px auto 0;padding:26px;background:var(--navy);border-radius:16px;border:1px solid rgba(143,166,228,.25);}
.cal-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:16px;}
.cal-nav{display:flex;align-items:center;gap:8px;}
.cal-nav button{background:var(--navy);border:1px solid rgba(143,166,228,.3);color:var(--white);border-radius:8px;padding:7px 12px;cursor:pointer;font-family:'Nunito',sans-serif;font-weight:700;}
.cal-label{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:1.05rem;min-width:150px;text-align:center;}
.view-toggle{display:flex;gap:6px;}
.view-toggle button{background:transparent;border:2px solid var(--cyan);color:var(--cyan);font-weight:700;padding:6px 14px;border-radius:999px;cursor:pointer;font-size:.85rem;}
.view-toggle button.active{background:var(--btn);color:var(--navy-deep);}

.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:rgba(143,166,228,.15);border:1px solid rgba(143,166,228,.15);border-radius:10px;overflow:hidden;}
.month-grid .dow{background:var(--navy);text-align:center;font-size:.72rem;font-weight:700;color:var(--cyan);padding:6px 2px;}
.month-cell{background:var(--navy-deep);min-height:74px;padding:4px;font-size:.72rem;cursor:pointer;}
.month-cell.other-month{opacity:.3;}
.month-cell .daynum{font-weight:700;font-size:.78rem;}
.month-cell .chip{background:rgba(143,166,228,.18);color:var(--cyan);border-radius:5px;padding:1px 4px;margin-top:2px;font-size:.65rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.month-cell .chip.status-done{opacity:.5;text-decoration:line-through;}
.month-cell .chip.status-cancelled{opacity:.35;text-decoration:line-through;}
.month-cell .more{font-size:.62rem;opacity:.6;margin-top:1px;}

.week-grid{display:grid;grid-template-columns:44px repeat(7,minmax(0,1fr));border:1px solid rgba(143,166,228,.15);border-radius:10px;overflow:hidden;}
.week-grid .dow{background:var(--navy);text-align:center;font-size:.7rem;font-weight:700;color:var(--cyan);padding:6px 2px;border-left:1px solid rgba(143,166,228,.1);}
.week-grid .corner{background:var(--navy);}
.hour-label{font-size:.62rem;opacity:.6;text-align:right;padding:2px 4px 0 0;border-top:1px solid rgba(143,166,228,.08);}
.week-cell{position:relative;min-height:34px;border-top:1px solid rgba(143,166,228,.08);border-left:1px solid rgba(143,166,228,.1);background:var(--navy-deep);}
.week-event{background:var(--cyan);color:var(--navy-deep);font-size:.62rem;font-weight:700;border-radius:4px;padding:2px 4px;margin:1px;cursor:pointer;overflow:hidden;white-space:nowrap;}
.week-event.status-done{background:var(--green);opacity:.7;}
.week-event.status-cancelled{background:var(--red);opacity:.6;text-decoration:line-through;}

.detail-panel{margin-top:18px;background:var(--navy);border:1px solid rgba(143,166,228,.25);border-radius:12px;padding:16px 18px;}
.detail-panel h3{font-size:1rem;color:var(--cyan);margin-bottom:6px;}
.detail-row{display:flex;justify-content:space-between;padding:5px 0;font-size:.88rem;border-bottom:1px solid rgba(143,166,228,.1);}
.detail-row b{opacity:.7;font-weight:700;}
.pill{padding:3px 9px;border-radius:999px;font-size:.72rem;font-weight:700;}
.pill.confirmed{background:rgba(143,166,228,.15);color:var(--cyan);}
.pill.done{background:rgba(62,207,142,.15);color:var(--green);}
.pill.cancelled{background:rgba(255,107,107,.15);color:var(--red);}
.detail-actions{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap;}
.detail-actions button{padding:7px 12px;font-size:.8rem;border-radius:8px;border:1px solid rgba(143,166,228,.3);background:transparent;color:var(--white);cursor:pointer;}
.hidden{display:none !important;}
.btn:not(.secondary):not(:disabled):hover,.cta:not(.outline):hover,.nav-links button.cta-nav:hover,.daysoff-add button:hover{background:var(--btn-hover);color:var(--navy-deep);}
.btn:not(.secondary),.cta:not(.outline),.nav-links button.cta-nav{text-shadow:0 1px 0 rgba(255,255,255,.25);}
/* ---- date picker ---- */
.picker{background:var(--navy);border:1px solid rgba(143,166,228,.3);border-radius:12px;padding:10px;}
.picker-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.picker-title{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:1.05rem;}
.pnav{background:var(--navy-deep);border:1px solid rgba(143,166,228,.3);color:var(--white);border-radius:8px;padding:6px 12px;cursor:pointer;font-weight:700;}
.pnav:disabled{opacity:.25;cursor:not-allowed;}
.picker-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;}
.pdow{text-align:center;font-size:.72rem;font-weight:700;color:var(--cyan);padding:2px 0 4px;}
.pday{aspect-ratio:1;min-width:0;border-radius:8px;border:1px solid rgba(143,166,228,.35);background:var(--navy-deep);color:var(--white);font-weight:700;font-size:.92rem;cursor:pointer;padding:0;font-family:'Nunito',sans-serif;}
.pday.open:hover{border-color:var(--cyan);}
.pday:disabled{background:rgba(255,255,255,.04);border-color:transparent;color:rgba(242,251,255,.28);cursor:not-allowed;}
.pday.off:disabled,.pday.full:disabled{text-decoration:line-through;}
.pday.today{box-shadow:inset 0 0 0 2px rgba(143,166,228,.6);}
.pday.selected{background:var(--btn);color:var(--navy-deep);border-color:var(--cyan);}
.picker-legend{display:flex;gap:14px;justify-content:center;margin-top:8px;font-size:.75rem;opacity:.8;}
.picker-legend span{display:flex;align-items:center;gap:5px;}
.lg{display:inline-block;width:12px;height:12px;border-radius:3px;}
.lg.open{background:var(--navy-deep);border:1px solid rgba(143,166,228,.6);}
.lg.na{background:rgba(255,255,255,.08);}
/* ---- days off ---- */
.daysoff{background:var(--navy-deep);border:1px solid rgba(143,166,228,.2);border-radius:10px;padding:10px 12px;margin:6px 0 12px;}
.daysoff-add{display:grid;grid-template-columns:1fr 1fr auto;gap:6px;}
.daysoff-add input{padding:8px;font-size:.88rem;margin:0;}
.daysoff-add button{background:var(--btn);color:var(--navy-deep);border:0;border-radius:8px;font-weight:800;padding:0 14px;cursor:pointer;}
@media(max-width:420px){.daysoff-add{grid-template-columns:1fr auto;}.daysoff-add #off-note{grid-column:1 / -1;grid-row:2;}}
#daysoff-list{display:flex;flex-direction:column;gap:6px;margin-top:8px;}
.off-chip{display:flex;justify-content:space-between;align-items:center;gap:8px;background:rgba(255,107,107,.1);border:1px solid rgba(255,107,107,.35);border-radius:8px;padding:6px 10px;font-size:.85rem;}
.off-chip button{background:none;border:0;color:var(--red);font-size:1.2rem;cursor:pointer;line-height:1;}
.month-cell.is-off{background:repeating-linear-gradient(45deg,rgba(255,107,107,.08) 0 6px,transparent 6px 12px),var(--navy-deep);}
.off-tag{font-size:.6rem;font-weight:800;color:var(--red);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.week-grid .dow.is-off{color:var(--red);}
.week-cell.is-off{background:repeating-linear-gradient(45deg,rgba(255,107,107,.07) 0 6px,transparent 6px 12px),var(--navy-deep);}
/* ---- admin tabs + customers ---- */
.admin-tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--navy);border:1px solid rgba(143,166,228,.3);border-radius:999px;padding:3px;margin-bottom:12px;}
.admin-tabs button{background:none;border:0;color:var(--white);font-weight:800;font-family:'Baloo 2',sans-serif;font-size:.95rem;padding:8px;border-radius:999px;cursor:pointer;}
.admin-tabs button.active{background:var(--btn);color:var(--navy-deep);}
#cust-search{margin-bottom:4px;}
#cust-list{display:flex;flex-direction:column;gap:8px;margin-top:8px;}
.cust{background:var(--navy);border:1px solid rgba(143,166,228,.22);border-radius:12px;overflow:hidden;}
.cust.open{border-color:var(--cyan);}
.cust-head{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name meta" "sub meta";gap:2px 10px;width:100%;text-align:left;background:none;border:0;color:var(--white);padding:12px 14px;cursor:pointer;font-family:'Nunito',sans-serif;}
.cust-name{grid-area:name;font-weight:800;font-size:1rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cust-sub{grid-area:sub;font-size:.8rem;opacity:.7;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cust-meta{grid-area:meta;display:flex;flex-direction:column;align-items:flex-end;gap:4px;justify-content:center;}
.cust-body{padding:0 14px 12px;}
.cust-body a,.detail-row a{color:var(--cyan);}
.cust-hist-title{font-family:'Baloo 2',sans-serif;font-weight:700;color:var(--cyan);margin:12px 0 4px;}
.hist-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;width:100%;text-align:left;background:var(--navy-deep);border:1px solid rgba(143,166,228,.15);border-radius:8px;color:var(--white);padding:8px 10px;margin-bottom:5px;cursor:pointer;font-size:.8rem;font-family:'Nunito',sans-serif;}
.hist-row span:nth-child(2){min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.8;}
/* ---- photo viewer ---- */
.viewer{position:fixed;inset:0;z-index:100;background:rgba(5,7,10,.94);display:flex;align-items:center;justify-content:center;padding:56px 12px 60px;}
.viewer img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;}
.v-close{position:absolute;top:10px;right:12px;background:none;border:0;color:#fff;font-size:2.2rem;cursor:pointer;line-height:1;}
.v-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(18,23,28,.7);border:1px solid rgba(143,166,228,.4);color:#fff;font-size:1.3rem;width:44px;height:44px;border-radius:999px;cursor:pointer;}
.v-prev{left:10px;} .v-next{right:10px;}
.v-cap{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-size:.85rem;color:var(--white);opacity:.85;}

/* ---- fit & layout fixes ---- */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.hero-logo{display:block;width:100%;max-width:560px;height:auto;margin:0 auto;}
.nav-brand{display:flex;align-items:center;gap:8px;}
.nav-brand img{height:38px;width:auto;}
.nav-brand .nb-text{color:var(--white);}
.nav-brand .nb-text span{color:var(--brand);}
.footer-logo{display:block;width:220px;max-width:70%;height:auto;margin:0 auto 6px;}
input,select,textarea{max-width:100%;min-width:0;}
input[type=date]{-webkit-appearance:none;appearance:none;display:block;min-height:44px;}
.narrow{overflow-wrap:anywhere;}
.admin-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-bottom:12px;}
.admin-actions .btn.secondary,.cal-nav button,.view-toggle button{padding:7px 12px;font-size:.85rem;line-height:1.2;margin:0;}
.cal-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;flex-wrap:nowrap;}
.cal-nav{gap:6px;}
.cal-label{font-family:'Baloo 2',sans-serif;font-weight:700;font-size:1.1rem;text-align:center;margin:4px 0 10px;min-width:0;}
.month-cell{min-width:0;overflow:hidden;}
.month-cell .chip{display:block;max-width:100%;}
.week-grid{grid-template-columns:40px repeat(7,minmax(0,1fr)) !important;}
.week-cell{min-width:0;overflow:hidden;}
.week-event{text-overflow:ellipsis;}
.week-event span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.detail-panel{overflow:hidden;}
.detail-row{gap:12px;}
.detail-row b{flex-shrink:0;}
.detail-row span{text-align:right;min-width:0;overflow-wrap:anywhere;}
.detail-panel .addon{color:var(--white);}
.detail-actions button{flex:1 1 auto;}
.set-grid{grid-template-columns:1fr !important;gap:0 !important;}
@media(min-width:560px){.set-grid{grid-template-columns:1fr 1fr !important;column-gap:18px !important;}}
.set-grid label{display:flex !important;align-items:center;justify-content:space-between;gap:10px;margin:0 !important;padding:6px 0;border-bottom:1px solid rgba(143,166,228,.1);font-size:.85rem !important;}
.set-grid input{width:78px !important;flex-shrink:0;margin:0 !important;padding:7px 8px;text-align:center;}
.days-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;}
.days-row label{display:flex;align-items:center;gap:4px;font-size:.82rem;font-weight:600;background:var(--navy-deep);border:1px solid rgba(143,166,228,.25);border-radius:999px;padding:4px 10px;margin:0;color:var(--white);}
.days-row input{width:auto;margin:0;}
@media(max-width:420px){
  .narrow{padding-left:14px;padding-right:14px;}
  .month-cell{min-height:58px;padding:3px 2px;}
  .month-cell .chip{font-size:.58rem;padding:1px 2px;}
  .week-event span{display:none !important;}
  .week-event{font-size:.56rem !important;padding:2px 2px !important;}
  .hour-label{font-size:.56rem;}
  .detail-panel{padding:14px 12px;}
  .nb-text{font-size:1rem;}
}

.addon em{font-style:normal;font-weight:700;color:var(--cyan);font-size:.78rem;margin-left:4px;opacity:.9;}
.set-grid{display:grid;grid-template-columns:1fr;gap:4px 14px;}
@media(min-width:560px){.set-grid{grid-template-columns:1fr 1fr;}}
.set-grid label{display:block;margin:8px 0 0;}
.set-grid input{margin-top:4px;}
.week-cell{min-height:22px !important;}
.week-buffer{font-size:.55rem;text-align:center;opacity:.55;margin:1px;border-radius:4px;padding:1px 0;
  background:repeating-linear-gradient(45deg,rgba(143,166,228,.14) 0 4px,transparent 4px 8px);}
.detail-panel label{color:var(--cyan);}

.slots .hint{grid-column:1 / -1;}
.slot-btn small{display:block;font-size:.68rem;font-weight:600;opacity:.7;margin-top:2px;}
.addons{display:grid;grid-template-columns:1fr;gap:10px;margin-top:6px;}
@media(min-width:560px){.addons{grid-template-columns:repeat(3,1fr);}}
.addon-group{background:var(--navy);border:1px solid rgba(143,166,228,.25);border-radius:10px;padding:10px 12px;}
.addon-title{font-family:'Baloo 2',sans-serif;font-weight:700;color:var(--cyan);font-size:.9rem;margin-bottom:4px;}
.addon{display:flex;align-items:center;gap:8px;font-size:.88rem;font-weight:600;padding:4px 0;color:var(--white);margin:0;}
.addon input{width:auto;margin:0;}
.week-event span{display:block;font-weight:600;opacity:.75;font-size:.58rem;}
.week-event.cont{min-height:26px;opacity:.55;}

@media(max-width:620px){
  nav.mainnav .wrap{flex-direction:column;gap:8px;padding:10px 12px;}
  .nav-links{width:100%;gap:4px;}
  .nav-links button{flex:1;padding:8px 4px;font-size:.8rem;white-space:nowrap;}
}

.collage{display:grid;gap:3px;border-radius:12px;overflow:hidden;margin-bottom:14px;background:#000;position:relative;aspect-ratio:1;}
.collage .ph{padding:0;border:0;margin:0;background:#000;cursor:zoom-in;display:block;width:100%;height:100%;overflow:hidden;min-width:0;min-height:0;}
.collage img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s;}
.collage .ph:hover img{transform:scale(1.03);}
.collage.three{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;}
.collage.three .ph-2{grid-column:2;grid-row:1 / span 2;}
.collage.six{grid-template-columns:1fr 1fr;grid-template-rows:29fr 42fr 29fr;}
.collage.stack{grid-template-columns:1fr;grid-template-rows:1fr 1fr;}
.ph-count{position:absolute;right:8px;bottom:8px;background:rgba(18,23,28,.85);color:var(--white);font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:999px;border:1px solid rgba(143,166,228,.4);pointer-events:none;}


.card-img{width:100%;height:170px;object-fit:cover;border-radius:12px;margin-bottom:14px;display:block;}
.upgrades-banner{width:100%;max-width:520px;display:block;margin:0 auto 30px;border-radius:16px;border:2px solid var(--cyan);}
.truck-banner{width:100%;max-height:320px;object-fit:cover;border-radius:16px;margin-bottom:28px;border:1px solid rgba(143,166,228,.25);}


.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.backup-box{margin-top:16px;padding-top:12px;border-top:1px solid rgba(143,166,228,.2);}
.backup-box button{padding:7px 12px;font-size:.8rem;border-radius:8px;border:1px solid rgba(143,166,228,.3);background:transparent;color:var(--white);cursor:pointer;}
.pday.loading{opacity:.35;}
.foot-links{display:flex;justify-content:center;gap:18px;margin-top:28px;}
.foot-links .admin-link{display:inline;margin-top:0;}
.hero-h1{font-family:'Nunito',sans-serif;font-weight:700;font-size:clamp(1rem,3.6vw,1.2rem);line-height:1.35;margin:14px auto 0;max-width:30ch;color:var(--cyan);letter-spacing:.01em;}
header.hero .tagline{margin-top:6px;}
/* admin security box */
.sec-box p{margin:6px 0}
.sec-key{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.05rem;letter-spacing:.06em;background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:10px 12px;margin:6px 0 10px;overflow-wrap:anywhere;user-select:all}
.sec-status{font-size:.9rem;padding:8px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.12)}
.sec-status.on{background:rgba(80,200,140,.12);border-color:rgba(80,200,140,.4)}
.sec-status.off{background:rgba(255,190,110,.10);border-color:rgba(255,190,110,.4)}
.sec-off{margin-top:8px}.sec-off summary{cursor:pointer;font-size:.9rem;opacity:.85}
.sec-sub{margin:14px 0 4px;font-weight:700;color:var(--cyan);font-size:.9rem}
.sec-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 12px;font-size:.85rem;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.08);min-width:0}
.sec-row span{min-width:0;overflow-wrap:anywhere}.sec-row span:last-child{opacity:.75}
.sec-row.bad span:first-child{color:#ffb4a8}
/* customers: vehicles + client editor */
.veh-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.08);min-width:0}
.veh-row span{min-width:0;overflow-wrap:anywhere}
.veh-row button,.add-veh{flex-shrink:0;padding:6px 12px;font-size:.8rem;border-radius:8px;border:1px solid rgba(143,166,228,.3);background:transparent;color:var(--white);cursor:pointer}
.veh-edit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,8.5rem) 40px;gap:6px;margin-bottom:6px;align-items:center}
.veh-edit input,.veh-edit select{margin:0!important;min-width:0}
.veh-edit button{height:40px;border-radius:8px;border:1px solid rgba(143,166,228,.3);background:transparent;color:var(--white);font-size:1.2rem;cursor:pointer}
.add-veh{margin:2px 0 6px}
#client-panel{margin-bottom:14px}
@media (max-width:420px){.veh-edit{grid-template-columns:minmax(0,1fr) 40px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}.veh-edit select{grid-column:1;grid-row:2}}
.detail-actions button.danger{color:#ffb4a8;border-color:rgba(255,140,120,.45)}
/* address lookup dropdown */
.ac-wrap{position:relative}
.ac-list{position:absolute;left:0;right:0;top:calc(100% - 6px);z-index:40;background:var(--navy-deep,#12171C);border:1px solid rgba(143,166,228,.45);border-radius:10px;box-shadow:0 12px 28px rgba(0,0,0,.45);overflow:hidden;max-height:300px;overflow-y:auto}
.ac-item{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid rgba(143,166,228,.15);color:var(--white);padding:11px 12px;font:inherit;font-size:.92rem;cursor:pointer;line-height:1.35}
.ac-item:last-child{border-bottom:0}
.ac-item small{display:inline-block;margin-left:8px;font-size:.72rem;opacity:.65}
.ac-item:hover,.ac-item.active{background:rgba(143,166,228,.18)}
.ac-item.ac-typed{font-size:.82rem;opacity:.8}
/* admin maps */
.map{height:320px;border-radius:12px;overflow:hidden;border:1px solid rgba(143,166,228,.3);background:#dfe3ea}
.map-card{margin-bottom:14px}
.map-card .map{height:280px}
.map-note{margin:6px 2px 0}
.route-panel{margin-top:18px;background:var(--navy);border:1px solid rgba(143,166,228,.25);border-radius:14px;padding:14px}
.route-head{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:8px;margin-bottom:10px}
.route-head h3{margin:0;text-align:center;font-size:1.02rem;color:var(--cyan)}
.route-head button{height:36px;border-radius:8px;border:1px solid rgba(143,166,228,.3);background:transparent;color:var(--white);cursor:pointer;font-size:1rem}
.route-list{list-style:none;margin:12px 0 0;padding:0}
.route-list .stop{padding:8px 10px;background:var(--navy-deep,#12171C);border:1px solid rgba(143,166,228,.15);border-radius:8px;font-size:.88rem}
.route-list .stop b{display:block}
.route-list .stop span{display:block;opacity:.75;font-size:.8rem;overflow-wrap:anywhere}
.route-list .stop em{font-style:normal;font-size:.8rem;color:var(--cyan)}
.route-list .leg{font-size:.78rem;opacity:.85;padding:4px 0 4px 14px;margin-left:12px;border-left:2px dashed rgba(143,166,228,.45)}
.warn-txt{color:#FFD9A8;font-weight:700}
.route-total{font-weight:700;margin:10px 0 0;font-size:.9rem}
.map-link{display:inline-block;padding:8px 14px;border-radius:8px;border:1px solid rgba(143,166,228,.4);color:var(--white);text-decoration:none;font-size:.85rem}
.pin{background:none;border:0}
.pin span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#5E77C9;color:#fff;font:700 14px/1 'Nunito',sans-serif;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.4)}
.pin-home span{background:#12171C;font-size:16px}
.pin-client span{width:18px;height:18px;margin:6px;background:#5E77C9}
.pop-btn{margin-top:6px;padding:5px 10px;border-radius:6px;border:1px solid #5E77C9;background:#5E77C9;color:#fff;font:600 12px 'Nunito',sans-serif;cursor:pointer}
.leaflet-container{font-family:'Nunito',sans-serif}
/* client editor: names + addresses lists; saved-address chips in the appointment editor */
.list-edit{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:6px;margin-bottom:6px;align-items:start}
.list-edit input{margin:0!important;min-width:0}
.list-edit .addr-box{min-width:0}
.list-edit > button{height:40px;border-radius:8px;border:1px solid rgba(143,166,228,.3);background:transparent;color:var(--white);font-size:1.2rem;cursor:pointer}
.saved-addr{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:-2px 0 8px;font-size:.78rem}
.saved-addr:empty{display:none}
.saved-addr span{opacity:.7}
.saved-addr button{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px 10px;border-radius:999px;border:1px solid rgba(143,166,228,.35);background:transparent;color:var(--white);font:inherit;cursor:pointer}
