:root{--blue:#1677FF;--blue-dark:#0f5fd8;--ink:#0F172A;--muted:#64748b;--line:#dbe5f2;--wash:#f6f9ff;--white:#fff;--green:#0f8a63;--shadow:0 22px 70px rgba(15,23,42,.12);--shadow-soft:0 12px 34px rgba(15,23,42,.08);--radius:22px;--radius-sm:14px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:radial-gradient(circle at top left,#e8f2ff 0,#f7faff 34%,#f8fafc 100%);line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{color:inherit}.topbar{height:5px;background:linear-gradient(90deg,#1677FF,#66b2ff,#0F172A)}header{background:rgba(255,255,255,.88);border-bottom:1px solid rgba(219,229,242,.9);backdrop-filter:blur(18px);position:sticky;top:0;z-index:20}.nav{max-width:1120px;margin:auto;padding:19px 24px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:900;letter-spacing:-.035em}.brand-mark{width:42px;height:42px;border-radius:15px;background:linear-gradient(135deg,var(--blue),#54a6ff);display:grid;place-items:center;color:white;font-size:22px;box-shadow:0 12px 28px rgba(22,119,255,.35);transition:transform .2s ease,box-shadow .2s ease}.brand:hover .brand-mark{transform:translateY(-1px) scale(1.03);box-shadow:0 16px 34px rgba(22,119,255,.42)}.brand small{display:block;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.admin-link{font-size:14px;color:var(--muted);text-decoration:none;font-weight:750;transition:color .18s ease}.admin-link:hover{color:var(--blue)}.hero{max-width:1120px;margin:0 auto;padding:58px 24px 28px;display:grid;grid-template-columns:.85fr 1.35fr;gap:68px;align-items:start}.intro{position:sticky;top:92px;padding-top:34px}.eyebrow{color:var(--blue);font-size:13px;text-transform:uppercase;letter-spacing:.14em;font-weight:900}.intro h1{font-size:50px;line-height:1.03;letter-spacing:-.06em;margin:14px 0 20px;color:var(--ink)}.intro p{color:var(--muted);font-size:17px;margin:0 0 30px}.promise{display:grid;gap:17px}.promise div{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:750}.tick{width:27px;height:27px;border-radius:50%;background:#e9f7f1;color:var(--green);display:grid;place-items:center;font-size:13px}.card{background:rgba(255,255,255,.94);border:1px solid rgba(219,229,242,.95);border-radius:var(--radius);box-shadow:var(--shadow);padding:34px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.card:hover{transform:translateY(-1px);box-shadow:0 28px 80px rgba(15,23,42,.14);border-color:#cfe1ff}.card-head{display:flex;justify-content:space-between;gap:16px;margin-bottom:28px}.card h2{font-size:24px;letter-spacing:-.035em;margin:0}.step{color:var(--muted);font-size:13px;padding-top:7px}.section-title{display:flex;align-items:center;gap:10px;font-size:13px;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:#526176;margin:28px 0 15px}.section-title:first-of-type{margin-top:0}.section-title:after{content:"";height:1px;background:var(--line);flex:1}.grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}label{font-size:13px;font-weight:780}label span{color:var(--blue)}input,select,textarea{width:100%;border:1px solid #cfd9e8;border-radius:13px;padding:12px 13px;color:var(--ink);background:#fff;outline:none;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(22,119,255,.14);transform:translateY(-1px)}textarea{resize:vertical;min-height:105px}.upload{border:1.5px dashed #b8c7dc;border-radius:16px;padding:20px;text-align:center;background:#f9fbff;cursor:pointer;color:var(--muted);font-size:13px;transition:.18s ease}.upload:hover{border-color:var(--blue);background:#f0f7ff}.upload strong{color:var(--blue)}.upload input{display:none}.files{font-size:12px;color:var(--muted);margin-top:8px}.submit{width:100%;border:0;border-radius:14px;background:linear-gradient(135deg,var(--blue),#3991ff);color:white;font-weight:900;padding:15px;margin-top:25px;cursor:pointer;box-shadow:0 12px 28px rgba(22,119,255,.3);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.submit:hover{background:linear-gradient(135deg,#0f6be8,#1677FF);transform:translateY(-1px);box-shadow:0 16px 34px rgba(22,119,255,.36)}.submit:disabled{opacity:.65;cursor:wait;transform:none}.fine{text-align:center;font-size:12px;color:var(--muted);margin:11px 0 0}.alert{padding:14px 16px;border-radius:14px;margin-bottom:18px;font-size:14px;display:none}.alert.error{display:block;color:#a22020;background:#fff0f0;border:1px solid #ffd3d3}.success{text-align:center;padding:44px 20px}.success-icon{width:64px;height:64px;border-radius:20px;background:linear-gradient(135deg,#e8f7f1,#d8fff1);color:var(--green);display:grid;place-items:center;margin:0 auto 18px;font-size:30px;box-shadow:var(--shadow-soft)}.success h2{font-size:28px}.success p{color:var(--muted)}.ref{display:inline-block;background:#eef6ff;padding:8px 13px;border-radius:10px;font-weight:900;color:var(--blue)}.secondary{border:1px solid var(--line);background:white;border-radius:13px;padding:10px 14px;font-weight:800;cursor:pointer;margin-top:12px;transition:.18s ease}.secondary:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-1px)}footer{text-align:center;color:var(--muted);font-size:12px;padding:20px 24px 40px}
/* dashboard */.dash{max-width:1180px;margin:0 auto;padding:42px 24px}.dash-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:28px}.dash h1{font-size:32px;letter-spacing:-.04em;margin:0}.dash-head p{color:var(--muted);margin:5px 0 0}.back{font-size:14px;color:var(--blue);font-weight:700;text-decoration:none}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:22px}.stat{background:white;border:1px solid var(--line);border-radius:14px;padding:19px}.stat span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:750}.stat strong{display:block;font-size:28px;margin-top:3px}.table-card{background:white;border:1px solid var(--line);border-radius:17px;overflow:hidden;box-shadow:0 10px 35px rgba(22,55,105,.06)}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#f8fafe;padding:13px 16px}td{padding:16px;border-top:1px solid #edf1f6;font-size:13px;vertical-align:top}.customer strong{display:block;font-size:14px}.customer span,.date-sub{color:var(--muted);font-size:12px}.badge{display:inline-block;padding:5px 9px;border-radius:999px;color:#176b53;background:#e5f8f1;font-size:11px;font-weight:800}.row-button{background:none;border:0;color:var(--blue);font-weight:750;cursor:pointer;padding:0}.empty{text-align:center;padding:65px 20px;color:var(--muted)}.detail-row{display:none}.detail-row.open{display:table-row}.detail{background:#f8fafe;padding:20px!important}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.detail-block span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-weight:750;display:block;margin-bottom:4px}.photos{display:flex;gap:8px;margin-top:8px}.photos img{width:72px;height:58px;object-fit:cover;border-radius:7px}
@media(max-width:800px){.hero{grid-template-columns:1fr;gap:24px;padding-top:30px}.intro{position:static;padding-top:0}.intro h1{font-size:39px}.promise{display:none}.card{padding:24px}.stats{grid-template-columns:1fr 1fr}.stats .stat:last-child{display:none}.table-card{overflow-x:auto}table{min-width:720px}.dash-head{align-items:start}.detail-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.nav{padding:15px 18px}.brand-mark{width:35px;height:35px}.admin-link{font-size:12px}.hero{padding:26px 16px 18px}.intro h1{font-size:34px;margin-bottom:13px}.intro p{font-size:15px;margin-bottom:5px}.card{border-radius:17px;padding:21px 17px}.grid{grid-template-columns:1fr;gap:14px}.field.full{grid-column:auto}.card-head{margin-bottom:22px}.card h2{font-size:21px}.dash{padding:28px 15px}.dash h1{font-size:27px}.stats{gap:9px}.stat{padding:15px}.stat strong{font-size:23px}}

