
:root{
  --navy:#0d2d4d;--navy2:#173f67;--blue:#2a679f;--sky:#72b9ef;
  --ink:#132033;--muted:#627083;--paper:#f6f8fb;--white:#fff;
  --line:#dce4ed;--success:#1e7c58;--warning:#a1640e;--danger:#b33a3a;
  --shadow:0 16px 40px rgba(15,38,62,.10);--radius:18px;
}
*{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:var(--paper);line-height:1.6}
a{color:inherit}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}
.container{width:min(1180px,92%);margin-inline:auto}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.topbar{background:#081f35;color:#dcecff;text-align:center;padding:.42rem 1rem;font-size:.87rem}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{display:flex;align-items:center;gap:.72rem;text-decoration:none;font-weight:850;font-size:1.2rem;letter-spacing:-.02em}
.brand img{width:46px;height:46px;border-radius:10px}
.nav-links{display:flex;align-items:center;gap:.25rem}
.nav-links a{padding:.65rem .75rem;text-decoration:none;border-radius:10px;font-weight:650;font-size:.94rem}
.nav-links a:hover,.nav-links a.active{background:#edf4fb;color:var(--navy2)}
.nav-actions{display:flex;gap:.55rem;align-items:center}
.menu-btn{display:none;border:0;background:#edf4fb;padding:.65rem;border-radius:10px}
.btn{border:0;border-radius:12px;padding:.78rem 1rem;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;cursor:pointer;transition:.18s ease}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,var(--navy2),var(--blue));color:white;box-shadow:0 10px 22px rgba(31,86,135,.22)}
.btn-secondary{background:white;color:var(--navy2);border:1px solid #bed2e6}
.btn-light{background:white;color:var(--navy)}
.btn-danger{background:#fff0f0;color:var(--danger);border:1px solid #efc5c5}
.btn-sm{padding:.55rem .75rem;font-size:.88rem}
.hero{position:relative;min-height:520px;display:grid;align-items:center;background:linear-gradient(145deg,#0b2947 0%,#164a78 58%,#2a679f 100%);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 82% 28%,rgba(255,255,255,.10),transparent 28%),linear-gradient(180deg,rgba(255,255,255,.02),rgba(0,0,0,.10))}
.hero-content{position:relative;color:white;padding:5.5rem 0;max-width:820px}
.hero-content h1{font-size:clamp(2.2rem,5vw,4.4rem);line-height:1.02;letter-spacing:-.045em;margin:0 0 1rem}
.hero-content p{font-size:1.16rem;max-width:680px;color:#e6f2ff}
.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.4rem}
.section{padding:5rem 0}
.section-white{background:white}
.section-dark{background:linear-gradient(145deg,#09233d,#163f66);color:white}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.76rem;font-weight:900;color:var(--blue)}
.section-dark .eyebrow{color:#9dd3ff}
.section-title{font-size:clamp(1.9rem,3.5vw,3rem);line-height:1.1;letter-spacing:-.035em;margin:.35rem 0 1rem}
.section-lead{max-width:760px;color:var(--muted);font-size:1.05rem}
.section-dark .section-lead{color:#d5e6f4}
.grid{display:grid;gap:1.15rem}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:1.35rem;box-shadow:0 5px 18px rgba(19,44,70,.04)}
.card h3{margin:.25rem 0 .45rem;line-height:1.25}
.icon-badge{width:46px;height:46px;border-radius:13px;background:#eaf4fd;color:var(--navy2);display:grid;place-items:center;font-weight:900}
.value-card{padding:1.6rem}
.value-card p,.service-card p{color:var(--muted)}
.service-toolbar{display:flex;gap:.7rem;flex-wrap:wrap;margin:1.6rem 0}
.input,.select,.textarea{width:100%;padding:.82rem .9rem;border:1px solid #cbd7e4;border-radius:11px;background:white;color:var(--ink);outline:none}
.input:focus,.select:focus,.textarea:focus{border-color:#5c9ed6;box-shadow:0 0 0 3px rgba(92,158,214,.14)}
.toolbar-search{flex:1;min-width:240px}
.service-grid{grid-template-columns:repeat(3,1fr)}
.service-card{display:flex;flex-direction:column;min-height:250px}
.service-card .category{font-size:.76rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase;color:var(--blue)}
.service-card .price{font-size:1.32rem;font-weight:900;color:var(--navy2);margin:.4rem 0}
.service-card .spacer{flex:1}
.notice{padding:1rem 1.1rem;border-radius:13px;background:#eef6fd;border:1px solid #c7dff2;color:#214b70}
.notice-warning{background:#fff7e9;border-color:#f0d4a3;color:#725017}
.notice-danger{background:#fff1f1;border-color:#efc9c9;color:#7a3030}
.cta-band{border-radius:26px;padding:2.25rem;background:linear-gradient(135deg,#153d64,#266ca6);color:white;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;box-shadow:var(--shadow)}
.cta-band h2{margin:0 0 .35rem}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2rem}
.stat{text-align:center;padding:1.3rem;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:rgba(255,255,255,.06)}
.stat strong{font-size:2rem;display:block}
.testimonial{position:relative}
.stars{letter-spacing:.1em;color:#c88716;font-size:1rem}
.quote{font-size:1.02rem;color:#33445a}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-field label{display:block;font-size:.87rem;font-weight:800;margin:0 0 .35rem}
.form-field.full{grid-column:1/-1}
.form-help{font-size:.82rem;color:var(--muted);margin-top:.35rem}
.contact-layout{display:grid;grid-template-columns:1.35fr .65fr;gap:1.3rem}
.contact-card{display:flex;gap:.8rem;align-items:flex-start}
.page-hero{background:linear-gradient(145deg,#0b2947,#174a78);color:white;padding:4.5rem 0 3.4rem}
.page-hero h1{font-size:clamp(2.3rem,5vw,4rem);margin:0 0 .5rem;letter-spacing:-.04em}
.page-hero p{max-width:760px;color:#dceaf6}
.auth-shell{max-width:530px;margin:3rem auto;background:white;border:1px solid var(--line);border-radius:22px;padding:2rem;box-shadow:var(--shadow)}
.tabs{display:flex;background:#edf3f8;border-radius:12px;padding:.25rem;margin-bottom:1.3rem}
.tabs button{flex:1;border:0;background:transparent;padding:.7rem;border-radius:9px;font-weight:800}
.tabs button.active{background:white;box-shadow:0 3px 10px rgba(30,55,80,.08)}
.appointment-list{display:grid;gap:1rem}
.appointment-card{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center}
.badge{display:inline-flex;border-radius:999px;padding:.28rem .62rem;font-size:.76rem;font-weight:850;text-transform:capitalize}
.badge-pending{background:#fff3d6;color:#7d5712}.badge-confirmed{background:#e5f6ef;color:#176b4b}.badge-cancelled{background:#fbe7e7;color:#903b3b}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:white}
table{border-collapse:collapse;width:100%;min-width:760px}
th,td{padding:.8rem;text-align:left;border-bottom:1px solid var(--line);font-size:.9rem;vertical-align:top}
th{background:#f2f6fa;color:#40536a}
.footer{background:#071d32;color:#cfe0ee;padding:3rem 0 1.4rem;margin-top:4rem}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}
.footer a{color:#dcecff;text-decoration:none}
.footer small{color:#91abc1}
.footer-brand{display:flex;gap:.8rem;align-items:center;color:white;font-weight:900;font-size:1.1rem}
.footer-brand img{width:48px;border-radius:10px}
.policy-list li{margin:.6rem 0}
.hidden{display:none!important}
.loading{opacity:.65;pointer-events:none}
.empty{padding:2rem;text-align:center;color:var(--muted);border:1px dashed #c9d7e5;border-radius:16px;background:white}
hr.soft{border:0;border-top:1px solid var(--line);margin:2rem 0}
.mobile-hero-title{display:none}

@media(max-width:980px){
  .grid-4,.grid-3,.service-grid{grid-template-columns:repeat(2,1fr)}
  .contact-layout{grid-template-columns:1fr}
  .nav-links{position:absolute;top:76px;left:0;right:0;background:white;border-bottom:1px solid var(--line);padding:1rem 4%;display:none;flex-direction:column;align-items:stretch}
  .nav-links.open{display:flex}.menu-btn{display:block}
  .nav-actions .hide-mobile{display:none}
  .hero{min-height:460px}
  .hero-content{padding:4.8rem 0}
}
@media(max-width:640px){
  .section{padding:3.7rem 0}
  .grid-4,.grid-3,.service-grid,.stats,.form-grid{grid-template-columns:1fr}
  .form-field.full{grid-column:auto}
  .cta-band{flex-direction:column;align-items:flex-start;padding:1.55rem}
  .hero{background-image:linear-gradient(145deg,#102e4e,#1a4f7e);min-height:auto;align-items:center}
  .hero::before{display:none}
  .hero-content{padding:4.2rem 0}
  .mobile-hero-title{display:flex;align-items:center;gap:.85rem;margin-bottom:1.4rem}
  .mobile-hero-title img{width:72px;border-radius:14px}
  .hero-content h1{font-size:2.65rem}
  .appointment-card{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
}

.service-division{margin-top:2.5rem;padding-top:2.5rem;border-top:2px solid #d7e2ec}
.service-division:first-of-type{margin-top:1.5rem;padding-top:0;border-top:0}
.service-division-header{margin-bottom:1.25rem;padding:1.25rem 1.35rem;border-radius:18px;background:linear-gradient(135deg,#eef5fb,#f8fbfe);border:1px solid #d5e3ef}
.service-division-header.wedding{background:linear-gradient(135deg,#fff8f2,#fffdf9);border-color:#ead9ca}
.service-division-kicker{font-size:.74rem;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
.service-division-header.wedding .service-division-kicker{color:#9a5e39}
.service-division-header h2{margin:.2rem 0 .35rem;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.1;letter-spacing:-.03em}
.service-division-header p{margin:0;color:var(--muted);max-width:760px}
.service-subcategory{margin:1.35rem 0 .75rem;display:flex;align-items:center;gap:.75rem}
.service-subcategory h3{margin:0;font-size:1rem;text-transform:uppercase;letter-spacing:.08em;color:#43576d}
.service-subcategory::after{content:"";height:1px;background:#d9e2eb;flex:1}


/* v1.5 scheduling and admin improvements */
.show-mobile{display:none!important}
.appointment-actions{display:flex;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}
.admin-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}
.admin-section-head h2{margin:.2rem 0 .45rem}
.admin-schedule-layout{display:grid;grid-template-columns:1.45fr .55fr;gap:1.15rem;align-items:start}
.availability-options{display:grid;gap:.65rem}
.check-row{display:flex!important;align-items:center;gap:.55rem;margin:0!important;font-weight:700!important}
.check-row input{width:1.05rem;height:1.05rem}
.schedule-help{background:#f7fbff}
.schedule-help h3{margin-top:0}
.schedule-help p{color:var(--muted)}
@media(max-width:980px){
  .show-mobile{display:block!important}
  .admin-schedule-layout{grid-template-columns:1fr}
}
@media(max-width:640px){
  .appointment-actions{justify-content:flex-start}
}


/* v1.6 editable availability */
.table-actions{display:flex;gap:.45rem;flex-wrap:wrap}
.availability-form-actions{display:flex;gap:.65rem;flex-wrap:wrap}


/* v1.7 scheduling, account/address, and calendar upgrades */
.duration-pill{display:inline-block;margin:.25rem 0 .75rem;padding:.3rem .55rem;border-radius:999px;background:#edf5fb;color:#254e70;font-size:.82rem;font-weight:700}
.address-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:1rem;border:1px solid #d8e4ee;border-radius:16px;background:#f9fcff}
.address-grid .full{grid-column:1/-1}
.booking-location-card{padding-top:.25rem}
.profile-divider{margin-top:.5rem;padding-top:1rem;border-top:1px solid #d8e4ee}
.appointment-location{margin:.55rem 0;color:var(--muted)}
.schedule-board{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:.75rem;overflow-x:auto;padding-bottom:.35rem}
.schedule-day{border:1px solid #d8e4ee;border-radius:16px;background:white;overflow:hidden}
.schedule-day-head{padding:.75rem .9rem;font-weight:800;background:#f2f7fb;border-bottom:1px solid #d8e4ee}
.schedule-item{display:flex;flex-direction:column;gap:.2rem;padding:.75rem .9rem;border-bottom:1px solid #edf2f6}
.schedule-item:last-child{border-bottom:0}
.schedule-item span,.schedule-item small{color:var(--muted)}
.schedule-map-link{font-size:.82rem;font-weight:800;text-decoration:none;margin-top:.2rem}
.schedule-block{border-left:4px solid #936b1f;background:#fffaf0}
.schedule-appointment{border-left:4px solid #1e5f8f}
.schedule-empty{padding:.85rem .9rem;color:var(--muted);font-style:italic}
.map-btn{margin-top:.45rem}
@media(max-width:980px){
  .schedule-board{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:820px){
  .schedule-board{grid-template-columns:1fr}
  .address-grid{grid-template-columns:1fr}
  .address-grid .full{grid-column:auto}
}


/* ============================================================
   v1.8 compact role-aware navigation
   ============================================================ */
.nav{
  min-height:68px;
  gap:1rem;
}
.brand{white-space:nowrap}
.brand img{width:42px;height:42px}
.nav-links{gap:.08rem}
.nav-links a{
  padding:.52rem .62rem;
  font-size:.90rem;
  white-space:nowrap;
}
.nav-actions{margin-left:auto;gap:.45rem}
.nav-signin{
  padding:.48rem .55rem;
  color:var(--navy2);
  text-decoration:none;
  font-weight:800;
  font-size:.9rem;
}
.nav-signin:hover{text-decoration:underline}

.account-menu{position:relative}
.account-menu-btn{
  height:36px;
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  border:1px solid #bed2e6;
  background:white;
  color:var(--navy2);
  border-radius:10px;
  padding:0 .72rem;
  font:inherit;
  font-size:.86rem;
  font-weight:850;
  cursor:pointer;
}
.account-menu-btn:hover{background:#f3f8fc}
.account-dropdown{
  display:none;
  position:absolute;
  right:0;
  top:calc(100% + .55rem);
  min-width:190px;
  background:white;
  border:1px solid var(--line);
  border-radius:13px;
  padding:.4rem;
  box-shadow:0 16px 42px rgba(15,43,69,.16);
  z-index:100;
}
.account-dropdown.open{display:grid}
.account-dropdown a,
.account-dropdown button{
  width:100%;
  border:0;
  background:transparent;
  color:var(--ink);
  text-align:left;
  padding:.68rem .72rem;
  border-radius:9px;
  text-decoration:none;
  font:inherit;
  font-size:.9rem;
  cursor:pointer;
}
.account-dropdown a:hover,
.account-dropdown button:hover{background:#edf4fb;color:var(--navy2)}

.mobile-nav-only{display:none!important}
.desktop-only{display:inline-flex!important}

.menu-btn{
  display:none;
  width:40px;
  height:38px;
  padding:8px 9px;
  border:1px solid #d5e1ec;
  background:#f5f9fc;
  border-radius:10px;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  cursor:pointer;
}
.menu-btn span{
  display:block;
  width:100%;
  height:2px;
  background:var(--navy2);
  border-radius:4px;
  transition:.18s ease;
}
.menu-btn.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.menu-btn.open span:nth-child(2){opacity:0}
.menu-btn.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

.mobile-nav-button{
  border:0;
  background:transparent;
  color:var(--ink);
  font:inherit;
  text-align:left;
  padding:.68rem .72rem;
  border-radius:10px;
  font-weight:650;
}

/* Admin accounts manage the business instead of booking their own services. */
body.is-admin a[href^="book.html"]{display:none!important}

/* Keep the home hero text clean and readable on wide screens. */
.hero-copy > p{
  max-width:760px;
  line-height:1.65;
}

@media(max-width:1120px){
  .brand span{display:none}
}

@media(max-width:900px){
  .brand span{display:inline}
  .desktop-only{display:none!important}
  .mobile-nav-only{display:block!important}
  .menu-btn{display:flex}
  .nav{position:relative}
  .nav-links{
    position:absolute;
    top:calc(100% + 1px);
    left:0;
    right:0;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:.15rem;
    padding:.75rem 4% 1rem;
    background:white;
    border-bottom:1px solid var(--line);
    box-shadow:0 12px 24px rgba(18,45,72,.08);
    z-index:80;
  }
  .nav-links.open{display:flex}
  .nav-links a,.mobile-nav-button{
    padding:.72rem .75rem;
    font-size:.94rem;
  }
  .nav-actions{display:none}
}

@media(max-width:420px){
  .brand span{font-size:1rem}
  .brand img{width:38px;height:38px}
}


/* ============================================================
   v1.9 service options + staff operations
   ============================================================ */
.account-role{
  padding:.48rem .72rem .38rem;
  color:var(--muted);
  font-size:.75rem;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.06em;
}
body.is-staff a[href^="book.html"]{display:none!important}
.service-option-hint{
  margin:.5rem 0;
  padding:.55rem .7rem;
  border-radius:9px;
  background:#edf5fc;
  color:#234c70;
  font-size:.88rem;
  font-weight:750;
}
.activation-disclaimer{
  margin:.65rem 0;
  padding:.7rem .8rem;
  border-left:3px solid #2d6ea5;
  background:#f7fbff;
  font-size:.86rem;
  color:#465a6e;
}
.activation-pricing-card{max-width:980px}
.activation-price-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem 1.1rem;margin:1rem 0 1.25rem}
.activation-price-row{display:flex;justify-content:space-between;gap:1rem;padding:.65rem .1rem;border-bottom:1px solid var(--line)}
.activation-price-row strong{white-space:nowrap;color:var(--navy2)}
.activation-policy{padding:1rem;border-radius:11px;background:#f6f9fc;color:var(--muted)}
.activation-policy p:last-child{margin-bottom:0}
.service-option-step{padding:1rem;border:1px solid #bfd5e8;border-radius:12px;background:#f7fbff}
.appointment-option{font-weight:800;color:var(--navy2);margin:.2rem 0 .45rem}

.admin-panel{margin-bottom:3.2rem}
.admin-panel>h2{margin-top:.2rem}
.admin-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:.85rem;margin-top:1.2rem}
.metric-card{background:white;border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem;box-shadow:0 8px 24px rgba(15,43,69,.06)}
.metric-card span{display:block;color:var(--muted);font-size:.84rem;font-weight:750}
.metric-card strong{display:block;font-size:2rem;color:var(--navy2);margin-top:.25rem}
.staff-dialog{width:min(760px,calc(100% - 2rem));border:0;border-radius:18px;padding:1.4rem;box-shadow:0 30px 80px rgba(5,25,45,.3)}
.staff-dialog::backdrop{background:rgba(6,22,37,.58)}
.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.dialog-head h2{margin:.2rem 0 0}
.dialog-close{border:0;background:#eef4fa;color:var(--navy2);width:38px;height:38px;border-radius:50%;font-size:1.55rem;cursor:pointer}
.dialog-actions{display:flex;gap:.65rem;flex-wrap:wrap}
@media(max-width:900px){
  .admin-metrics{grid-template-columns:1fr 1fr}
  .activation-price-grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .admin-metrics{grid-template-columns:1fr}
}

/* ============================================================
   v2.0 — Major Business Operations Bundle
   ============================================================ */
.account-extra-card{margin-top:1.25rem}
.form-button-align{display:flex;align-items:flex-end}
.form-button-align .btn{width:100%}
.link-button{border:0;background:none;color:#1769aa;font:inherit;font-weight:800;padding:0;cursor:pointer;text-decoration:underline}
.auth-help-row{text-align:right;margin:.7rem 0 0}
.address-book-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-top:1rem}
.mini-card{border:1px solid var(--line);border-radius:12px;padding:1rem;background:#fff}
.mini-card p{color:var(--muted);margin:.65rem 0}
.address-title{display:flex;justify-content:space-between;gap:.6rem;align-items:center}
.danger-zone{border-color:#efc4c4;background:#fffafa}
.danger-zone h2{color:#8d2525}
.danger-confirm{margin:1rem 0;padding:.85rem;border-radius:10px;background:#fff;border:1px solid #efc4c4}
.deletion-pending-banner{margin-top:1rem}
body.account-deletion-pending a[href^="book.html"]{display:none!important}
.service-config-panel{border:1px solid #c9ddeb;border-radius:12px;padding:1rem;background:#f7fbff}
.nested-grid{display:grid!important;grid-template-columns:1fr 1fr;gap:1rem}
.crm-grid{display:grid;gap:1rem}
.crm-card{padding:1rem}
.crm-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.crm-message{white-space:pre-wrap;padding:.75rem;background:#f7fafc;border-radius:10px}
#serviceOptionsManager{margin-top:1.2rem}
#serviceCatalogManagerV20,#staffCreateAppointmentV20,#crmV20,#accountDeletionAdminV20,#notificationOpsV20,#appointmentHistoryV20{scroll-margin-top:90px}
@media(max-width:760px){.address-book-grid{grid-template-columns:1fr}.nested-grid{grid-template-columns:1fr}.form-button-align{display:block}.form-button-align .btn{width:auto}}


/* ============================================================
   v2.0 staff schedules / custom permissions / Team
   ============================================================ */
.dashboard-workspace{display:grid;grid-template-columns:235px minmax(0,1fr);gap:1.5rem;align-items:start}
.dashboard-sidebar{position:sticky;top:88px;border:1px solid var(--line);background:#f8fbfe;border-radius:16px;padding:.8rem;max-height:calc(100vh - 110px);overflow:auto}
.dashboard-sidebar-title{font-weight:900;color:var(--navy2);padding:.55rem .65rem .8rem;border-bottom:1px solid var(--line);margin-bottom:.45rem}
.dashboard-nav-group{padding:.35rem 0}.dashboard-nav-group-title{padding:.35rem .65rem;color:var(--muted);font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.dashboard-nav-button{width:100%;border:0;background:transparent;text-align:left;padding:.62rem .7rem;border-radius:9px;color:#304b63;font:inherit;font-size:.9rem;font-weight:750;cursor:pointer}
.dashboard-nav-button:hover{background:#eaf3fb}.dashboard-nav-button.active{background:var(--navy2);color:white}
.dashboard-content{min-width:0}.dashboard-pane{display:none!important;margin:0!important}.dashboard-pane.dashboard-pane-active{display:block!important}.dashboard-pane.hidden{display:none!important}
.staff-schedule-controls{margin:1rem 0}.permission-dialog{max-width:900px}.permission-group{margin:1.2rem 0}.permission-group h3{border-bottom:1px solid var(--line);padding-bottom:.45rem}
.permission-row{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:1rem;align-items:center;padding:.8rem 0;border-bottom:1px solid #edf2f6}.permission-row p{margin:.25rem 0;color:var(--muted);font-size:.88rem}.permission-row small{color:var(--muted)}
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.team-card{padding:0;overflow:hidden}.team-avatar{height:220px;background:linear-gradient(145deg,#e7f0f8,#f8fbfe);display:grid;place-items:center}.team-avatar img{width:100%;height:100%;object-fit:cover}.team-avatar span{width:105px;height:105px;border-radius:50%;display:grid;place-items:center;background:#0d2d4d;color:white;font-weight:900;font-size:2rem}.team-card-body{padding:1.25rem}.team-card-body h2{margin:.1rem 0 .25rem}.team-title{color:#27628f;font-weight:850;margin-bottom:1rem}.team-do{border-left:3px solid #2d6ea5;padding-left:.8rem;margin:1rem 0}.team-do p{margin:.25rem 0}.team-card-body p{white-space:pre-line}
@media(max-width:980px){.dashboard-workspace{grid-template-columns:1fr}.dashboard-sidebar{position:static;max-height:none;overflow:visible}.dashboard-sidebar-title{display:none}#dashboardNav{display:flex;overflow-x:auto;gap:.4rem;padding:.1rem}.dashboard-nav-group{display:flex;gap:.35rem;align-items:center;flex:0 0 auto}.dashboard-nav-group-title{display:none}.dashboard-nav-button{white-space:nowrap;width:auto;border:1px solid var(--line);background:white}.team-grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){.permission-row{grid-template-columns:1fr}.team-grid{grid-template-columns:1fr}.team-avatar{height:260px}}


/* ============================================================
   v2.1 — Customer & Business Expansion
   ============================================================ */
.qualified-staff-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-top:.5rem}
.qualified-staff-option{display:flex;align-items:flex-start;gap:.65rem;border:1px solid var(--line);border-radius:11px;padding:.75rem;background:#fff}
.qualified-staff-option input{margin-top:.25rem}.qualified-staff-option span{display:flex;flex-direction:column}.qualified-staff-option small{color:var(--muted);text-transform:capitalize}
.appointment-finance-history{margin-top:1rem;border-top:1px solid var(--line);padding-top:.8rem}
.appointment-billing-strip{display:flex;flex-wrap:wrap;gap:.55rem .9rem;align-items:center;padding:.75rem;background:#f6f9fc;border-radius:10px;font-size:.9rem}
.appointment-details{margin-top:.65rem;border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem;background:#fff}
.appointment-details summary{cursor:pointer;font-weight:800;color:var(--navy2)}
.timeline-mini{display:grid;gap:.45rem;margin-top:.65rem;font-size:.87rem;color:var(--muted)}
.testimonial-top{display:flex;justify-content:space-between;gap:.7rem;align-items:center}
.verified-review{font-size:.72rem;font-weight:850;padding:.3rem .5rem;border-radius:999px;background:#e9f5ee;color:#24623c}
.business-response{margin-top:1rem;padding:.8rem 1rem;background:#f5f8fb;border-left:3px solid #2d6ea5;border-radius:8px}
.business-response p{margin:.35rem 0 0;color:var(--muted)}
.payment-summary{display:grid;gap:.55rem;margin-bottom:1.4rem}
.payment-summary>div{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line)}
.payment-summary span{color:var(--muted)}.payment-due strong{font-size:1.35rem;color:var(--navy2)}
.square-card-host{min-height:95px;margin:1rem 0}
.calendar-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:.8rem;flex-wrap:wrap;margin:1rem 0}
.calendar-view-buttons,.calendar-nav{display:flex;gap:.45rem;flex-wrap:wrap}.calView.active{background:var(--navy2);color:#fff;border-color:var(--navy2)}
.calendar-title{font-size:1.15rem;font-weight:850;color:var(--navy2);margin:1rem 0}
.calendar-week{display:grid;grid-template-columns:repeat(7,minmax(180px,1fr));gap:.55rem;overflow-x:auto;padding-bottom:.5rem}
.calendar-column{border:1px solid var(--line);border-radius:12px;min-height:180px;background:#f8fbfd}
.calendar-column-head{padding:.65rem;font-weight:850;border-bottom:1px solid var(--line);background:#edf5fb}
.calendar-event{display:grid;gap:.25rem;margin:.5rem;padding:.6rem;border-radius:9px;background:#fff;border:1px solid var(--line);font-size:.82rem}
.calendar-event span,.calendar-event small{color:var(--muted)}
.calendar-empty-small{padding:.7rem;color:var(--muted);font-size:.82rem}
.calendar-month{display:grid;grid-template-columns:repeat(7,minmax(125px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);overflow:auto}
.calendar-month-cell{min-height:125px;background:#fff;padding:.45rem}.calendar-outside{background:#f7f9fb;color:#9aa7b2}
.calendar-date-number{font-weight:850;margin-bottom:.3rem}.calendar-chip{font-size:.72rem;padding:.28rem .35rem;border-radius:6px;background:#edf5fb;margin:.25rem 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-more{font-size:.72rem;color:var(--muted)}
.settings-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.crm-toolbar-v21{display:grid;grid-template-columns:2fr 1fr 1fr;gap:.65rem;margin:1rem 0}
.priority-badge{display:inline-block;font-size:.7rem;font-weight:850;text-transform:uppercase;padding:.25rem .45rem;border-radius:999px;background:#edf2f6;color:#43586b}
.priority-high{background:#fff1d9;color:#8a5510}.priority-urgent{background:#fde9e9;color:#9b2727}.priority-low{background:#eff6fb;color:#45657d}
@media(max-width:900px){.qualified-staff-grid,.settings-card-grid{grid-template-columns:1fr}.crm-toolbar-v21{grid-template-columns:1fr}.calendar-month{grid-template-columns:repeat(7,minmax(110px,1fr))}}


/* ============================================================
   v2.2 — Staff dashboard stabilization / private availability
   ============================================================ */
body[data-page="admin"] .page-hero{padding:2rem 0 1.65rem}
body[data-page="admin"] .page-hero h1{margin-bottom:.4rem}
body[data-page="admin"] .section.section-white{padding-top:1.45rem}
.dashboard-workspace{grid-template-columns:260px minmax(0,1fr);gap:1.25rem}
.dashboard-sidebar{top:78px;z-index:8;box-shadow:0 10px 28px rgba(12,42,67,.07)}
.dashboard-nav-button{position:relative;z-index:1;pointer-events:auto;min-height:42px}
.dashboard-nav-button:focus-visible{outline:3px solid rgba(35,111,169,.32);outline-offset:2px}
.dashboard-content{position:relative;min-height:420px}
.dashboard-pane.dashboard-pane-active{animation:dashboardPaneIn .14s ease-out}
@keyframes dashboardPaneIn{from{opacity:.25;transform:translateY(4px)}to{opacity:1;transform:none}}
.private-availability-note{display:inline-flex;align-items:center;gap:.4rem;margin:.9rem 0 .65rem;padding:.48rem .7rem;border:1px solid #cbdceb;border-radius:999px;background:#f4f9fd;color:#31566f;font-size:.82rem;font-weight:800}
.private-schedule-block{border-style:dashed!important;background:#f7f9fb!important}
.private-schedule-block small{font-style:italic}
body[data-page="admin"] button,body[data-page="admin"] a,body[data-page="admin"] select,body[data-page="admin"] input,body[data-page="admin"] textarea{touch-action:manipulation}
body[data-page="admin"] dialog[open]{z-index:1000}
@media(max-width:980px){
  .dashboard-workspace{grid-template-columns:1fr}
  .dashboard-sidebar{position:sticky;top:68px;z-index:20;background:rgba(248,251,254,.97);backdrop-filter:blur(10px);border-radius:12px;max-width:100%}
  #dashboardNav{padding-bottom:.25rem}
}
@media(prefers-reduced-motion:reduce){
  .dashboard-pane.dashboard-pane-active{animation:none}
  html{scroll-behavior:auto}
}

.calendar-private-block{border-style:dashed!important;background:#f7f9fb!important}
.calendar-private-chip{border:1px dashed #8aa6bb;background:#f4f7f9!important}


/* ============================================================
   v2.3 — Production hardening, accessibility, readiness
   ============================================================ */
.skip-link{position:fixed;left:1rem;top:-5rem;z-index:5000;background:#fff;color:#0d2d4d;border:2px solid #1769aa;border-radius:8px;padding:.7rem 1rem;font-weight:850;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.skip-link:focus{top:1rem}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.hp-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid rgba(23,105,170,.42);outline-offset:3px}
button:disabled,.btn:disabled{opacity:.58;cursor:not-allowed}
[aria-busy="true"]{cursor:progress}
.table-wrap[tabindex="0"]:focus-visible{outline:3px solid rgba(23,105,170,.28);outline-offset:4px;border-radius:12px}
.password-guide{margin-top:.35rem}
.legal-stack{display:grid;gap:1rem}
.legal-stack .card{margin:0}
.dashboard-search{padding:.65rem .75rem .4rem;border-bottom:1px solid var(--line);background:#f8fbfe;position:sticky;top:0;z-index:2}
.dashboard-search .input{min-height:40px;font-size:.9rem}
.readiness-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin:1rem 0}
.readiness-item{display:grid;gap:.3rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:#fff}
.readiness-item span{color:var(--muted);font-size:.9rem}
.readiness-item.ready{border-left:4px solid #2b7a4b}.readiness-item.waiting{border-left:4px solid #aa7515}.readiness-item.attention{border-left:4px solid #a52c2c}
.payment-history-staff{margin-top:.5rem}.payment-history-list{display:grid;gap:.65rem;margin-top:.75rem}
.payment-history-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.payment-history-row span,.payment-history-row small{color:var(--muted)}
#securityEventRowsV23 code{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.78rem}
@media(max-width:760px){.readiness-grid{grid-template-columns:1fr}.payment-history-row{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* v2.3 refund workflow */
.refund-editor-v23{margin-top:1rem;padding:1rem;border:1px solid #e3c4c4;border-radius:12px;background:#fffafa}
.refund-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.8rem}
.refund-editor-head h4{margin:.15rem 0 0}
.refund-confirm-row{align-items:flex-start;padding:.75rem;border:1px solid var(--line);border-radius:10px;background:#fff}


/* v2.3.3 Square POS staff workflow */
.square-pos-staff-card{margin:1rem 0;padding:1rem;border:1px solid var(--line);border-radius:14px;background:var(--surface,#fff)}
.square-pos-staff-card h4{margin:.15rem 0 .35rem}
.pos-launch-field{display:flex;align-items:flex-end}
.pos-launch-field .btn{width:100%}
.callback-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin:1rem 0}
@media (max-width:700px){.callback-actions .btn{width:100%}}


/* ============================================================
   v2.4 — Production readiness + payment attempt QA
   ============================================================ */
.readiness-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin:1rem 0}
.readiness-item small{display:block;margin-top:.35rem;color:var(--muted);line-height:1.35}
.readiness-item.neutral{border-color:var(--line);background:#fff}
.readiness-checklist-v24{margin-top:1.25rem}
.readiness-checklist-v24 summary{cursor:pointer}
.qa-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem 1rem;margin-top:1rem}
.qa-check-grid label{display:flex;align-items:flex-start;gap:.55rem;line-height:1.4}
.qa-check-grid input{margin-top:.18rem}
.pos-attempt-history-v24{margin:.9rem 0 1rem;padding:.85rem;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft,#f7fafc)}
.pos-attempt-history-v24 summary{cursor:pointer}
@media(max-width:720px){.qa-check-grid{grid-template-columns:1fr}.readiness-actions .btn{width:100%}}


/* ============================================================
   v2.4.1 — Customer dashboard, profile gate, wallet, receipts, MFA
   ============================================================ */
.customer-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:1rem 0}
.customer-dashboard-section{margin-top:1rem}
.customer-metric-grid{margin-bottom:1rem}
.profile-gate-notice .hero-actions{margin-top:.8rem}
.profile-complete-notice{border-left:4px solid #2f7d4a}
.purchase-history-list{display:grid;gap:.75rem}
.purchase-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:#fff}
.purchase-title{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;margin-bottom:.25rem}
.purchase-title span{color:var(--muted)}
.purchase-actions{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}
.saved-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.75rem;margin:1rem 0}
.saved-card{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem}
.saved-card-brand{font-weight:800}
.save-card-details{margin-top:1rem;border-top:1px solid var(--line);padding-top:1rem}
.save-card-details summary{cursor:pointer}
.save-card-inner{padding-top:1rem}
.wallet-consent,.save-card-payment-consent{margin:.9rem 0;align-items:flex-start}
.saved-pay-buttons{display:flex;flex-wrap:wrap;gap:.6rem;margin:.75rem 0 1rem}
.mfa-factor-list{display:grid;gap:.75rem;margin-top:1rem}
.mfa-enroll-grid{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(260px,1.1fr);gap:1rem;margin-top:1rem;align-items:start}
.mfa-qr{display:block;max-width:260px;width:100%;height:auto;border:1px solid var(--line);border-radius:12px;background:#fff;padding:.5rem}
.mfa-secret{display:block;overflow-wrap:anywhere;padding:.65rem;background:#f3f6f8;border-radius:8px;margin:.4rem 0 1rem}
.mfa-code-input{font-size:1.2rem;letter-spacing:.18em;text-align:center}
.receipt-shell{max-width:760px}
.receipt-card{position:relative;border:1px solid var(--line);border-radius:16px;padding:2rem;background:#fff;box-shadow:var(--shadow)}
.receipt-brand{display:flex;align-items:center;gap:1rem;border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:1.2rem}
.receipt-brand img{width:58px;height:58px;object-fit:contain}
.receipt-brand h1,.receipt-brand p{margin:0}
.receipt-status{position:absolute;right:2rem;top:2rem;font-weight:900;letter-spacing:.12em;border:2px solid currentColor;border-radius:8px;padding:.35rem .55rem}
.receipt-details{margin:0}
.receipt-details>div{display:grid;grid-template-columns:minmax(140px,.45fr) 1fr;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line)}
.receipt-details dt{font-weight:800}.receipt-details dd{margin:0;text-align:right;overflow-wrap:anywhere}.receipt-total{font-size:1.25rem;font-weight:900}
@media(max-width:760px){.customer-dashboard-grid,.mfa-enroll-grid{grid-template-columns:1fr}.purchase-row{align-items:flex-start;flex-direction:column}.purchase-actions{justify-content:flex-start}.receipt-status{position:static;display:inline-block;margin-bottom:1rem}.receipt-card{padding:1.25rem}.receipt-details>div{grid-template-columns:1fr;gap:.25rem}.receipt-details dd{text-align:left}}
@media print{.no-print,.site-header,.footer,.skip-link{display:none!important}.receipt-card{box-shadow:none;border:0;padding:0}.receipt-shell{max-width:none}.section{padding:0}.receipt-status{right:0;top:0}}


/* ============================================================
   v2.6 — Customer Notifications, Message Center, Team Uploads
   ============================================================ */
.account-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.3rem;height:1.3rem;padding:0 .35rem;margin-left:.35rem;border-radius:999px;background:#b42318;color:#fff;font-size:.72rem;font-weight:800;line-height:1}
.notification-section-head,.message-sidebar-head,.message-conversation-head,.staff-message-toolbar,.message-reply-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.account-notification{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:flex-start;padding:1rem 0;border-bottom:1px solid var(--line)}.account-notification:last-child{border-bottom:0}.account-notification.unread{background:linear-gradient(90deg,rgba(13,45,77,.055),transparent);padding-left:.75rem;border-left:3px solid var(--primary)}.account-notification-icon{display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:999px;background:#eef5fb;font-weight:800;color:var(--primary)}.account-notification-title{font-weight:800}.account-notification-copy p{margin:.25rem 0}.account-notification-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}
.message-center-layout{display:grid;grid-template-columns:minmax(250px,340px) 1fr;min-height:640px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff}.message-thread-sidebar{border-right:1px solid var(--line);background:#f8fafc}.message-sidebar-head{padding:1rem;border-bottom:1px solid var(--line)}.message-sidebar-head h2{margin:.15rem 0 0}.message-thread-list{max-height:690px;overflow:auto}.message-thread-item{width:100%;display:block;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:1rem;cursor:pointer;color:inherit}.message-thread-item:hover,.message-thread-item:focus-visible{background:#eef5fb}.message-thread-item.active{background:#e5f0f9;box-shadow:inset 4px 0 0 var(--primary)}.message-thread-top{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start}.message-thread-subject{font-weight:750;margin:.25rem 0}.message-thread-meta,.message-thread-preview,.message-thread-item small{display:block;font-size:.86rem;color:var(--muted);margin-top:.22rem}.message-thread-preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thread-unread{display:inline-grid;place-items:center;min-width:1.45rem;height:1.45rem;padding:0 .35rem;border-radius:999px;background:var(--primary);color:#fff;font-size:.75rem;font-weight:800}.message-conversation-pane{display:flex;flex-direction:column;min-width:0;background:#fff}.message-empty-state{margin:auto;padding:3rem}.message-conversation-head{padding:1rem 1.25rem;border-bottom:1px solid var(--line);align-items:flex-start}.message-conversation-head h2{margin:.15rem 0}.message-conversation-head p{margin:.35rem 0 0}.message-log{height:470px;overflow:auto;padding:1.25rem;background:#f6f8fb}.message-bubble{max-width:min(78%,720px);margin:0 0 1rem;padding:.85rem 1rem;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:0 2px 8px rgba(13,45,77,.04)}.message-bubble.mine{margin-left:auto;background:#e8f2fb;border-color:#c4dced}.message-bubble-meta{display:flex;justify-content:space-between;gap:1rem;font-size:.78rem;color:var(--muted);margin-bottom:.4rem}.message-bubble-body{white-space:normal;overflow-wrap:anywhere;line-height:1.5}.message-reply-form{padding:1rem 1.25rem;border-top:1px solid var(--line)}.message-reply-form label{font-weight:800;display:block;margin-bottom:.4rem}.message-reply-actions{margin-top:.65rem}.message-admin-controls{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}.message-admin-controls label{font-size:.8rem;font-weight:700}.message-admin-controls .select{display:block;margin-top:.3rem}.staff-message-toolbar{margin:1rem 0}.staff-message-layout{min-height:620px}.dialog-card{min-width:min(680px,calc(100vw - 2rem));max-width:760px}.team-photo-preview{margin:.75rem 0}.team-photo-preview img{display:block;width:140px;height:140px;object-fit:cover;border-radius:16px;border:1px solid var(--line);background:#f4f7fa}.team-photo-placeholder{padding:1rem;border:1px dashed var(--line);border-radius:10px;color:var(--muted)}
@media(max-width:860px){.message-center-layout{grid-template-columns:1fr;min-height:0}.message-thread-sidebar{border-right:0;border-bottom:1px solid var(--line)}.message-thread-list{max-height:280px}.message-log{height:400px}.message-bubble{max-width:92%}.account-notification{grid-template-columns:auto 1fr}.account-notification-actions{grid-column:2}}

/* ============================================================
   v2.7.1 — Mobile navigation reliability + maintenance mode
   ============================================================ */
.maintenance-check-pending body{visibility:hidden}
.maintenance-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.maintenance-panel-head h2{margin:.2rem 0 .45rem}
.maintenance-state-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.38rem .7rem;font-size:.78rem;font-weight:900;letter-spacing:.035em;white-space:nowrap;border:1px solid var(--line);background:#f4f7fa;color:#43576d}
.maintenance-state-on{background:#fff0f0;border-color:#efc5c5;color:#8f2e2e}
.maintenance-state-off{background:#e7f7ef;border-color:#b9e0ca;color:#166644}
.maintenance-settings-card{margin-top:1rem}
.maintenance-toggle-row{display:flex!important;align-items:flex-start;gap:.8rem;padding:1rem;border:1px solid var(--line);border-radius:12px;background:#f8fbfd;margin:0!important}
.maintenance-toggle-row input{width:1.2rem;height:1.2rem;margin-top:.2rem;flex:0 0 auto}
.maintenance-toggle-row span{display:grid;gap:.18rem}.maintenance-toggle-row small{color:var(--muted);font-weight:500;line-height:1.45}
.maintenance-save-actions{display:flex;flex-wrap:wrap;gap:.7rem}
.maintenance-page{min-height:100dvh;display:grid;place-items:center;background:linear-gradient(145deg,#0b2947,#174a78);padding:2rem}
.maintenance-card{width:min(720px,100%);background:white;border:1px solid rgba(255,255,255,.5);border-radius:24px;padding:clamp(1.5rem,5vw,3rem);box-shadow:0 26px 70px rgba(0,0,0,.22);text-align:center}
.maintenance-logo{width:86px;height:86px;object-fit:contain;margin:0 auto 1rem;border-radius:18px}
.maintenance-card h1{margin:.3rem 0 .8rem;font-size:clamp(2rem,6vw,3.25rem);line-height:1.05;letter-spacing:-.035em;color:var(--navy)}
.maintenance-card p{max-width:580px;margin:.7rem auto;color:var(--muted);font-size:1.05rem}
.maintenance-admin-access{margin-top:1.6rem;padding-top:1.25rem;border-top:1px solid var(--line)}
.maintenance-admin-access small{display:block;margin-top:.7rem;color:var(--muted)}

/* The old v1.0/v1.8 breakpoints overlapped between 901–980 px and could hide
   the navigation links without reliably showing the hamburger button.  v2.7.1
   uses one final authoritative mobile/touch rule after all legacy rules. */
@media (max-width:1080px), (hover:none) and (pointer:coarse){
  .site-header .nav{
    height:68px!important;
    min-height:68px!important;
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    gap:.65rem!important;
  }
  .site-header .brand{min-width:0;flex:1 1 auto}
  .site-header .brand span{display:inline!important;overflow:hidden;text-overflow:ellipsis}
  .site-header .desktop-only{display:none!important}
  .site-header .mobile-nav-only{display:block!important}
  .site-header .nav-actions{display:none!important}
  .site-header .menu-btn{
    display:flex!important;
    flex:0 0 40px;
    margin-left:auto;
  }
  .site-header .nav-links{
    position:absolute!important;
    top:calc(100% + 1px)!important;
    left:0!important;
    right:0!important;
    display:none!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:.15rem!important;
    padding:.75rem 4% 1rem!important;
    background:white!important;
    border-bottom:1px solid var(--line)!important;
    box-shadow:0 12px 24px rgba(18,45,72,.08)!important;
    z-index:80!important;
    max-height:calc(100dvh - 68px)!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
  }
  .site-header .nav-links.open{display:flex!important}
  .site-header .nav-links a,.site-header .mobile-nav-button{padding:.72rem .75rem!important;font-size:.94rem!important;white-space:normal!important}
}
@media(max-width:480px){
  .site-header .brand span{font-size:.98rem!important}
  .site-header .brand img{width:38px!important;height:38px!important}
  .maintenance-page{padding:1rem}.maintenance-card{padding:1.4rem}
  .maintenance-save-actions .btn{width:100%}
}

/* ============================================================
   v2.7.4 — Admin dashboard mobile section navigation containment
   ============================================================ */
@media (max-width:760px){
  body[data-page="admin"] #dashboardWorkspace{
    width:100%;
    max-width:100%;
    min-width:0;
  }
  body[data-page="admin"] .dashboard-sidebar{
    position:static!important;
    top:auto!important;
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
    padding:.65rem;
    overflow:hidden!important;
  }
  body[data-page="admin"] .dashboard-search{
    position:static;
    top:auto;
    padding:.25rem .25rem .65rem;
    margin:0 0 .55rem;
    border-bottom:1px solid var(--line);
  }
  body[data-page="admin"] .dashboard-search .input{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }
  body[data-page="admin"] #dashboardNav{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.5rem;
    width:100%;
    max-width:100%;
    min-width:0;
    max-height:225px;
    padding:.1rem .1rem .2rem!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }
  body[data-page="admin"] #dashboardNav .dashboard-nav-group{
    display:contents!important;
  }
  body[data-page="admin"] #dashboardNav .dashboard-nav-button{
    width:100%!important;
    min-width:0!important;
    max-width:100%;
    min-height:50px;
    margin:0;
    padding:.68rem .45rem;
    box-sizing:border-box;
    white-space:normal!important;
    overflow-wrap:anywhere;
    word-break:normal;
    text-align:center;
    line-height:1.15;
  }
}
@media (max-width:340px){
  body[data-page="admin"] #dashboardNav{grid-template-columns:1fr}
}


/* v2.8.0 Maintenance Arcade */
.maintenance-page-arcade{align-items:start;padding:clamp(1rem,3vw,2.5rem)}
.maintenance-card-wide{width:min(1040px,100%);text-align:left}
.maintenance-header-block{display:grid;grid-template-columns:auto 1fr;gap:1.25rem;align-items:center;text-align:left}
.maintenance-header-block .maintenance-logo{margin:0;width:92px;height:92px}
.maintenance-header-block h1{font-size:clamp(1.9rem,4.8vw,3rem);margin:.2rem 0 .6rem}
.maintenance-header-block p{margin:.35rem 0;max-width:760px}
.maintenance-arcade{margin-top:2rem;border-top:1px solid var(--line);padding-top:1.6rem}
.maintenance-arcade-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.maintenance-arcade-heading h2{font-size:clamp(1.7rem,4vw,2.4rem);line-height:1.1;margin:.25rem 0 .35rem;color:var(--navy)}
.maintenance-arcade-heading p{margin:0;color:var(--muted);max-width:720px}
.arcade-random{flex:0 0 auto}
.arcade-library{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin:1.2rem 0}
.arcade-pick{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon title" "icon type";align-items:center;column-gap:.65rem;text-align:left;border:1px solid #cfdae5;background:#f8fbfd;border-radius:14px;padding:.75rem;cursor:pointer;color:var(--ink);min-width:0;transition:.16s ease}
.arcade-pick:hover{transform:translateY(-1px);border-color:#91b7d6;background:#f1f8fd}.arcade-pick.is-active{border-color:#2a679f;background:#eaf4fd;box-shadow:inset 0 0 0 1px #2a679f}
.arcade-pick>span{grid-area:icon;font-size:1.55rem}.arcade-pick strong{grid-area:title;font-size:.91rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arcade-pick small{grid-area:type;color:var(--muted);font-size:.72rem}
.arcade-stage{border:1px solid var(--line);border-radius:20px;background:#f8fbfd;padding:clamp(1rem,3vw,1.5rem);min-height:420px}
.arcade-game[hidden]{display:none!important}.arcade-game{max-width:760px;margin:auto}.arcade-game-head{display:flex;align-items:start;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.arcade-game-head h3{font-size:1.45rem;margin:0 0 .2rem;color:var(--navy)}.arcade-game-head p{margin:0;color:var(--muted);font-size:.94rem}.arcade-small-btn{padding:.58rem .8rem;white-space:nowrap}
.arcade-stats{display:flex;gap:.6rem;flex-wrap:wrap;margin:.8rem 0 1rem}.arcade-stats span{background:white;border:1px solid var(--line);border-radius:999px;padding:.38rem .7rem;color:var(--muted);font-size:.82rem}.arcade-stats strong{color:var(--navy);margin-left:.2rem}
.arcade-status{min-height:1.6rem!important;text-align:center;margin:.8rem auto 0!important;font-size:.9rem!important;color:var(--muted)!important}.arcade-inline-form{display:flex;gap:.6rem;max-width:520px;margin:1rem auto}.arcade-inline-form .input{min-width:0}.arcade-link-button{display:block;border:0;background:transparent;color:var(--blue);font-weight:800;text-decoration:underline;cursor:pointer;margin:.2rem auto}
.snake-canvas{display:block;width:min(100%,360px);height:auto;aspect-ratio:1;border:2px solid #b8cad9;border-radius:14px;margin:0 auto;background:#eef4f8;touch-action:none}.snake-controls,.compact-dpad{display:grid;justify-items:center;gap:.28rem;margin:.8rem auto 0}.snake-controls div,.compact-dpad div{display:flex;gap:.28rem}.snake-controls button,.compact-dpad button{width:52px;height:44px;border:1px solid #b9ccdd;background:white;border-radius:10px;font-weight:900;color:var(--navy);cursor:pointer}
.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.55rem;max-width:500px;margin:auto}.memory-card{aspect-ratio:1;border:1px solid #bfd1df;background:#0d2d4d;color:white;border-radius:12px;font-size:1.8rem;font-weight:900;cursor:pointer}.memory-card.is-flipped{background:white;color:var(--navy);border-color:#8fb6d5}.memory-card:disabled{opacity:1}
.ttt-board{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem;max-width:360px;margin:auto}.ttt-board button{aspect-ratio:1;border:1px solid #bfd1df;background:white;border-radius:14px;font-size:2.25rem;font-weight:900;color:var(--navy);cursor:pointer}.ttt-board button:disabled{opacity:1}
.g2048-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;max-width:390px;background:#cbd9e4;padding:.5rem;border-radius:14px;margin:auto;touch-action:none}.g2048-tile{aspect-ratio:1;display:grid;place-items:center;background:#edf3f7;border-radius:9px;font-weight:900;font-size:clamp(1.1rem,6vw,1.8rem);color:var(--navy)}.g2048-tile[data-value="0"]{background:#dde7ee}.g2048-tile[data-value="2"],.g2048-tile[data-value="4"]{background:#fff}.g2048-tile[data-value="8"],.g2048-tile[data-value="16"]{background:#dceeff}.g2048-tile[data-value="32"],.g2048-tile[data-value="64"]{background:#c5e1f6}.g2048-tile[data-value="128"],.g2048-tile[data-value="256"]{background:#9ed0f2}.g2048-tile[data-value="512"],.g2048-tile[data-value="1024"],.g2048-tile[data-value="2048"]{background:#2a679f;color:white}
.lights-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.45rem;max-width:390px;margin:auto}.lights-grid button{aspect-ratio:1;border-radius:12px;border:1px solid #aebfcd;background:#c8d3dc;cursor:pointer;box-shadow:inset 0 -3px 0 rgba(0,0,0,.08)}.lights-grid button.is-on{background:#ffd45d;border-color:#e5ac25;box-shadow:0 0 18px rgba(227,172,37,.35)}
.code-history{display:grid;gap:.45rem;max-width:520px;margin:1rem auto;max-height:190px;overflow:auto}.code-row{display:flex;justify-content:space-between;gap:1rem;padding:.55rem .75rem;border:1px solid var(--line);border-radius:10px;background:white}.code-row strong{letter-spacing:.18em}.code-row span{color:var(--muted);font-size:.85rem}
.sequence-question,.math-question,.word-scramble{text-align:center;background:white;border:1px solid var(--line);border-radius:16px;padding:1.25rem;margin:1rem auto;font-size:clamp(1.5rem,6vw,2.25rem);font-weight:900;color:var(--navy);max-width:560px;letter-spacing:.02em}.word-scramble{letter-spacing:.18em}.choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;max-width:480px;margin:auto}.choice-grid button{border:1px solid #bcd0df;border-radius:12px;background:white;padding:.85rem;font-weight:900;color:var(--navy);cursor:pointer}
.slider-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;max-width:350px;margin:auto;background:#d7e3ec;padding:.5rem;border-radius:14px}.slider-grid button{aspect-ratio:1;border:1px solid #9fb8ca;border-radius:10px;background:white;font-size:1.75rem;font-weight:900;color:var(--navy);cursor:pointer}.slider-grid button.is-empty{visibility:hidden}
.reaction-pad{width:min(100%,560px);min-height:210px;margin:1rem auto 0;border:0;border-radius:18px;background:#eaf1f6;color:var(--navy);display:grid;place-content:center;gap:.3rem;cursor:pointer;padding:1.2rem}.reaction-pad span{font-size:clamp(1.5rem,7vw,2.4rem);font-weight:900}.reaction-pad small{color:var(--muted)}.reaction-pad[data-state="waiting"]{background:#fff4d6}.reaction-pad[data-state="go"]{background:#dff5e8;color:#12603f}
.sudoku-grid{display:grid;grid-template-columns:repeat(4,1fr);max-width:360px;margin:auto;border:2px solid var(--navy);background:var(--navy);gap:2px}.sudoku-grid button{aspect-ratio:1;border:0;background:white;font-size:1.5rem;font-weight:800;color:var(--navy);cursor:pointer}.sudoku-grid button:nth-child(4n+2){border-right:2px solid var(--navy)}.sudoku-grid button:nth-child(n+5):nth-child(-n+8){border-bottom:2px solid var(--navy)}.sudoku-grid button.is-fixed{background:#e8eef3;color:#465a6e;cursor:default}.sudoku-grid button.is-selected{outline:4px solid #72b9ef;outline-offset:-4px;background:#edf8ff}.sudoku-pad{display:flex;justify-content:center;gap:.4rem;flex-wrap:wrap;margin:.8rem auto}.sudoku-pad button{min-width:48px;padding:.6rem;border:1px solid #b9ccdd;background:white;border-radius:9px;font-weight:900;color:var(--navy);cursor:pointer}
.maintenance-card-wide .maintenance-admin-access{text-align:center}
@media(max-width:800px){.arcade-library{grid-template-columns:repeat(3,minmax(0,1fr))}.maintenance-header-block{grid-template-columns:1fr;text-align:center}.maintenance-header-block .maintenance-logo{margin:auto}.maintenance-header-block p{margin:.35rem auto}.maintenance-arcade-heading{align-items:flex-start}.arcade-pick{grid-template-columns:1fr;grid-template-areas:"icon" "title" "type";text-align:center;justify-items:center;gap:.08rem;padding:.65rem .35rem}.arcade-pick strong{font-size:.78rem;max-width:100%}}
@media(max-width:520px){.maintenance-page-arcade{padding:.65rem}.maintenance-card-wide{padding:1rem;border-radius:18px}.maintenance-header-block .maintenance-logo{width:74px;height:74px}.maintenance-arcade{margin-top:1.3rem;padding-top:1.2rem}.maintenance-arcade-heading{display:grid}.arcade-random{width:100%}.arcade-library{grid-template-columns:repeat(3,minmax(0,1fr));gap:.42rem}.arcade-pick>span{font-size:1.35rem}.arcade-pick small{font-size:.62rem}.arcade-stage{padding:.8rem;border-radius:16px;min-height:380px}.arcade-game-head{display:grid}.arcade-small-btn{width:100%}.arcade-inline-form{display:grid}.arcade-inline-form .btn{width:100%}.memory-grid{grid-template-columns:repeat(3,1fr)}.snake-controls button,.compact-dpad button{width:58px;height:48px}.choice-grid{grid-template-columns:1fr 1fr}.code-row{font-size:.82rem}.maintenance-card-wide .maintenance-admin-access .btn{width:100%}}

/* ============================================================
   v2.8.1 — Admin account creation + first-login password change
   ============================================================ */
.account-admin-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:1rem;align-items:start}
.password-build-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:center}
.password-build-row .btn{white-space:nowrap}
.account-create-actions{display:flex;gap:.65rem;flex-wrap:wrap}
.required-password-shell{max-width:590px}
.required-password-shell .section-lead{margin-bottom:1.3rem}
@media(max-width:850px){.account-admin-grid{grid-template-columns:1fr}}
@media(max-width:520px){.password-build-row{grid-template-columns:1fr}.password-build-row .btn,.account-create-actions .btn{width:100%}.account-create-actions{display:grid}}

/* ============================================================
   v2.9 Business Operations Expansion
   ============================================================ */
.ops-customer-grid,.ops-admin-columns{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr));margin:1rem 0}.ops-admin-columns{grid-template-columns:1fr}.ops-section{margin-top:1.35rem}.ops-heading,.ops-row,.ops-actions,.ops-money{display:flex;gap:.75rem;align-items:center;justify-content:space-between;flex-wrap:wrap}.ops-list{display:grid;gap:.75rem}.ops-card,.ops-row{border:1px solid var(--border,#d8e4ee);border-radius:12px;padding:1rem;background:#fff}.ops-card .ops-row{border:0;padding:0;background:transparent}.ops-row p,.ops-card p{margin:.35rem 0 0;color:var(--muted,#607487)}.ops-status{display:inline-flex;align-items:center;border-radius:999px;padding:.2rem .58rem;font-size:.75rem;font-weight:800;text-transform:capitalize;background:#eaf0f5;color:#294960}.ops-approved,.ops-completed,.ops-paid,.ops-active,.ops-success{background:#e6f5ec;color:#17633a}.ops-declined,.ops-cancelled,.ops-refunded{background:#fdeaea;color:#8b2424}.ops-requested,.ops-sent,.ops-en_route,.ops-arrived,.ops-in_progress,.ops-partial,.ops-offered{background:#e8f2fb;color:#155e93}.ops-waiting_parts,.ops-overdue,.ops-warning{background:#fff3d6;color:#815a00}.ops-money{justify-content:flex-start}.ops-money span{background:#f6f9fc;border-radius:8px;padding:.45rem .6rem}.ops-update{border-left:3px solid #8fb9d8;padding:.35rem .65rem;margin-top:.45rem;background:#f7fafc}.ops-unread{box-shadow:0 0 0 2px rgba(23,105,170,.13)}.ops-select{width:auto;min-width:150px}.account-admin-grid{align-items:start}@media(max-width:760px){.ops-customer-grid{grid-template-columns:1fr}.ops-actions>*{width:100%}.ops-select{width:100%}.ops-row{align-items:flex-start}}

.attachment-link{display:inline-flex;border:0;background:transparent;color:#1769aa;text-decoration:underline;cursor:pointer;padding:.25rem 0;margin-right:.65rem;font:inherit}.ops-attach{margin-top:.75rem}

/* v2.9.1 Owner Customer Mode */
.owner-customer-mode-banner{border-bottom:1px solid rgba(11,85,135,.24);background:#eaf5ff;padding:.65rem 0;position:relative;z-index:30}
.owner-customer-mode-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.owner-customer-mode-inner>div{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap}
.owner-customer-mode-inner strong{color:#0b5587}
.owner-customer-mode-inner span{font-size:.92rem;color:#334b5d}
.owner-customer-mode-card{display:flex;align-items:flex-start;justify-content:space-between;gap:1.25rem;flex-wrap:wrap}
.owner-customer-mode-card>div:first-child{flex:1 1 34rem}
@media (max-width:640px){.owner-customer-mode-inner{align-items:flex-start;flex-direction:column}.owner-customer-mode-inner .btn{width:100%}.owner-customer-mode-card .hero-actions,.owner-customer-mode-card .btn{width:100%}}

/* ============================================================
   v2.9.2 — Business subscription tracker
   ============================================================ */
.subscription-form-v292{margin:1.1rem 0 1.4rem}.subscription-form-actions{display:flex;gap:.65rem;flex-wrap:wrap}
.subscription-toolbar-v292{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1.15rem 0 .8rem}.muted-small{color:var(--muted,#607487);font-size:.84rem;margin-top:.18rem}
.subscription-list-v292{display:grid;gap:.85rem}.subscription-card-v292{border:1px solid var(--line,#d8e4ee);border-radius:14px;background:#fff;padding:1rem;box-shadow:0 8px 22px rgba(12,42,67,.035)}.subscription-inactive-v292{opacity:.72;background:#f8fafc}
.subscription-card-head-v292{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.subscription-title-v292{font-weight:900;font-size:1.08rem;color:var(--navy2,#123b5d)}
.subscription-tag{display:inline-flex;border-radius:999px;padding:.22rem .58rem;font-size:.73rem;font-weight:850;text-transform:capitalize;background:#eef3f7;color:#405a70}.subscription-tag-success{background:#e6f5ec;color:#17633a}.subscription-tag-warning{background:#fff3d6;color:#815a00}.subscription-tag-danger{background:#fdeaea;color:#8b2424}.subscription-tag-info{background:#e8f2fb;color:#155e93}
.subscription-alerts-v292{display:flex;gap:.38rem;flex-wrap:wrap;margin-top:.7rem}.subscription-facts-v292{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin-top:.85rem}.subscription-facts-v292>div{background:#f6f9fc;border-radius:10px;padding:.62rem}.subscription-facts-v292 span{display:block;color:var(--muted,#607487);font-size:.75rem;margin-bottom:.18rem}.subscription-facts-v292 strong{font-size:.9rem}
.subscription-detail-v292{margin-top:.65rem;color:#334f66}.subscription-notes-v292{padding:.65rem;background:#f8fafc;border-left:3px solid #a9c4d9}.subscription-price-change{margin-top:.7rem;border-radius:9px;padding:.55rem .65rem;font-size:.88rem}.subscription-price-change.increase{background:#fff3d6;color:#815a00}.subscription-price-change.decrease{background:#e6f5ec;color:#17633a}.subscription-actions-v292{margin-top:.85rem;justify-content:flex-start}
.subscription-history-v292{margin-top:1rem}.subscription-history-head-v292{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.subscription-history-head-v292 h3{margin:.1rem 0}.subscription-history-list-v292{display:grid;gap:.55rem;margin-top:.8rem}.subscription-history-row-v292{display:grid;grid-template-columns:minmax(180px,.6fr) 1fr;gap:1rem;padding:.65rem;border-top:1px solid var(--line,#d8e4ee)}
@media(max-width:760px){.subscription-toolbar-v292,.subscription-card-head-v292,.subscription-history-head-v292{align-items:flex-start;flex-direction:column}.subscription-facts-v292{grid-template-columns:1fr 1fr}.subscription-actions-v292>*{width:100%}.subscription-history-row-v292{grid-template-columns:1fr}}
@media(max-width:480px){.subscription-facts-v292{grid-template-columns:1fr}}

/* v2.9.4 — Business Subscription Archive */
.subscription-toolbar-actions-v294{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap}
.subscription-archive-shell-v294{display:grid;gap:1rem}
.subscription-archive-toolbar-v294{display:flex;align-items:end;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.subscription-archive-search-v294{min-width:min(100%,360px);flex:1;max-width:520px}
.subscription-archive-meta-v294{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.7rem}
.subscription-archive-date-v294{font-size:.82rem;color:var(--muted,#607487);margin-top:.2rem}
.subscription-archive-history-v294{margin-top:.8rem}
@media(max-width:760px){.subscription-toolbar-actions-v294,.subscription-toolbar-actions-v294>*{width:100%}.subscription-archive-toolbar-v294{align-items:stretch}.subscription-archive-search-v294{max-width:none}}


/* ============================================================
   v2.9.5 — Collapsible Admin Dashboard navigation groups
   ============================================================ */
body[data-page="admin"] #dashboardNav{display:block}
body[data-page="admin"] #dashboardNav .dashboard-nav-group{
  display:block;
  margin:.3rem 0;
  padding:0;
  border:1px solid #dbe7f0;
  border-radius:11px;
  background:#fff;
  overflow:hidden;
}
body[data-page="admin"] #dashboardNav .dashboard-nav-group-toggle{
  width:100%;
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  padding:.68rem .72rem;
  border:0;
  background:#f8fbfe;
  color:#24465f;
  font:inherit;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.045em;
  text-transform:uppercase;
  text-align:left;
  cursor:pointer;
}
body[data-page="admin"] #dashboardNav .dashboard-nav-group-toggle:hover{background:#edf5fb}
body[data-page="admin"] #dashboardNav .dashboard-nav-group-toggle:focus-visible{outline:3px solid rgba(35,111,169,.32);outline-offset:-3px}
body[data-page="admin"] #dashboardNav .dashboard-nav-group-chevron{
  flex:0 0 auto;
  font-size:1.05rem;
  line-height:1;
  transition:transform .16s ease;
}
body[data-page="admin"] #dashboardNav .dashboard-nav-group-items{display:none;padding:.25rem;background:#fff}
body[data-page="admin"] #dashboardNav .dashboard-nav-group-open>.dashboard-nav-group-items,
body[data-page="admin"] #dashboardNav .dashboard-nav-group-search-open>.dashboard-nav-group-items{display:grid;gap:.12rem}
body[data-page="admin"] #dashboardNav .dashboard-nav-group-open>.dashboard-nav-group-toggle,
body[data-page="admin"] #dashboardNav .dashboard-nav-group-search-open>.dashboard-nav-group-toggle{background:#eaf3fb;color:#123f63}
body[data-page="admin"] #dashboardNav .dashboard-nav-group-open>.dashboard-nav-group-toggle .dashboard-nav-group-chevron,
body[data-page="admin"] #dashboardNav .dashboard-nav-group-search-open>.dashboard-nav-group-toggle .dashboard-nav-group-chevron{transform:rotate(180deg)}
body[data-page="admin"] #dashboardNav .dashboard-nav-group-title{display:none!important}
body[data-page="admin"] #dashboardNav .dashboard-nav-button{padding:.58rem .62rem;min-height:38px}
@media(max-width:980px){
  body[data-page="admin"] #dashboardNav{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
    padding:.1rem!important;
  }
  body[data-page="admin"] #dashboardNav .dashboard-nav-group{display:block!important;width:100%!important;max-width:100%!important}
  body[data-page="admin"] #dashboardNav .dashboard-nav-group-items{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;padding:.45rem}
  body[data-page="admin"] #dashboardNav .dashboard-nav-button{
    width:100%!important;
    min-width:0!important;
    white-space:normal!important;
    text-align:center;
    border:1px solid var(--line);
    background:#fff;
    min-height:46px;
  }
  body[data-page="admin"] #dashboardNav .dashboard-nav-button.active{background:var(--navy2);color:#fff}
}
@media(max-width:760px){
  body[data-page="admin"] #dashboardNav{max-height:360px;overflow-y:auto!important;overscroll-behavior:contain}
}
@media(max-width:420px){
  body[data-page="admin"] #dashboardNav .dashboard-nav-group-items{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  body[data-page="admin"] #dashboardNav .dashboard-nav-group-chevron{transition:none}
}

/* ============================================================
   v3.0 Platform, Customer Experience & Security Expansion
   ============================================================ */
.customer-portal-nav-v30{position:sticky;top:0;z-index:20;display:flex;gap:.55rem;overflow-x:auto;padding:.75rem;margin:0 0 1.25rem;background:rgba(255,255,255,.96);border:1px solid #d7e3ec;border-radius:18px;box-shadow:0 8px 24px rgba(13,45,77,.08);scrollbar-width:thin}
.customer-portal-tab-v30{flex:0 0 auto;border:1px solid #bfd0de;background:#fff;color:#173b5e;border-radius:12px;padding:.7rem .9rem;font:inherit;font-weight:800;cursor:pointer}
.customer-portal-tab-v30.is-active{background:#0d5687;color:#fff;border-color:#0d5687}
.portal-section-hidden-v30{display:none!important}
.security-grid-v30,.agreements-admin-grid-v30,.content-grid-v30,.document-grid-v30{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.security-preferences-v30{margin-top:1rem;display:grid;gap:.8rem}
.device-list-v30{display:grid;gap:.7rem}
.device-row-v30{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:1rem;border:1px solid #d7e3ec;border-radius:14px;background:#fff}
.device-row-v30 p{margin:.25rem 0 0;color:#607487;font-size:.9rem}.device-row-v30.is-revoked{opacity:.65}
.inline-search-v30{display:flex;gap:.55rem;align-items:center}.inline-search-v30 .input{flex:1}
.agreement-card-v30{border:1px solid #d7e3ec;border-radius:15px;padding:1rem;margin:.8rem 0;background:#fff}
.agreement-card-v30 details{margin:.8rem 0}.agreement-card-v30 summary{cursor:pointer;font-weight:800;color:#0d5687}
.agreement-body-v30{white-space:normal;line-height:1.65;padding:1rem;background:#f6f9fb;border:1px solid #dce7ef;border-radius:12px;margin-top:.7rem}
.agreement-signature-v30{display:flex;flex-direction:column;gap:.2rem;padding:.8rem;border-left:4px solid #2c8b57;background:#eef9f2;border-radius:8px;margin:.8rem 0}
.agreementSignFormV30{display:grid;gap:.65rem;padding-top:.8rem;border-top:1px solid #e2eaf0}
.siteContentFormV30{display:grid;gap:.8rem}.siteContentFormV30 label:not(.check-row){display:grid;gap:.35rem;font-weight:700}
.site-announcement-v30{background:#0d5687;color:#fff;padding:.7rem 0}.site-announcement-v30 .container,.site-footer-notice-v30 .container{display:flex;gap:.65rem;align-items:center;justify-content:center;flex-wrap:wrap;text-align:center}.site-announcement-v30 strong{font-weight:900}
.site-home-notice-v30{padding:1.25rem 0;background:#f5f9fc}.site-footer-notice-v30{padding:.8rem 0;background:#eaf2f7;color:#173b5e;border-top:1px solid #d5e1ea}
.backup-chip-list-v30{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.backup-chip-list-v30 span{padding:.35rem .6rem;background:#eef4f8;border:1px solid #d4e2ec;border-radius:999px;font-size:.85rem;font-weight:700}
.document-link-v30{display:flex;flex-direction:column;gap:.25rem;text-decoration:none;padding:1rem;border:1px solid #d7e3ec;border-radius:14px;background:#fff;color:#173b5e}.document-link-v30:hover{border-color:#2a679f;box-shadow:0 6px 18px rgba(13,45,77,.08)}.document-link-v30 span{color:#63788b;font-size:.9rem}
.pwa-notice-v30{position:fixed;left:50%;bottom:1rem;transform:translateX(-50%);z-index:9999;width:min(680px,calc(100% - 2rem));display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:1rem;background:#0d2d4d;color:#fff;border-radius:16px;box-shadow:0 18px 45px rgba(0,0,0,.25)}.pwa-notice-v30 div:first-child{display:flex;flex-direction:column;gap:.2rem}.pwa-notice-v30 button{border:0;border-radius:9px;padding:.55rem .8rem;font-weight:800;cursor:pointer}.pwa-notice-actions-v30{display:flex;gap:.5rem}
.offline-page-v30{min-height:100vh;display:grid;place-items:center;padding:2rem;background:#f4f8fb}.offline-card-v30{max-width:650px;text-align:center;padding:2.2rem}.offline-card-v30 img{width:90px;height:auto;margin-bottom:1rem}.offline-card-v30 .hero-actions{justify-content:center}
.document-page-v30{max-width:900px;margin:auto;padding:1.5rem}.document-toolbar-v30{display:flex;justify-content:flex-end;gap:.6rem;margin-bottom:1rem}.business-document-v30{background:#fff;border:1px solid #d7e3ec;box-shadow:0 10px 30px rgba(13,45,77,.08);padding:2rem;min-height:600px}.document-header-v30{display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid #0d5687;padding-bottom:1rem}.document-header-v30 img{width:86px;height:auto}.document-header-v30>div{text-align:right}.document-header-v30 h1{margin:.1rem 0}.document-party-v30{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.5rem 0}.document-party-v30>div{display:flex;flex-direction:column;gap:.2rem;padding:1rem;background:#f7fafc;border-radius:10px}.document-table-v30{width:100%;border-collapse:collapse;margin:1.2rem 0}.document-table-v30 th,.document-table-v30 td{padding:.7rem;border-bottom:1px solid #dce5ec;text-align:left}.document-table-v30 th:nth-child(n+2),.document-table-v30 td:nth-child(n+2){text-align:right}.document-totals-v30{margin-left:auto;max-width:360px;display:grid;gap:.35rem}.document-totals-v30 span{display:flex;justify-content:space-between;border-bottom:1px solid #e1e8ee;padding:.35rem}.document-update-v30{border-left:3px solid #2a679f;padding:.7rem 1rem;margin:.7rem 0;background:#f6f9fb}.document-update-v30 span{display:block;color:#6b7c8b;font-size:.85rem}.document-signature-v30{margin-top:1.5rem;padding:1rem;border:1px solid #8cc7a4;background:#f1faf5;border-radius:10px;display:flex;flex-direction:column;gap:.3rem;overflow-wrap:anywhere}.document-footer-v30{margin-top:2rem;padding-top:1rem;border-top:1px solid #dce5ec;color:#6d7e8c;font-size:.82rem}
.mines-grid-v30{display:grid;grid-template-columns:repeat(8,1fr);max-width:430px;margin:1rem auto;border:2px solid #173b5e}.mines-grid-v30 button{aspect-ratio:1;border:1px solid #a9bccb;background:#dce8f0;font-weight:900;cursor:pointer}.mines-grid-v30 button.is-open{background:#f8fbfd}.mines-grid-v30 button.is-flag{color:#a52f2f}
.maze-grid-v30{display:grid;grid-template-columns:repeat(9,1fr);max-width:430px;aspect-ratio:1;margin:1rem auto;background:#fff}.maze-cell-v30{display:grid;place-items:center;color:#173b5e;font-weight:900;min-width:0}.maze-cell-v30.is-player{background:#d7edff;color:#0d5687}.maze-cell-v30.is-exit{background:#e6f7eb;color:#287548}.maze-controls-v30{margin-inline:auto}
.simon-grid-v30{display:grid;grid-template-columns:repeat(2,minmax(90px,150px));gap:.8rem;justify-content:center;margin:1.2rem auto}.simon-grid-v30 button{aspect-ratio:1;border:2px solid #173b5e;border-radius:18px;background:#dbe7ef;color:#173b5e;font-size:1.6rem;font-weight:900;transition:.12s}.simon-grid-v30 button.is-lit{background:#0d5687;color:#fff;transform:scale(.96);box-shadow:0 0 0 6px rgba(13,86,135,.18)}
.hangman-word-v30{text-align:center;font-size:clamp(1.5rem,5vw,2.4rem);letter-spacing:.2rem;font-weight:900;margin:1.25rem 0}.hangman-letters-v30{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}.hangman-letters-v30 button{width:38px;height:38px;border:1px solid #b9cbd8;border-radius:8px;background:#fff;font-weight:800;cursor:pointer}.hangman-letters-v30 button:disabled{opacity:.35}
@media(max-width:720px){.security-grid-v30,.agreements-admin-grid-v30,.content-grid-v30,.document-grid-v30{grid-template-columns:1fr}.device-row-v30{align-items:flex-start;flex-direction:column}.inline-search-v30{align-items:stretch;flex-direction:column}.pwa-notice-v30{align-items:stretch;flex-direction:column}.document-page-v30{padding:.5rem}.business-document-v30{padding:1rem;border:0;box-shadow:none}.document-party-v30{grid-template-columns:1fr}.document-header-v30{align-items:flex-start}.document-header-v30>div{text-align:right}.customer-portal-nav-v30{top:.25rem}}
@media print{.no-print,.pwa-notice-v30{display:none!important}.document-page-v30{max-width:none;padding:0}.business-document-v30{border:0;box-shadow:none;padding:0}.document-footer-v30{font-size:8pt}@page{margin:.55in}}

/* v3.0.1 — Maintenance Arcade difficulty controls */
.arcade-difficulty-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;padding:.85rem 1rem;border:1px solid var(--line);border-radius:14px;background:#fff}
.arcade-difficulty-bar>div{display:grid;gap:.15rem}.arcade-difficulty-bar strong{color:var(--navy)}.arcade-difficulty-bar small{color:var(--muted)}
.arcade-difficulty-bar>label{font-weight:800;color:var(--navy);margin-left:auto}.arcade-difficulty-select{width:auto;min-width:130px;padding:.58rem .75rem}
.memory-grid{grid-template-columns:repeat(var(--memory-cols,4),1fr)}
.mines-grid-v30{grid-template-columns:repeat(var(--mines-size,8),1fr)}
.maze-grid-v30{grid-template-columns:repeat(var(--maze-size,9),1fr)}
@media(max-width:520px){.arcade-difficulty-bar{display:grid}.arcade-difficulty-bar>label{margin-left:0}.arcade-difficulty-select{width:100%}.memory-grid{grid-template-columns:repeat(var(--memory-cols,4),1fr)}}

/* v3.0.4 — customer efficiency, 2FA controls, discounts */
.customer-quick-actions-v304{margin:1rem 0 1.35rem}.customer-quick-heading-v304{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.7rem}.customer-quick-heading-v304 h2{margin:.15rem 0 0}.customer-quick-grid-v304{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem}.customer-quick-action-v304{appearance:none;border:1px solid var(--border,#d9e5ee);background:#fff;border-radius:12px;padding:1rem;text-align:left;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:.25rem;cursor:pointer;font:inherit;box-shadow:0 3px 12px rgba(13,45,77,.05)}.customer-quick-action-v304:hover,.customer-quick-action-v304:focus-visible{border-color:#7ea5c5;transform:translateY(-1px)}.customer-quick-action-v304 strong{color:#0d2d4d}.customer-quick-action-v304 span{font-size:.88rem;color:#607487}.security-method-grid-v304,.security-method-list-v304{display:grid;gap:.8rem}.security-method-grid-v304{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1rem}.security-method-v304{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.security-method-v304 h3{margin-top:0}.portal-section-hidden-v30{display:none!important}
@media(max-width:850px){.customer-quick-grid-v304,.security-method-grid-v304{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.customer-quick-grid-v304,.security-method-grid-v304{grid-template-columns:1fr}.customer-quick-action-v304{padding:.85rem}}