/* Sparkles Cleaning Cambridge premium brand layer */
.stat,.table-card,.owner-card,.owner-panel,.cleaner-card,.job-card,.modal,.payment-card,.accept-card,.mini-item,.card-wide{border-radius:var(--radius-sm)!important;box-shadow:var(--shadow-soft)!important;border-color:var(--line)!important;background:rgba(255,255,255,.96)!important;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.stat:hover,.owner-card:hover,.cleaner-card:hover,.job-card:hover,.mini-item:hover{transform:translateY(-1px);border-color:#cfe1ff!important;box-shadow:var(--shadow)!important}
.owner-card.money strong,.back,.admin-nav a.active{color:var(--blue)!important}.owner-card strong,.stat strong,.rate{color:var(--ink)}
.primary-small,.assign-button,.match button,.job-actions button:not(.secondary),.cleaner-note-box button:not(.secondary),.pay-button,.refresh-button,.button-link.pay-button{background:linear-gradient(135deg,var(--blue),#3991ff)!important;color:#fff!important;border:0!important;border-radius:13px!important;box-shadow:0 12px 28px rgba(22,119,255,.24);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.primary-small:hover,.assign-button:hover,.match button:hover,.job-actions button:not(.secondary):hover,.cleaner-note-box button:not(.secondary):hover,.pay-button:hover,.refresh-button:hover{transform:translateY(-1px);box-shadow:0 16px 34px rgba(22,119,255,.32);filter:saturate(1.04)}
.empty,.empty-mini{border-radius:var(--radius-sm);background:linear-gradient(180deg,#fbfdff,#f3f8ff);border:1px dashed #d4e3f7}
.empty:before,.empty-mini:before{content:"✦";display:block;color:var(--blue);font-size:25px;margin-bottom:8px}
.spinner{border-top-color:var(--blue)!important}.calendar-loading,.loading{color:var(--muted)}
.sparkles-chat-button,.sparkles-chat-form button{background:linear-gradient(135deg,var(--blue),#3991ff)!important;box-shadow:0 14px 34px rgba(22,119,255,.32)!important}.sparkles-chat,.conversation-list,.conversation-panel,.calendar-card,.availability-panel,.ai-card,.recruit-hero>div:first-child,.source-card,.recruit-form,.recruit-links,.recruit-import,.applicant-card{border-radius:var(--radius)!important;box-shadow:var(--shadow-soft)!important}.sparkles-chat-head,.source-card{background:linear-gradient(135deg,var(--blue),#66b2ff)!important}.bar{background:linear-gradient(180deg,#66b2ff,var(--blue))!important}.legend .assigned,.booking-event.status-assigned{border-color:var(--blue)!important}.view-switch button.active{color:var(--blue)!important}

/* Sparkles Cleaning Cambridge design system */
:root{--v2-blue:#1677FF;--v2-ink:#0F172A;--v2-glass:rgba(255,255,255,.82);--v2-border:rgba(226,232,240,.82);--v2-shadow:0 24px 80px rgba(15,23,42,.14);--v2-shadow-soft:0 14px 38px rgba(15,23,42,.09);--v2-ease:cubic-bezier(.2,.8,.2,1)}
body{background:radial-gradient(circle at 12% -8%,rgba(22,119,255,.18),transparent 34%),linear-gradient(180deg,#f8fbff 0%,#f6f8fb 46%,#ffffff 100%)}
header{background:rgba(255,255,255,.78);box-shadow:0 1px 0 rgba(15,23,42,.04),0 18px 45px rgba(15,23,42,.04)}
.nav{max-width:1240px}.brand{letter-spacing:-.045em}.brand-mark,.sparkles-logo-mark{background:linear-gradient(135deg,#1677FF 0%,#5aa7ff 52%,#0F172A 140%);box-shadow:0 16px 34px rgba(22,119,255,.32)}
.admin-nav a,.admin-link,.row-button{transition:color .18s var(--v2-ease),transform .18s var(--v2-ease),background .18s var(--v2-ease)}
.admin-nav a:hover,.admin-link:hover,.row-button:hover{color:var(--v2-blue)!important;transform:translateY(-1px)}
.card,.stat,.table-card,.owner-card,.owner-panel,.cleaner-card,.job-card,.payment-card,.accept-card{border:1px solid var(--v2-border)!important;border-radius:24px!important;box-shadow:var(--v2-shadow-soft)!important}
.card:hover,.stat:hover,.owner-card:hover,.owner-panel:hover,.cleaner-card:hover,.job-card:hover,.payment-card:hover{transform:translateY(-2px);box-shadow:var(--v2-shadow)!important}
.submit,.primary-small,.refresh-button,.pay-button,.assign-button{border-radius:16px!important;background:linear-gradient(135deg,#1677FF,#4ba0ff)!important;box-shadow:0 16px 34px rgba(22,119,255,.28)!important}
.submit:hover,.primary-small:hover,.refresh-button:hover,.pay-button:hover,.assign-button:hover{transform:translateY(-2px);box-shadow:0 20px 46px rgba(22,119,255,.34)!important}
input,select,textarea{border-radius:16px;background:rgba(255,255,255,.96)}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 5px rgba(22,119,255,.13)}
.login-body{min-height:100vh;background:radial-gradient(circle at 15% 18%,rgba(255,255,255,.22),transparent 20%),radial-gradient(circle at 84% 12%,rgba(93,169,255,.34),transparent 26%),linear-gradient(135deg,#0F172A 0%,#114eaa 42%,#1677FF 100%);color:#fff;overflow-x:hidden}
.sparkles-login-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:42px;width:min(1180px,100%);margin:0 auto;padding:52px 28px;animation:fadeUp .55s var(--v2-ease) both}
.login-brand-panel{display:grid;gap:34px}.sparkles-wordmark{display:flex;align-items:center;gap:14px;color:#fff;text-decoration:none;font-weight:900;font-size:20px;letter-spacing:-.04em}.sparkles-wordmark small{display:block;margin-top:2px;color:rgba(255,255,255,.74);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.sparkles-logo-mark{width:50px;height:50px;border-radius:18px;display:grid;place-items:center;color:#fff;font-size:25px}.sparkles-logo-mark.small{width:44px;height:44px;border-radius:16px;font-size:21px;flex:0 0 auto}
.login-copy h1{font-size:clamp(42px,6vw,76px);line-height:.95;letter-spacing:-.075em;margin:12px 0 18px;max-width:690px}.login-copy p{font-size:19px;line-height:1.6;color:rgba(255,255,255,.78);max-width:560px;margin:0}.login-body .eyebrow{color:#dbeafe}
.login-trust-row{display:flex;gap:10px;flex-wrap:wrap}.login-trust-row span{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.12);backdrop-filter:blur(16px);border-radius:999px;padding:10px 13px;font-size:13px;font-weight:800;color:rgba(255,255,255,.86)}
.login-card{width:min(470px,100%);justify-self:end;background:rgba(255,255,255,.93);color:var(--v2-ink);border:1px solid rgba(255,255,255,.54);border-radius:30px;padding:34px;box-shadow:0 28px 90px rgba(2,8,23,.28);backdrop-filter:blur(20px);animation:floatIn .65s var(--v2-ease) both}
.login-card-head{display:flex;gap:14px;align-items:center;margin-bottom:26px}.login-card h1{margin:0;font-size:30px;letter-spacing:-.05em}.login-card p{margin:3px 0 0;color:var(--muted)}.login-card .submit{margin-top:20px}
.login-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;font-size:13px}.login-options a{color:var(--v2-blue);font-weight:850;text-decoration:none}.remember-me{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;font-weight:800}.remember-me input{width:16px;height:16px;accent-color:var(--v2-blue);padding:0}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes floatIn{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:860px){.sparkles-login-shell{grid-template-columns:1fr;gap:26px;padding:36px 18px}.login-card{justify-self:stretch;width:100%}.login-copy h1{font-size:42px}.login-copy p{font-size:16px}}
@media(max-width:520px){.login-trust-row{display:none}.login-card{padding:24px;border-radius:24px}.login-options{align-items:flex-start;flex-direction:column}.sparkles-wordmark{font-size:16px}.sparkles-logo-mark{width:42px;height:42px;border-radius:15px}.login-copy h1{font-size:36px}}

/* Sparkles Premium Platform Finish
   Shared UI layer only: no booking, payment, email, auth, database or API behaviour lives here. */
:root{
  --premium-navy:#020B20;
  --premium-navy-2:#071A3D;
  --premium-blue:#1677FF;
  --premium-blue-2:#60A5FA;
  --premium-cyan:#38BDF8;
  --premium-gold:#F4C430;
  --premium-bg:#F7FAFF;
  --premium-card:rgba(255,255,255,.92);
  --premium-card-solid:#FFFFFF;
  --premium-border:rgba(203,213,225,.78);
  --premium-muted:#64748B;
  --premium-shadow:0 24px 70px rgba(15,23,42,.12);
  --premium-shadow-soft:0 12px 34px rgba(15,23,42,.08);
  --premium-shadow-blue:0 18px 44px rgba(22,119,255,.26);
  --premium-radius:26px;
  --premium-radius-sm:18px;
  --premium-ease:cubic-bezier(.2,.8,.2,1);
}
html{background:var(--premium-bg)}
body{
  background:
    radial-gradient(circle at 12% -10%,rgba(22,119,255,.20),transparent 34%),
    radial-gradient(circle at 90% 0%,rgba(56,189,248,.12),transparent 28%),
    linear-gradient(180deg,#F8FBFF 0%,#F5F8FF 42%,#FFFFFF 100%)!important;
  text-rendering:optimizeLegibility;
}
.topbar{
  height:4px;
  background:linear-gradient(90deg,var(--premium-blue),var(--premium-cyan),var(--premium-gold),var(--premium-navy));
}
header,.sp-nav{
  background:rgba(255,255,255,.82)!important;
  border-bottom:1px solid rgba(226,232,240,.82)!important;
  backdrop-filter:blur(20px);
  box-shadow:0 1px 0 rgba(15,23,42,.04),0 22px 60px rgba(15,23,42,.06)!important;
}
.nav{max-width:1320px;padding:22px 28px}
.brand,.sp-wordmark,.sparkles-wordmark{
  gap:16px;
  color:var(--premium-navy);
  letter-spacing:-.055em;
}
.brand-mark,.sparkles-logo-mark{
  width:58px!important;
  height:58px!important;
  border-radius:20px!important;
  background:
    linear-gradient(rgba(2,11,32,.08),rgba(2,11,32,.08)),
    url("/assets/sparkles-premium-logo.jpg") center/cover no-repeat!important;
  color:transparent!important;
  overflow:hidden;
  box-shadow:0 18px 42px rgba(2,11,32,.24),0 0 0 1px rgba(255,255,255,.9)!important;
}
.brand:hover .brand-mark,.sparkles-wordmark:hover .sparkles-logo-mark{transform:translateY(-2px) scale(1.02)}
.brand small,.sp-wordmark small,.sparkles-wordmark small{
  color:var(--premium-muted);
  letter-spacing:.12em;
}
.admin-nav{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.admin-nav a,.admin-nav button,.sp-nav-link,.admin-link{
  border-radius:999px!important;
  padding:10px 13px!important;
  color:#526176!important;
  font-weight:850!important;
  text-decoration:none!important;
  transition:background .18s var(--premium-ease),color .18s var(--premium-ease),transform .18s var(--premium-ease),box-shadow .18s var(--premium-ease);
}
.admin-nav a:hover,.admin-nav button:hover,.sp-nav-link:hover,.admin-link:hover,
.admin-nav a.active,.sp-nav-link.active{
  background:#EEF6FF!important;
  color:var(--premium-blue)!important;
  transform:translateY(-1px);
}
.dash,.owner-page,.calendar-page,.automation-page,.cleaner-page,.receptionist-page,.setup-page,.recruit-page{
  width:min(1280px,100%);
  margin-inline:auto;
}
.dash-head,.panel-head,.card-head{
  gap:18px;
}
h1,h2,h3{
  color:var(--premium-navy);
  letter-spacing:-.055em;
}
.dash h1,.owner-hero h1,.intro h1{
  letter-spacing:-.07em;
}
.eyebrow,.sp-kicker,.section-title,.stat span,.owner-card span,.detail-block span{
  color:var(--premium-blue)!important;
  letter-spacing:.14em!important;
}
.card,.stat,.table-card,.owner-card,.owner-panel,.cleaner-card,.job-card,.payment-card,.accept-card,.modal,.calendar-card,.availability-panel,.ai-card,.source-card,.recruit-form,.recruit-links,.recruit-import,.applicant-card,.conversation-list,.conversation-panel,.sparkles-chat,.mini-item,.detail{
  background:var(--premium-card)!important;
  border:1px solid var(--premium-border)!important;
  border-radius:var(--premium-radius)!important;
  box-shadow:var(--premium-shadow-soft)!important;
  backdrop-filter:blur(14px);
  transition:transform .18s var(--premium-ease),box-shadow .18s var(--premium-ease),border-color .18s var(--premium-ease),background .18s var(--premium-ease);
}
.card:hover,.stat:hover,.owner-card:hover,.owner-panel:hover,.cleaner-card:hover,.job-card:hover,.payment-card:hover,.accept-card:hover,.calendar-card:hover,.ai-card:hover,.applicant-card:hover,.mini-item:hover{
  transform:translateY(-2px);
  border-color:rgba(22,119,255,.28)!important;
  box-shadow:var(--premium-shadow)!important;
}
.stat,.owner-card,.sp-kpi-card{
  position:relative;
  overflow:hidden;
}
.stat:before,.owner-card:before,.sp-kpi-card:before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:4px;
  background:linear-gradient(90deg,var(--premium-blue),var(--premium-cyan),var(--premium-gold));
}
.stat strong,.owner-card strong,.sp-kpi-value,.rate{
  color:var(--premium-navy)!important;
  letter-spacing:-.05em;
}
button,.submit,.primary-small,.refresh-button,.pay-button,.assign-button,.match button,.job-actions button:not(.secondary),.cleaner-note-box button:not(.secondary),.button-link.pay-button{
  border-radius:16px!important;
}
.submit,.primary-small,.refresh-button,.pay-button,.assign-button,.match button,.job-actions button:not(.secondary),.cleaner-note-box button:not(.secondary),.button-link.pay-button{
  background:linear-gradient(135deg,var(--premium-blue),#4EA3FF)!important;
  color:#fff!important;
  border:0!important;
  box-shadow:var(--premium-shadow-blue)!important;
  font-weight:900!important;
  transition:transform .18s var(--premium-ease),box-shadow .18s var(--premium-ease),filter .18s var(--premium-ease);
}
.submit:hover,.primary-small:hover,.refresh-button:hover,.pay-button:hover,.assign-button:hover,.match button:hover,.job-actions button:not(.secondary):hover,.cleaner-note-box button:not(.secondary):hover,.button-link.pay-button:hover{
  transform:translateY(-2px);
  box-shadow:0 24px 54px rgba(22,119,255,.34)!important;
  filter:saturate(1.06);
}
.secondary,.row-button,.back,.sp-button-secondary{
  color:var(--premium-blue)!important;
}
.secondary{
  border-color:#D5E5FF!important;
  box-shadow:0 8px 22px rgba(15,23,42,.05);
}
input,select,textarea{
  min-height:48px;
  border-radius:16px!important;
  border-color:#CBD5E1!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}
textarea{line-height:1.55}
input:focus,select:focus,textarea:focus{
  border-color:var(--premium-blue)!important;
  box-shadow:0 0 0 5px rgba(22,119,255,.13)!important;
}
table{
  border-collapse:separate;
  border-spacing:0;
}
th{
  background:#F8FBFF!important;
  color:#64748B!important;
  font-weight:950!important;
}
td{border-top:1px solid #EEF2F7!important}
.badge,.payment-badge,.status-pill,.chip,.match-chips span,.login-trust-row span{
  border-radius:999px!important;
  font-weight:900!important;
}
.badge,.status-new{background:#EEF6FF!important;color:var(--premium-blue)!important}
.status-assigned,.status-accepted,.status-on-my-way,.payment-paid,.sp-badge-success{background:#ECFDF5!important;color:#15803D!important}
.payment-due,.status-warning,.sp-badge-warning{background:#FFFBEB!important;color:#B45309!important}
.empty,.empty-mini,.no-matches,.match-error{
  border:1px dashed #C9D8EE!important;
  border-radius:var(--premium-radius)!important;
  background:linear-gradient(180deg,#FFFFFF,#F5F9FF)!important;
  color:var(--premium-muted)!important;
}
.empty:before,.empty-mini:before,.no-matches:before{
  content:"✦";
  display:block;
  color:var(--premium-blue);
  font-size:30px;
  margin-bottom:8px;
}
.sparkles-chat-button{
  right:22px!important;
  bottom:22px!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,var(--premium-navy),var(--premium-blue))!important;
  box-shadow:0 22px 56px rgba(2,11,32,.28),0 0 0 1px rgba(255,255,255,.72)!important;
}
.sparkles-chat-head,.source-card{
  background:radial-gradient(circle at 15% 0%,rgba(96,165,250,.34),transparent 36%),linear-gradient(135deg,var(--premium-navy),#0D3F9C)!important;
}
.photos img,.photo-grid img{
  border-radius:14px!important;
  box-shadow:0 8px 22px rgba(15,23,42,.12);
}
.modal-backdrop{
  backdrop-filter:blur(10px);
  background:rgba(2,11,32,.42)!important;
}
.modal{
  background:rgba(255,255,255,.96)!important;
}
footer,.sp-footer{
  color:var(--premium-muted)!important;
}
@media(max-width:800px){
  .nav,.sp-nav-inner{
    padding:16px 18px!important;
  }
  .brand-mark,.sparkles-logo-mark{
    width:48px!important;
    height:48px!important;
    border-radius:17px!important;
  }
  .admin-nav{
    width:100%;
    gap:6px;
  }
  .admin-nav a,.admin-nav button,.sp-nav-link{
    padding:9px 10px!important;
    font-size:12px!important;
  }
  .card,.stat,.table-card,.owner-card,.owner-panel,.cleaner-card,.job-card,.payment-card,.accept-card,.modal{
    border-radius:22px!important;
  }
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    scroll-behavior:auto!important;
    transition-duration:.001ms!important;
  }
}

/* Role-based sign in and simple cleaner payout visibility */
.role-login-page{
  min-height:100vh;
  background:
    radial-gradient(circle at 14% 8%,rgba(22,119,255,.22),transparent 30%),
    radial-gradient(circle at 86% 10%,rgba(56,189,248,.14),transparent 28%),
    linear-gradient(180deg,#F8FBFF,#FFFFFF 58%,#F3F8FF)!important;
}
.role-login-shell{
  width:min(1160px,100%);
  margin:0 auto;
  padding:clamp(32px,7vw,88px) 24px;
  display:grid;
  grid-template-columns:.86fr 1.14fr;
  gap:34px;
  align-items:start;
}
.role-login-hero{
  position:sticky;
  top:110px;
}
.role-login-hero h1{
  font-size:clamp(42px,6vw,76px);
  line-height:.96;
  margin:12px 0 18px;
}
.role-login-hero p{
  color:var(--premium-muted);
  font-size:18px;
  line-height:1.65;
  max-width:520px;
}
.role-grid{
  display:grid;
  gap:18px;
}
.role-card{
  display:flex;
  align-items:center;
  gap:18px;
  min-height:132px;
  padding:24px;
  color:var(--premium-navy);
  text-decoration:none;
  background:rgba(255,255,255,.94);
  border:1px solid var(--premium-border);
  border-radius:30px;
  box-shadow:var(--premium-shadow-soft);
  transition:transform .18s var(--premium-ease),box-shadow .18s var(--premium-ease),border-color .18s var(--premium-ease);
}
.role-card:hover{
  transform:translateY(-3px);
  border-color:rgba(22,119,255,.34);
  box-shadow:var(--premium-shadow);
}
.role-icon{
  width:62px;
  height:62px;
  border-radius:22px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  background:linear-gradient(135deg,var(--premium-navy),var(--premium-blue));
  color:#fff;
  font-size:26px;
  box-shadow:var(--premium-shadow-blue);
}
.role-card strong{
  display:block;
  font-size:24px;
  letter-spacing:-.045em;
}
.role-card small{
  display:block;
  margin-top:6px;
  color:var(--premium-muted);
  font-size:14px;
  line-height:1.55;
}
.owner-role{
  background:radial-gradient(circle at 10% 0%,rgba(96,165,250,.2),transparent 34%),rgba(255,255,255,.96);
}
.customer-pay-button{
  display:inline-flex!important;
  width:auto!important;
  margin-top:10px!important;
  padding:9px 12px!important;
  min-height:0!important;
  font-size:12px!important;
}
.cleaner-payout-block{
  background:linear-gradient(180deg,#F8FBFF,#FFFFFF);
  border-color:#D7E7FF!important;
}
.cleaner-payout-block strong{
  font-size:24px;
  color:var(--premium-blue);
  letter-spacing:-.05em;
}
.payout-status{
  display:inline-flex;
  margin-top:7px;
  padding:5px 9px;
  border-radius:999px;
  background:#FFFBEB;
  color:#B45309;
  font-size:12px;
  font-weight:900;
}
.payouts-panel{
  margin:18px 0;
  padding:22px;
}
.payout-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:14px 0 16px;
  padding:14px 16px;
  border:1px solid rgba(22,119,255,.14);
  border-radius:18px;
  background:linear-gradient(135deg,#F8FBFF,#FFFFFF);
  color:var(--premium-muted);
}
.payout-summary strong{
  display:block;
  color:var(--premium-blue);
  font-size:24px;
  letter-spacing:-.04em;
}
.payout-summary span{
  font-size:13px;
  font-weight:800;
}
.payout-list{
  display:grid;
  gap:12px;
}
.payout-card{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:14px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 30px rgba(15,23,42,.05);
}
.payout-card h3{
  margin:7px 0 4px;
  font-size:18px;
  letter-spacing:-.035em;
}
.payout-card p,.payout-card small{
  margin:0;
  color:var(--premium-muted);
}
.payout-card.paid{
  background:#F8FAFC;
}
.payout-status-pill,.paid-label{
  display:inline-flex;
  width:max-content;
  padding:5px 9px;
  border-radius:999px;
  background:#FFFBEB;
  color:#B45309;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.payout-card.paid .payout-status-pill,.paid-label{
  background:#ECFDF5;
  color:#15803D;
}
@media(max-width:680px){
  .payout-card,.payout-summary{
    grid-template-columns:1fr;
    display:grid;
  }
  .payout-card .row-button{
    width:100%;
  }
}
@media(max-width:820px){
  .role-login-shell{
    grid-template-columns:1fr;
    padding:32px 16px;
  }
  .role-login-hero{
    position:static;
  }
  .role-card{
    min-height:0;
    align-items:flex-start;
    padding:20px;
  }
  .role-icon{
    width:52px;
    height:52px;
    border-radius:18px;
    font-size:22px;
  }
  .role-card strong{font-size:21px}
}

.post-booking-account{
  margin-top:24px;
  padding:24px;
  text-align:left;
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:22px;
  align-items:start;
  background:linear-gradient(180deg,rgba(248,251,255,.96),rgba(255,255,255,.96))!important;
}
.post-booking-account h3{
  margin:6px 0 8px;
  font-size:24px;
}
.post-booking-account p{
  margin:0;
  color:var(--premium-muted);
}
.post-booking-account form{
  display:grid;
  gap:10px;
}
.post-booking-account label{
  margin:0;
}
.post-booking-account .fine{
  text-align:left;
}
.account-alert{
  display:none;
  padding:12px 14px;
  border-radius:16px;
  font-size:13px;
  font-weight:750;
}
.account-alert.success,.account-alert.warning,.account-alert.error{
  display:block;
}
.account-alert.success{
  color:#15803D;
  background:#ECFDF5;
  border:1px solid rgba(34,197,94,.25);
}
.account-alert.warning{
  color:#B45309;
  background:#FFFBEB;
  border:1px solid rgba(245,158,11,.25);
}
.account-alert.error{
  color:#B91C1C;
  background:#FEF2F2;
  border:1px solid rgba(239,68,68,.25);
}
@media(max-width:760px){
  .post-booking-account{
    grid-template-columns:1fr;
    padding:20px;
  }
}

/* Sparkles bright logo brand refresh
   UI-only theme layer. This keeps the working app behaviour untouched while
   aligning the product with the supplied pink, teal, orange and yellow logo. */
:root{
  --blue:#E91E8F;
  --blue-dark:#B91571;
  --ink:#172033;
  --muted:#6B5F6A;
  --line:#F2D9E7;
  --wash:#FFF7FB;
  --green:#0FAE8B;
  --sparkles-pink:#E91E8F;
  --sparkles-pink-dark:#B91571;
  --sparkles-teal:#10A9C4;
  --sparkles-orange:#F59E0B;
  --sparkles-yellow:#FACC15;
  --sparkles-cream:#FFF8EF;
  --premium-blue:#E91E8F;
  --premium-blue-2:#F472B6;
  --premium-cyan:#10A9C4;
  --premium-gold:#FACC15;
  --premium-navy:#172033;
  --premium-navy-2:#2A2030;
  --premium-bg:#FFF8EF;
  --premium-border:rgba(242,217,231,.88);
  --premium-muted:#6B5F6A;
  --premium-shadow-blue:0 18px 44px rgba(233,30,143,.24);
  --v2-blue:#E91E8F;
  --v2-ink:#172033;
  --v2-border:rgba(242,217,231,.88);
}

html{background:var(--sparkles-cream)}
body{
  background:
    radial-gradient(circle at 10% -8%,rgba(233,30,143,.15),transparent 34%),
    radial-gradient(circle at 88% 0%,rgba(16,169,196,.16),transparent 30%),
    radial-gradient(circle at 50% 0%,rgba(245,158,11,.10),transparent 34%),
    linear-gradient(180deg,#FFF8EF 0%,#FFF7FB 44%,#FFFFFF 100%)!important;
}
.topbar{
  height:5px;
  background:linear-gradient(90deg,var(--sparkles-pink),var(--sparkles-orange),var(--sparkles-yellow),var(--sparkles-teal))!important;
}
header,.sp-nav{
  background:rgba(255,253,248,.86)!important;
  border-bottom:1px solid rgba(242,217,231,.9)!important;
}
.brand-mark,.sparkles-logo-mark,.sp-logo-img{
  background:url("/assets/sparkles-premium-logo.jpg") center/cover no-repeat!important;
  color:transparent!important;
  box-shadow:0 18px 42px rgba(233,30,143,.20),0 0 0 1px rgba(255,255,255,.9)!important;
}
.brand:hover .brand-mark,.sparkles-wordmark:hover .sparkles-logo-mark{
  box-shadow:0 22px 52px rgba(16,169,196,.24),0 0 0 1px rgba(255,255,255,.9)!important;
}
.eyebrow,.admin-link:hover,.row-button,.back,.login-options a,.owner-card.money strong,.admin-nav a.active{
  color:var(--sparkles-pink)!important;
}
.intro h1,.dash h1,.owner-hero h1,.login-card h1,.card h2{
  color:var(--ink)!important;
}
.card,.stat,.table-card,.owner-card,.owner-panel,.cleaner-card,.job-card,.payment-card,.accept-card,.mini-item,.role-card{
  border-color:rgba(242,217,231,.88)!important;
  box-shadow:0 18px 48px rgba(233,30,143,.08),0 8px 22px rgba(15,23,42,.04)!important;
}
.card:hover,.stat:hover,.owner-card:hover,.cleaner-card:hover,.job-card:hover,.role-card:hover{
  border-color:rgba(16,169,196,.28)!important;
  box-shadow:0 24px 66px rgba(233,30,143,.12),0 10px 28px rgba(16,169,196,.08)!important;
}
input:focus,select:focus,textarea:focus{
  border-color:var(--sparkles-pink)!important;
  box-shadow:0 0 0 5px rgba(233,30,143,.13)!important;
}
.submit,.primary-small,.refresh-button,.pay-button,.assign-button,.match button,.job-actions button:not(.secondary),.cleaner-note-box button:not(.secondary),.button-link.pay-button{
  background:linear-gradient(135deg,var(--sparkles-pink),#F472B6 58%,var(--sparkles-orange))!important;
  color:#fff!important;
  box-shadow:0 16px 36px rgba(233,30,143,.24)!important;
}
.submit:hover,.primary-small:hover,.refresh-button:hover,.pay-button:hover,.assign-button:hover,.match button:hover,.job-actions button:not(.secondary):hover{
  box-shadow:0 20px 48px rgba(233,30,143,.30)!important;
}
.secondary:hover,.upload:hover{
  border-color:var(--sparkles-teal)!important;
  color:var(--sparkles-teal)!important;
  background:#ECFEFF!important;
}
.tick,.success-icon{
  background:#ECFEFF!important;
  color:var(--sparkles-teal)!important;
}
.ref,.upload strong,.badge.status-accent{
  color:var(--sparkles-pink)!important;
}
.sparkles-chat-button,.sparkles-chat-form button{
  background:linear-gradient(135deg,var(--sparkles-pink),var(--sparkles-teal))!important;
  box-shadow:0 16px 38px rgba(16,169,196,.24)!important;
}
.sparkles-chat-head,.source-card{
  background:linear-gradient(135deg,var(--sparkles-pink),var(--sparkles-orange))!important;
}
.bar{
  background:linear-gradient(180deg,var(--sparkles-orange),var(--sparkles-pink),var(--sparkles-teal))!important;
}
.empty,.empty-mini{
  background:linear-gradient(180deg,#FFF8EF,#FFF7FB)!important;
  border-color:rgba(242,217,231,.9)!important;
}
.empty:before,.empty-mini:before{
  color:var(--sparkles-orange)!important;
}
.login-body{
  background:
    radial-gradient(circle at 12% 12%,rgba(245,158,11,.28),transparent 25%),
    radial-gradient(circle at 84% 8%,rgba(16,169,196,.22),transparent 26%),
    radial-gradient(circle at 50% 84%,rgba(233,30,143,.22),transparent 32%),
    linear-gradient(135deg,#FFF8EF 0%,#FFF7FB 48%,#ECFEFF 100%)!important;
  color:var(--ink)!important;
}
.login-copy p,.sparkles-wordmark,.sparkles-wordmark small,.login-body .eyebrow{
  color:var(--ink)!important;
}
.login-trust-row span{
  background:rgba(255,255,255,.66)!important;
  border-color:rgba(242,217,231,.9)!important;
  color:var(--ink)!important;
}
.login-card{
  background:rgba(255,255,255,.92)!important;
  border-color:rgba(255,255,255,.82)!important;
  box-shadow:0 28px 90px rgba(233,30,143,.16),0 12px 38px rgba(16,169,196,.08)!important;
}
.owner-hero,.booking-hero{
  background:
    radial-gradient(circle at 12% 12%,rgba(255,255,255,.70),transparent 18%),
    radial-gradient(circle at 88% 0%,rgba(16,169,196,.16),transparent 30%),
    linear-gradient(135deg,#FFF8EF 0%,#FFF0F7 52%,#ECFEFF 100%)!important;
  color:var(--ink)!important;
  border-color:rgba(242,217,231,.86)!important;
}

.portal-wrap{max-width:1120px;margin:0 auto;padding:58px 24px 35px;display:grid;grid-template-columns:.85fr 1.35fr;gap:68px;align-items:start}.portal-intro{position:sticky;top:24px;padding-top:34px}.portal-intro h1{font-size:46px;line-height:1.06;letter-spacing:-.045em;margin:14px 0 20px}.portal-intro p,.card-sub{color:var(--muted)}.card-sub{margin:4px 0 0;font-size:13px}.input-suffix,.input-prefix{position:relative}.input-suffix input{padding-right:60px}.input-suffix span{position:absolute;right:13px;top:12px;color:var(--muted);font-size:13px}.input-prefix input{padding-left:31px}.input-prefix>span{position:absolute;left:13px;top:12px;color:var(--muted);z-index:1}.check-grid{display:grid;gap:8px}.check-grid.days{grid-template-columns:repeat(7,1fr)}.check-grid.services{grid-template-columns:repeat(4,1fr)}.check-card{position:relative;cursor:pointer}.check-card input{position:absolute;opacity:0;pointer-events:none}.check-card span{display:block;border:1px solid #cfd9e8;border-radius:9px;padding:10px 7px;text-align:center;font-size:12px;color:var(--muted);transition:.15s}.check-card input:checked+span{background:#eaf2ff;border-color:var(--blue);color:var(--blue);font-weight:800}.button-link{display:inline-block;text-decoration:none}.site-links,.admin-nav{display:flex;align-items:center;gap:20px}.admin-nav a{text-decoration:none;color:var(--muted);font-size:13px;font-weight:700}.admin-nav a.active{color:var(--blue)}.primary-small{background:var(--blue);color:white;text-decoration:none;border-radius:9px;padding:10px 14px;font-size:13px;font-weight:800}.cleaner-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.cleaner-card{background:white;border:1px solid var(--line);border-radius:16px;padding:21px}.cleaner-card-head{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.avatar{width:42px;height:42px;border-radius:12px;background:#eaf2ff;color:var(--blue);font-weight:850;display:grid;place-items:center}.cleaner-card h2{font-size:17px;margin:0}.cleaner-card h2+p{font-size:12px;color:var(--muted);margin:2px 0 0}.rate{font-size:23px;font-weight:850;margin:19px 0 14px}.rate span{font-size:12px;color:var(--muted);font-weight:600}.cleaner-meta{display:grid;gap:12px;font-size:13px}.cleaner-meta>div>span{display:block;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:10px;font-weight:800;margin-bottom:3px}.checks{display:flex;gap:7px;flex-wrap:wrap;margin-top:17px;padding-top:15px;border-top:1px solid var(--line)}.checks span{font-size:10px;border-radius:999px;background:#f1f4f8;color:var(--muted);padding:5px 8px;font-weight:750}.checks span.verified{background:#e5f8f1;color:#176b53}.card-wide{grid-column:1/-1;background:white;border:1px solid var(--line);border-radius:16px}.assign-button{border:0;background:var(--blue);color:white;border-radius:8px;padding:8px 10px;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}.assigned-to{font-size:11px;color:var(--green);font-weight:750;margin-top:4px}.modal-backdrop{position:fixed;inset:0;background:#0f1b31a8;z-index:30;display:grid;place-items:center;padding:18px}.modal{background:white;width:min(620px,100%);max-height:88vh;overflow:auto;border-radius:18px;box-shadow:0 25px 80px #0004}.modal-head{padding:21px 23px;border-bottom:1px solid var(--line);display:flex;align-items:start;justify-content:space-between}.modal-head h2{margin:0;font-size:21px}.modal-head p{margin:4px 0 0;color:var(--muted);font-size:13px}.modal-close{background:none;border:0;font-size:23px;color:var(--muted);cursor:pointer}.matches{padding:16px}.match{border:1px solid var(--line);border-radius:12px;padding:15px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin-bottom:10px}.match h3{font-size:15px;margin:0 0 3px}.match p{font-size:12px;color:var(--muted);margin:0}.match-chips{display:flex;gap:6px;margin-top:8px}.match-chips span{font-size:10px;background:var(--wash);padding:4px 7px;border-radius:999px}.match button{border:0;background:var(--blue);color:white;border-radius:8px;padding:9px 12px;font-size:12px;font-weight:800;cursor:pointer}.no-matches{text-align:center;color:var(--muted);padding:35px 12px}.match-error{color:#a22020;background:#fff0f0;padding:12px;border-radius:9px}.status-assigned{background:#eaf2ff;color:var(--blue)}
@media(max-width:800px){.portal-wrap{grid-template-columns:1fr;gap:25px;padding-top:30px}.portal-intro{position:static;padding-top:0}.portal-intro h1{font-size:38px}.cleaner-grid{grid-template-columns:1fr}.site-links{gap:10px}.admin-nav{gap:13px}.admin-nav a{font-size:12px}}
@media(max-width:520px){.portal-wrap{padding:26px 16px}.portal-intro h1{font-size:33px}.check-grid.days{grid-template-columns:repeat(4,1fr)}.check-grid.services{grid-template-columns:repeat(2,1fr)}.admin-nav a:first-child{display:none}.primary-small{display:none}.match{grid-template-columns:1fr}.match button{width:100%}.modal{max-height:92vh}}
.job-list{display:grid;gap:16px}.job-card{background:white;border:1px solid var(--line);border-radius:17px;padding:20px;box-shadow:0 10px 35px rgba(22,55,105,.06)}.job-card-head{display:flex;justify-content:space-between;gap:16px;align-items:start;margin-bottom:18px}.job-card h2{font-size:18px;margin:0}.job-card h2+p{font-size:12px;color:var(--muted);margin:3px 0 0}.job-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}.job-actions button,.cleaner-note-box button{border:0;background:var(--blue);color:white;border-radius:9px;padding:10px 13px;font-size:12px;font-weight:800;cursor:pointer}.job-actions button.secondary,.cleaner-note-box button.secondary{border:1px solid var(--line);background:white;color:var(--blue)}.job-actions button.complete-btn{background:var(--green)}.job-done{display:inline-flex;align-items:center;border-radius:999px;background:#e5f8f1;color:#176b53;padding:9px 12px;font-size:12px;font-weight:850}.job-tools{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.job-tools label{border:1px dashed #b8c7dc;border-radius:10px;padding:13px;background:#f9fbfe;color:var(--blue);cursor:pointer;text-align:center;font-size:12px}.job-tools input{display:block;margin-top:8px;font-size:11px}.cleaner-note-box{margin-top:15px}.cleaner-note-box textarea{min-height:78px}@media(max-width:520px){.job-tools{grid-template-columns:1fr}.job-card-head{display:block}}
.cleaner-card.inactive{opacity:.68;background:#f8fafc}.cleaner-actions{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.badge.muted{background:#eef2f7;color:#667085}.row-button.danger{color:#b42318}
.cleaner-editor{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.cleaner-editor summary{cursor:pointer;color:var(--blue);font-weight:850;font-size:12px}.editor-block{margin-top:13px}.editor-block>label{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:850;margin-bottom:8px}.edit-pills{display:flex;flex-wrap:wrap;gap:7px}.edit-pill{position:relative;cursor:pointer}.edit-pill input{position:absolute;opacity:0;pointer-events:none}.edit-pill span{display:block;border:1px solid #cfd9e8;background:white;border-radius:999px;padding:7px 10px;font-size:11px;color:var(--muted);font-weight:750;transition:.15s}.edit-pill input:checked+span{border-color:var(--blue);background:#eaf2ff;color:var(--blue);box-shadow:0 6px 16px rgba(22,119,255,.12)}.cleaner-editor .row-button{margin-top:13px;background:var(--blue);color:white;border-radius:9px;padding:9px 12px}

.cleaner-portal-body{background:radial-gradient(circle at top left,rgba(22,119,255,.16),transparent 32rem),linear-gradient(180deg,#f7fbff 0%,#fff 46%,#f8fbff 100%);min-height:100vh}.cleaner-portal-main{max-width:1120px;padding-top:38px}.cleaner-portal-hero{background:linear-gradient(135deg,#06183f,#0f2f76 58%,#1677ff);color:#fff;border-radius:34px;padding:34px;box-shadow:0 28px 70px rgba(15,23,42,.18);margin-bottom:22px;overflow:hidden;position:relative}.cleaner-portal-hero:after{content:"";position:absolute;right:-60px;top:-70px;width:260px;height:260px;border-radius:999px;border:1px solid rgba(255,255,255,.22)}.cleaner-portal-hero .eyebrow{color:#8fc4ff;margin:0 0 10px;font-weight:950;letter-spacing:.14em;text-transform:uppercase;font-size:12px}.cleaner-portal-hero h1{margin:0;font-size:clamp(34px,7vw,58px);line-height:.96;letter-spacing:-.06em}.cleaner-portal-hero p:last-child{max-width:680px;color:rgba(255,255,255,.82);font-size:16px;line-height:1.7;margin:14px 0 0}.cleaner-jobs-shell{background:rgba(255,255,255,.82)!important;backdrop-filter:blur(18px);border-radius:30px!important;padding:18px!important}.cleaner-portal-card{border-radius:28px!important;padding:24px!important;background:rgba(255,255,255,.98)!important}.cleaner-portal-head h2{font-size:clamp(26px,6vw,38px);letter-spacing:-.05em;margin:2px 0 6px;color:var(--sp-dark,#0F172A)}.cleaner-portal-head .eyebrow{margin:0;color:var(--blue);font-size:11px;font-weight:950;letter-spacing:.12em;text-transform:uppercase}.cleaner-job-hero{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.cleaner-job-hero>div{border:1px solid #dce8fb;background:linear-gradient(180deg,#fff,#f8fbff);border-radius:22px;padding:17px}.cleaner-job-hero span,.cleaner-detail-grid .detail-block span{display:block;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:950;margin-bottom:7px}.cleaner-job-hero strong{display:block;color:#0f172a;font-size:18px;line-height:1.2}.cleaner-job-hero p{margin:7px 0 0;color:#475569;line-height:1.55}.cleaner-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cleaner-detail-grid .detail-block{background:#f8fbff;border:1px solid #e0ebfb;border-radius:18px;padding:15px;color:#334155;line-height:1.55}.cleaner-detail-grid .detail-block strong{color:#0f172a}.cleaner-action-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;border-top:0;margin-top:18px;padding-top:0}.cleaner-action-bar button,.cleaner-note-box button{font-size:14px!important;border-radius:16px!important;padding:14px 16px!important}.cleaner-action-bar button:not(.secondary){background:linear-gradient(135deg,#1677ff,#5aa4ff)!important;box-shadow:0 16px 30px rgba(22,119,255,.24)}.cleaner-action-bar button.complete-btn{background:linear-gradient(135deg,#22c55e,#16a34a)!important;box-shadow:0 16px 30px rgba(34,197,94,.22)}.cleaner-note-box textarea{border-radius:18px!important;border-color:#dbe7f8!important;background:#fbfdff!important}.cleaner-empty{border-radius:24px;background:#fff;padding:34px;text-align:center;color:#64748b}.badge.status-completed{background:#dcfce7!important;color:#166534!important}.badge.status-in-progress{background:#e0f2fe!important;color:#075985!important}.badge.status-accepted{background:#eef2ff!important;color:#3730a3!important}.badge.status-assigned{background:#eff6ff!important;color:#1d4ed8!important}@media(max-width:720px){.cleaner-portal-main{padding:22px 14px}.cleaner-portal-hero{border-radius:26px;padding:26px 20px}.cleaner-jobs-shell{padding:10px!important;border-radius:24px!important}.cleaner-portal-card{padding:18px!important;border-radius:22px!important}.cleaner-job-hero,.cleaner-detail-grid{grid-template-columns:1fr}.cleaner-action-bar{grid-template-columns:1fr}.job-tools{grid-template-columns:1fr}}
.cleaner-job-section{margin-bottom:26px}.cleaner-job-section>h2{margin:4px 0 14px;color:#0f172a;font-size:clamp(22px,5vw,32px);letter-spacing:-.04em}.directions-link{display:inline-flex;margin-top:4px;color:#1677ff;font-weight:850;text-decoration:none}.directions-link:hover{text-decoration:underline}.badge.status-on-my-way{background:#fef3c7!important;color:#92400e!important}

.cleaner-portal-body .sp-nav{
  background:rgba(255,255,255,.84);
  backdrop-filter:blur(22px);
  border-bottom:1px solid rgba(226,232,240,.78);
}
.cleaner-portal-body .sp-logo-img{box-shadow:0 12px 34px rgba(236,72,153,.18)}
.cleaner-portal-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
}
.cleaner-hero-badge{
  width:150px;
  min-height:150px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:30px;
  background:rgba(255,255,255,.12);
  display:grid;
  place-items:center;
  text-align:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22);
}
.cleaner-hero-badge span,.cleaner-hero-badge small{
  color:rgba(255,255,255,.78);
  font-weight:850;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.cleaner-hero-badge strong{display:block;color:white;font-size:56px;line-height:.9;letter-spacing:-.08em}
.cleaner-summary-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:-4px 0 22px;
}
.summary-pill{
  border:1px solid #dce8fb;
  border-radius:22px;
  background:rgba(255,255,255,.9);
  box-shadow:0 14px 38px rgba(15,23,42,.06);
  padding:16px;
}
.summary-pill span{
  display:block;
  color:#64748b;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:950;
}
.summary-pill strong{display:block;color:#0f172a;font-size:30px;margin-top:4px;letter-spacing:-.05em}
.cleaner-portal-card{position:relative;overflow:hidden}
.cleaner-portal-card:before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:5px;
  background:linear-gradient(90deg,#ec4899,#fb923c,#13a8c8);
}
.job-tools label{
  border-radius:18px!important;
  background:linear-gradient(180deg,#ffffff,#f8fbff)!important;
  border-color:#dce8fb!important;
  font-weight:850;
}
.cleaner-note-box button.secondary{
  width:100%;
  margin-top:10px;
}
@media(max-width:720px){
  .cleaner-portal-body .sp-wordmark small{font-size:10px}
  .cleaner-portal-hero{grid-template-columns:1fr}
  .cleaner-hero-badge{
    width:auto;
    min-height:auto;
    grid-template-columns:auto auto auto;
    justify-content:space-between;
    padding:16px 18px;
  }
  .cleaner-hero-badge strong{font-size:36px}
  .cleaner-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .summary-pill{padding:14px;border-radius:18px}
  .cleaner-action-bar{
    position:sticky;
    bottom:10px;
    z-index:9;
    padding:10px!important;
    border:1px solid #dce8fb!important;
    border-radius:22px;
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(16px);
    box-shadow:0 18px 44px rgba(15,23,42,.14);
  }
}
