:root{--a:#0aa7a5;--b:#1378c8;--ink:#17363b;--muted:#6b7f83;--bg:#eef9f7;--card:#fff;--line:#d9ece9}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Arial;background:linear-gradient(#ddf6f3,#f7fcfb);color:var(--ink)}
button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:12px;padding:10px 14px;font-weight:800}
.primary{background:linear-gradient(135deg,var(--a),var(--b));color:#fff}.ghost{background:#eef6f5;color:var(--ink)}.danger{background:#ffe5e5;color:#8a2424}
.wrap{max-width:1180px;margin:auto;padding:22px}.top{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:18px}
.brand{font-weight:950;letter-spacing:.05em}.brand small{display:block;color:var(--muted);font-weight:600}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 20px}.tabs button.active{background:var(--a);color:#fff}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.card{background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:0 12px 28px rgba(17,83,90,.08)}
.c12{grid-column:span 12}.c8{grid-column:span 8}.c6{grid-column:span 6}.c4{grid-column:span 4}.c3{grid-column:span 3}
.field{display:grid;gap:6px;margin:9px 0}.field label{font-size:12px;font-weight:800;color:#385c61}
input,select,textarea{width:100%;padding:11px;border:1px solid var(--line);border-radius:11px;background:#fbfefe}textarea{min-height:88px}
.row{display:flex;gap:10px;align-items:center}.row>*{flex:1}.muted{color:var(--muted)}.metric{font-size:28px;font-weight:900}.pill{display:inline-block;background:#e3f8f5;color:#116f66;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:900}
.list{display:grid;gap:9px}.item{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}.item h4{margin:0 0 4px}.right{text-align:right}
table{width:100%;border-collapse:collapse}th,td{padding:9px;border-bottom:1px solid var(--line);font-size:13px;text-align:left}.table{overflow:auto}
.auth{max-width:460px;margin:10vh auto;background:#fff;padding:26px;border-radius:24px;box-shadow:0 14px 35px rgba(17,83,90,.12)}
.search-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:12px}.product{border:1px solid var(--line);border-radius:14px;padding:12px}.product img{width:100%;height:105px;object-fit:contain;background:#f5faf9;border-radius:10px}
.qrbox{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.qrbox canvas{background:#fff;padding:10px;border-radius:14px}
@media(max-width:800px){.c8,.c6,.c4,.c3{grid-column:span 12}.row{flex-direction:column;align-items:stretch}.top{align-items:flex-start}.wrap{padding:12px}}
.project-cloud-login{max-width:560px;text-align:center;padding:34px}
.project-cloud-logo{width:190px;margin:0 auto 6px}
.project-cloud-logo svg{width:100%;height:auto;display:block;filter:drop-shadow(0 8px 16px rgba(19,120,200,.15))}
.project-cloud-title{font-size:38px;line-height:1;font-weight:950;letter-spacing:-.04em;color:#143c48}
.project-cloud-kicker{margin-top:9px;font-weight:900;color:#0a918f;font-size:15px;letter-spacing:.02em}
.project-cloud-copy{max-width:430px;margin:12px auto 22px;color:var(--muted);line-height:1.55}
.login-divider{display:flex;align-items:center;gap:12px;margin:18px 0 8px;color:#698085;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.09em}
.login-divider:before,.login-divider:after{content:"";height:1px;background:var(--line);flex:1}
.project-cloud-login .field{text-align:left}
.project-cloud-login .row{margin-top:8px}

.product-category-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(240px,2fr) auto;gap:10px;align-items:center}
.product-category-name{font-weight:900}
.product-category-row input{margin:0}
.product-category-row button{white-space:nowrap}
@media(max-width:800px){.product-category-row{grid-template-columns:1fr}.product-category-row button{width:100%}}

/* Circuit-cloud branding */
.circuit-brand{display:flex;align-items:center;gap:12px}.circuit-logo{width:150px;height:auto;overflow:visible;filter:drop-shadow(0 8px 20px rgba(24,167,255,.15))}
.circuit-brand-copy{display:grid;text-align:left;line-height:1}.circuit-brand-copy strong{font-size:26px;color:#073b72;letter-spacing:-.035em}.circuit-brand-copy small{margin-top:7px;color:#0a918f;font-weight:850;letter-spacing:.035em}
.sun-spin{transform-origin:180px 40px;animation:sunRotate 18s linear infinite}.energy-flow{stroke-dasharray:22 155;animation:energyMove 2.4s linear infinite}
@keyframes sunRotate{to{transform:rotate(360deg)}} @keyframes energyMove{from{stroke-dashoffset:177}to{stroke-dashoffset:0}}

.project-cloud-login .circuit-brand{flex-direction:column}.project-cloud-login .circuit-logo{width:270px}.project-cloud-login .circuit-brand-copy{text-align:center}.project-cloud-login .circuit-brand-copy strong{font-size:40px}.project-cloud-login .circuit-brand-copy small{font-size:14px}

.app-header{background:#fff;border:1px solid var(--line);border-radius:20px;padding:12px 16px;margin-bottom:18px;box-shadow:0 10px 24px rgba(17,83,90,.06)}
.app-header-main{display:flex;justify-content:space-between;align-items:center;gap:24px}.header-project-logo .circuit-logo{width:95px}.header-project-logo .circuit-brand-copy strong{font-size:22px}.header-project-logo .circuit-brand-copy small{font-size:11px}
.inti-wordmark{display:grid;text-align:right;line-height:1}.inti-wordmark strong{font-size:29px;letter-spacing:.025em;color:#0a3970}.inti-wordmark strong span{color:#159b9b}.inti-wordmark small{margin-top:6px;font-weight:800;letter-spacing:.22em;color:#204f74;font-size:9px}
.header-menu-row{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:10px;margin-top:10px}.header-menu-row .tabs{margin:0;flex:1}
.menu-wrap{position:relative;flex:0 0 auto}.menu-button{font-size:25px;line-height:1;background:#eef8f7;color:#0b4f61;padding:8px 13px;border-radius:11px}.menu-popover{display:none;position:absolute;right:0;top:46px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:7px;box-shadow:0 12px 26px rgba(0,0,0,.13);min-width:140px;z-index:20}.menu-popover.open{display:block}.menu-item{width:100%;background:#fff;text-align:left;color:#17363b}.menu-item:hover{background:#eef8f7}

/* Public no-login scheduling route */
.public-page{min-height:100vh;background:linear-gradient(180deg,#fff 0%,#effbfb 55%,#fff 100%);color:#133b56}
.public-header{max-width:1120px;margin:auto;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid #d9ece9}
.public-brand-stack{display:grid;gap:5px}.public-brand-stack .circuit-logo{width:105px}.public-brand-stack .circuit-brand-copy strong{font-size:24px}.public-brand-stack .circuit-brand-copy small{font-size:11px}
.public-inti{text-align:left;margin-left:116px;margin-top:-8px}.public-inti strong{font-size:21px}.public-inti small{font-size:7px}
.association-badge{display:flex;align-items:center;gap:10px;border:1px solid #d5e6ee;background:#fff;border-radius:15px;padding:10px 13px;max-width:255px}.association-mark{font-weight:950;color:#07509b;border:2px solid #159bca;border-radius:50%;height:48px;width:48px;display:grid;place-items:center}.association-badge div:last-child{display:grid}.association-badge strong{font-size:13px;color:#0a3970}.association-badge small{font-size:10px;color:#71868e;margin-top:3px}
.public-form-wrap{max-width:950px;margin:0 auto;padding:34px 20px 60px}.public-intro{text-align:center;max-width:720px;margin:0 auto 22px}.public-intro h1{font-size:44px;line-height:1.05;margin:13px 0;color:#073b72}.public-intro p{font-size:17px;color:#617982;line-height:1.5}
.public-form-card{padding:28px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.form-grid .field{margin:5px 0}.form-grid .full{grid-column:1/-1}.checkline{display:flex;align-items:flex-start;gap:9px;margin:9px 0 14px;font-size:13px;color:#385c61}.checkline input{width:auto;margin-top:2px}.public-submit{width:100%;font-size:18px;padding:14px}.public-privacy{text-align:center;margin-top:10px;color:#71868e;font-size:11px}.booking-message{text-align:center;margin-top:12px;font-weight:800}.success-panel{text-align:center;padding:42px 20px}.success-panel h2{font-size:30px;color:#0a7f80}
@media(max-width:760px){.app-header-main,.public-header{align-items:flex-start;flex-direction:column}.header-company{align-self:flex-start}.inti-wordmark{text-align:left}.header-menu-row{align-items:flex-start}.header-menu-row .tabs{display:none}.menu-button{display:block}.public-inti{margin-left:0;margin-top:0}.association-badge{max-width:none;width:100%}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.public-intro h1{font-size:34px}.circuit-brand{align-items:flex-start}.public-brand-stack .circuit-brand{align-items:center}}

/* Theme skins and backgrounds */
body[data-theme="coastal"]{--a:#0aa7a5;--b:#1378c8;--ink:#17363b;--muted:#6b7f83;--card:#fff;--line:#d9ece9}
body[data-theme="cloud"]{--a:#22b8cf;--b:#5d7cff;--ink:#17345c;--muted:#6e7d96;--card:#fff;--line:#dfe7f4}
body[data-theme="ocean"]{--a:#008fa8;--b:#0055a8;--ink:#07375a;--muted:#5c7685;--card:#fff;--line:#d2e9ef}
body[data-theme="night"]{--a:#1cd6ca;--b:#4779ff;--ink:#e8fbff;--muted:#a8c7cf;--card:#10243a;--line:#28465c}
body[data-bg="clean"]{background:linear-gradient(#eefaf9,#fff)}
body[data-bg="water"]{background:radial-gradient(circle at 15% 10%,#d7f7ff 0,transparent 32%),linear-gradient(180deg,#eafcff,#dff6f7 58%,#fff)}
body[data-bg="sky"]{background:radial-gradient(circle at 80% 0,#fff 0,transparent 22%),linear-gradient(180deg,#dff5ff,#f7fcff 55%,#fff)}
body[data-bg="dark"]{background:linear-gradient(135deg,#071522,#0d2a3a 58%,#0b1b2a)}
body[data-theme="night"] .card,body[data-theme="night"] .app-header{background:rgba(16,36,58,.96);color:var(--ink)}
body[data-theme="night"] input,body[data-theme="night"] select,body[data-theme="night"] textarea{background:#0b1c2c;color:#e8fbff;border-color:#28465c}
.menu-label{display:block;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:7px 4px 4px}.menu-popover select{margin-bottom:5px}.menu-sep{height:1px;background:var(--line);margin:8px 0}

.solution-card .primary{width:100%;margin-top:10px}.selected-solution,.quote-line{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center}.quote-line{grid-template-columns:1fr auto}.quote-main h3{margin-top:22px}.summary-box{padding:13px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.55);margin-bottom:10px}.summary-box b{display:block;margin-bottom:6px}.projection{margin-top:12px}.projection summary{cursor:pointer;font-weight:850}.projection-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:9px}.doc-link{display:block;padding:10px 12px;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:var(--b);font-weight:800;margin:-4px 0 12px}.quote-actions{margin-top:16px}.tiny{font-size:11px}.c7{grid-column:span 7}.c5{grid-column:span 5}
@media(max-width:800px){.c7,.c5{grid-column:span 12}.projection-grid{grid-template-columns:1fr}.selected-solution{grid-template-columns:1fr auto}}

.menu-money{display:flex;align-items:center;gap:5px}.menu-money input{min-width:0;padding:8px}.menu-money span{font-weight:850;color:var(--muted)}
.category-slots{gap:12px}.category-slot{display:grid;grid-template-columns:170px minmax(0,1fr);gap:12px 16px;align-items:start}.slot-title{font-weight:950;font-size:15px;padding-top:10px;color:var(--ink)}
.slot-product{display:grid;grid-template-columns:minmax(0,1.7fr) auto minmax(145px,.75fr) minmax(90px,.5fr);gap:12px;align-items:center;min-height:62px}
.slot-product-main{display:flex;gap:10px;align-items:center;min-width:0}.slot-product-main img{width:55px;height:55px;object-fit:contain;border-radius:9px;background:#f7fbfb}
.slot-product-main div{min-width:0}.slot-product-main b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot-product-main small{display:block;color:var(--muted);margin-top:3px}
.slot-price{font-weight:900}.slot-frequency label,.slot-monthly span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:850;margin-bottom:3px}
.slot-frequency select{padding:8px}.slot-monthly b{font-size:16px}.slot-empty{color:var(--muted);padding:15px 0}.slot-search{grid-column:2;display:grid;grid-template-columns:1fr auto;gap:8px}.slot-search input{margin:0}
.annual-card{position:relative}.mini-button{margin-top:8px;padding:6px 9px;border-radius:999px;background:#edf7f7;color:var(--a);font-size:11px}
.mini-popover{display:none;margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--card)}.mini-popover.open{display:block}
.mini-popover label{font-size:11px;font-weight:850;color:var(--muted)}.mini-inline{display:flex;align-items:center;gap:6px;margin-top:5px}.mini-inline input{max-width:90px;padding:7px}
.projection-control-card{padding:20px}.projection-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.projection-head h3{margin:0 0 5px}.projection-head p{margin:0}
.projection-panel{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.projection-panel.hidden{display:none}
.year-chip-row{display:flex;gap:8px;flex-wrap:wrap}.year-chip{background:#eef7f8;color:var(--ink);border:1px solid var(--line)}.year-chip.active{background:linear-gradient(135deg,var(--a),var(--b));color:#fff;border-color:transparent}
.year-reveal{margin-top:14px}.projection-result{display:flex;justify-content:space-between;align-items:end;gap:15px;padding:16px;border-radius:14px;background:rgba(10,167,165,.08)}
.projection-result span{font-weight:850}.projection-result strong{font-size:28px}.projection-breakdown{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;color:var(--muted)}
.projection-assumption{font-size:11px;color:var(--muted);margin-top:8px}.projection-divider{text-align:center;grid-column:span 12}.big-reveal{min-width:220px}
@media(max-width:850px){.category-slot{grid-template-columns:1fr}.slot-search{grid-column:1}.slot-product{grid-template-columns:1fr 1fr}.slot-product-main{grid-column:1/-1}.projection-head{align-items:flex-start;flex-direction:column}}

.laundry-compare .projection-head{margin-bottom:0}.laundry-calc-body{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.laundry-calc-body.hidden{display:none}
.laundry-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 14px}.laundry-results{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:12px}
.laundry-results .item{display:grid;gap:5px}.laundry-results .item span{font-size:11px;color:var(--muted);font-weight:800}.laundry-results .item b{font-size:20px}
@media(max-width:850px){.laundry-grid{grid-template-columns:1fr 1fr}.laundry-results{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.laundry-grid,.laundry-results{grid-template-columns:1fr}}

.menu-check{display:flex;align-items:flex-start;gap:7px;font-size:12px;font-weight:750;color:var(--ink);padding:6px 3px}.menu-check input{width:auto;margin-top:2px}
.water-quality-title{display:flex;align-items:center;gap:14px}.water-quality-title h2{margin:0 0 5px}.water-drop-med{position:relative;width:62px;height:62px;border-radius:50%;background:linear-gradient(135deg,#e8fbff,#dff5f6);border:1px solid var(--line);display:grid;place-items:center;user-select:none;-webkit-user-select:none;touch-action:none}
.drop-shape{font-size:34px;line-height:1}.med-cross{position:absolute;right:8px;bottom:8px;background:#fff;color:#0aa7a5;border:2px solid #0aa7a5;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;font-size:13px;font-weight:950}
.hidden-secret-button{display:none;margin-top:12px}.hidden-secret-button.revealed{display:inline-block}.secret-hint{font-size:11px;color:var(--muted);margin-top:7px;min-height:14px}
.monthly-estimate-note{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.monthly-estimate-note.hidden{display:none}
.solution-price-est span{display:block;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.solution-price-est small{display:block;margin-top:3px}
.solution-price-hidden{font-weight:850;color:var(--muted);padding:14px 0}

.soap-test-card .menu-check{margin-top:10px}
.soap-result-box{margin:10px 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(14,165,164,.06)}
.soap-result-main{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;font-weight:800}
.soap-result-main strong{font-size:28px;color:var(--a)}
.soap-result-text{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.4}
.soap-10x-hold{margin-top:8px;width:100%}
.soap-savings-summary{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:rgba(68,201,157,.08)}
.soap-savings-summary strong{margin-left:auto;color:var(--a)}
.soap-savings-summary.hidden{display:none}

.menu-panel{min-width:min(430px,92vw)}
.menu-tabs{display:flex;gap:5px;overflow:auto;padding-bottom:8px;margin-bottom:10px;border-bottom:1px solid var(--line)}
.menu-tab{border:0;background:transparent;padding:7px 9px;border-radius:8px;font-weight:800;white-space:nowrap;cursor:pointer;color:var(--muted)}
.menu-tab.active{background:rgba(18,167,165,.10);color:var(--ink)}
.menu-tab-panel{display:none}
.menu-tab-panel.active{display:block}
.menu-wide{width:100%;margin-top:8px}
#saveProjectionSettings,#saveSolutionDisplay,.menu-item{
  appearance:none;border:1px solid var(--line);border-radius:10px;padding:10px 12px;
  font-weight:850;cursor:pointer
}
#saveProjectionSettings{border-color:transparent}

.solution-image-wrap{height:220px;border-radius:14px;overflow:hidden;background:rgba(220,235,248,.45);margin:-2px -2px 12px;display:flex;align-items:center;justify-content:center}
.solution-image{width:100%;height:100%;object-fit:contain;display:block}
.quote-line{gap:10px;align-items:center}
.quote-product-thumb{width:56px;height:70px;object-fit:contain;border-radius:8px;background:rgba(220,235,248,.35);flex:0 0 auto}
@media(max-width:700px){.solution-image-wrap{height:190px}}

.logo-upload-group{display:grid;gap:7px}
.logo-upload-group input[type=file]{width:100%;font-size:12px}
.logo-reset{width:100%;margin-bottom:4px}
.custom-logo{display:block;max-width:100%;max-height:92px;width:auto;height:auto;object-fit:contain}
.header-project-logo,.header-company,.header-association{display:flex;align-items:center}
.header-association{margin-left:auto;max-width:170px;justify-content:flex-end}
.header-association:empty{display:none}
.header-company .custom-logo{max-height:62px}
.header-project-logo .custom-logo{max-height:88px}
.header-association .custom-logo{max-height:58px}

/* Projection year selector: one horizontal row, 20-year optional */
.projection-year-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}
.year-chip-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;flex:1}
.year-chip{width:100%;padding:9px 8px;text-align:center;white-space:nowrap}
.year-chip.hidden{display:none}
.year-20-toggle{width:30px;height:30px;padding:0;border-radius:50%;background:#eef7f8;color:var(--ink);border:1px solid var(--line);font-size:20px;line-height:1;display:grid;place-items:center}
.year-20-toggle:hover{background:rgba(10,167,165,.10)}
@media(max-width:560px){
  .year-chip-row{grid-template-columns:repeat(5,minmax(42px,1fr));gap:5px}
  .year-chip{padding:8px 4px;font-size:12px}
  .projection-year-head{gap:6px}
}

/* Product search modal + loading state */
.product-search-overlay,.search-loading-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:1000;padding:5vh;overflow:auto
}
.product-search-dialog{max-width:1000px;margin:auto}
.search-loading-overlay{display:grid;place-items:center}
.search-loading-card{min-width:min(360px,88vw);display:grid;gap:7px;text-align:center}

/* Quote hierarchy: base -> discount-applied -> efficiency-today -> financing */
.pricing-stack{display:grid;gap:10px;margin-top:8px}
.pricing-line{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,.55fr);gap:18px;align-items:end;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.72)}
.pricing-line .field{margin:0}
.pricing-label{display:block;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:5px}
.pricing-value{font-size:28px;font-weight:950}
.discount-applied-line{background:rgba(10,167,165,.06)}
.discount-applied-line .pricing-value{color:var(--a)}
.efficiency-price-section{margin-top:22px;padding:18px;border:2px solid rgba(10,167,165,.22);border-radius:18px;background:linear-gradient(135deg,rgba(10,167,165,.08),rgba(19,120,200,.06))}
.efficiency-price-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.efficiency-price-head h3{margin:0 0 4px;font-size:24px}
.efficiency-discount-field{min-width:150px;margin:0}
.efficiency-final-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.7fr);gap:18px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.efficiency-final-price{display:block;font-size:38px;line-height:1;font-weight:950;color:var(--b)}
.price-until-field{margin:0}
.quote-section-spacer{height:20px}
.quote-savings-band{display:grid;grid-template-columns:minmax(190px,1.2fr) 1fr 1fr;gap:12px;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.quote-savings-band .field{margin:0}
.savings-highlight{border:1px solid var(--line);border-radius:14px;padding:13px 14px;background:rgba(10,167,165,.06);display:grid;align-content:center;gap:4px}
.savings-highlight span{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.savings-highlight strong{font-size:24px;color:var(--a)}
.summary-savings-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}
.summary-savings-grid>div{display:grid;gap:3px}
.summary-savings-grid span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:850}
.summary-savings-grid strong{font-size:18px;color:var(--a)}
.efficiency-summary-box{background:linear-gradient(135deg,rgba(10,167,165,.08),rgba(19,120,200,.06))}
@media(max-width:760px){
  .pricing-line,.efficiency-final-row,.quote-savings-band{grid-template-columns:1fr}
  .efficiency-price-head{flex-direction:column}
  .efficiency-discount-field{width:100%;min-width:0}
  .summary-savings-grid{grid-template-columns:1fr}
}

/* Monthly payment emphasis while keeping total price visible */
.pricing-monthly-value{display:block;font-size:32px;line-height:1.05;font-weight:950;color:var(--a)}
.pricing-total-note{display:block;margin-top:5px;font-size:12px;color:var(--muted);font-weight:750}
.efficiency-total-note{margin-top:7px}
.summary-link-note{display:block;margin-top:7px}
.efficiency-summary-box .metric{font-size:31px;color:var(--b)}

/* Homeowner profile, contact file, and private document vault */
.homeowner-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 14px}
.homeowner-address-field{grid-column:span 3}
.saved-homeowner-summary{display:flex;justify-content:space-between;align-items:center;gap:18px}
.saved-homeowner-summary h2{margin:7px 0 3px}
.saved-homeowner-summary p{margin:0;color:var(--muted)}
.add-homeowner-button{margin:6px 0 10px}
.second-homeowner-fields{margin-top:8px;padding:14px;border:1px dashed var(--line);border-radius:14px}
.second-homeowner-fields.hidden{display:none}
.second-homeowner-fields h4{margin:0 0 8px}
.homeowner-save-row{margin-top:12px}
.contact-list{display:grid;gap:9px;margin-top:14px}
.contact-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;background:#fff;border:1px solid var(--line);padding:14px 16px;text-align:left;color:var(--ink)}
.contact-row>div{display:grid;gap:3px}.contact-row span{color:var(--muted);font-weight:650}.contact-open{white-space:nowrap}
.homeowner-profile-head{display:flex;align-items:center;gap:14px}.homeowner-profile-head h2{margin:0 0 3px}.homeowner-profile-head p{margin:0}
.profile-tabs{display:flex;gap:7px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:14px}
.profile-tab{background:#eef7f8;color:var(--ink)}.profile-tab.active{background:linear-gradient(135deg,var(--a),var(--b));color:#fff}
.contact-tab-panel{display:none}.contact-tab-panel.active{display:block}
.address-card{display:grid;gap:10px}.address-card h3{margin:0 0 4px}
.homeowner-person{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,.8fr) minmax(180px,1fr);gap:10px;padding:11px;border:1px solid var(--line);border-radius:12px}
.saved-quote-card,.document-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}
.saved-quote-card>div,.document-row>div{display:grid;gap:3px}
.secure-document-vault{margin-top:16px;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(19,120,200,.04)}
.secure-document-vault h4{margin:0 0 4px}
.homeowner-login-card{max-width:640px;margin:8vh auto}
.homeowner-portal-wrap{max-width:980px}
.homeowner-portal-card{margin-bottom:18px}.homeowner-portal-title h2{margin:8px 0 4px}
.portal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.portal-documents{margin-top:16px}.portal-documents h3{margin-bottom:9px}
.portal-solutions{display:grid;gap:7px;margin-top:10px}
@media(max-width:800px){
  .homeowner-form-grid{grid-template-columns:1fr 1fr}
  .homeowner-address-field{grid-column:1/-1}
  .portal-grid{grid-template-columns:1fr}
  .homeowner-person{grid-template-columns:1fr}
}
@media(max-width:560px){
  .homeowner-form-grid{grid-template-columns:1fr}
  .saved-homeowner-summary,.homeowner-profile-head{align-items:flex-start;flex-direction:column}
}

/* Encrypted document vault */
.vault-key-panel{margin:12px 0 14px;padding:13px;border:1px solid var(--line);border-radius:13px;background:rgba(10,167,165,.05)}
.vault-key-field{margin-top:0}
.vault-key-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:8px 0}
.vault-key-actions button{font-size:12px;padding:9px 10px}
.document-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.document-row small{font-size:10px;color:var(--muted)}
.secure-document-vault .pill{white-space:nowrap}
@media(max-width:650px){.vault-key-actions{grid-template-columns:1fr}.document-actions{align-items:stretch;flex-direction:column}}

/* Contact notes */
.contact-note-compose{padding:12px;border:1px solid var(--line);border-radius:14px;background:rgba(10,167,165,.04);margin-bottom:12px}
.contact-notes-list{display:grid;gap:9px}
.contact-note{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;white-space:pre-wrap}
.contact-note-date{font-size:10px;font-weight:850;color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.04em}

/* Rep Appointment / Flyer generators */
.generator-wrap{max-width:1240px}
.generator-header{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr) auto;gap:18px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px 16px;margin-bottom:18px;box-shadow:0 10px 24px rgba(17,83,90,.06)}
.builder-project-cloud{background:transparent;padding:0;text-align:left;color:inherit}
.builder-project-cloud .circuit-logo{width:90px}
.builder-project-cloud .circuit-brand-copy strong{font-size:22px}
.builder-project-cloud .circuit-brand-copy small{font-size:10px}
.generator-title h1{margin:7px 0 4px;font-size:30px}.generator-title p{margin:0}
.generator-editor-toggle{justify-self:end;white-space:nowrap}
.generator-main{position:relative}
.generator-preview-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 12px 28px rgba(17,83,90,.08)}
.generator-preview-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}
.generator-preview-toolbar h2{margin:8px 0 5px}.generator-preview-toolbar p{margin:0;color:var(--muted);max-width:720px}
.appointment-preview-form{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}.appointment-preview-form .preview-full{grid-column:1/-1}
.generator-preview-submit{width:100%;margin-top:12px}
.generator-public-link{margin-top:10px;text-align:center;font-size:11px;color:var(--muted);word-break:break-all}
.generator-editor{position:fixed;right:18px;top:18px;bottom:18px;width:min(390px,calc(100vw - 36px));overflow:auto;z-index:80;background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:0 18px 48px rgba(0,0,0,.2)}
.generator-editor.hidden{display:none}
.generator-editor-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:10px}
.generator-editor-head>div{display:grid;gap:3px}.generator-editor-head small{color:var(--muted);font-size:10px}
.generator-editor-section{padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:10px 0}
.flyer-preview{display:grid;justify-items:center}.flyer-preview-sheet{width:min(620px,100%);min-height:760px;padding:38px;border-radius:22px;background:linear-gradient(180deg,#f8feff,#ecfbfb 58%,#fff);border:1px solid #dceef1;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}
.flyer-preview-sheet h1{font-size:42px;line-height:1.05;margin:10px 0 0;color:#073b72}.flyer-preview-sheet h3{font-size:22px;margin:0;color:#0a7f80}.flyer-preview-sheet p{font-size:17px;max-width:480px;color:#607880}
.flyer-preview-brand .custom-logo{max-height:120px}.flyer-preview-brand .circuit-logo{width:180px}
.flyer-note{padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;max-width:480px}
.flyer-preview-sheet canvas{background:#fff;padding:10px;border-radius:14px;margin-top:10px}.flyer-cta{font-size:20px;color:#0a7f80}.flyer-preview-sheet small{color:var(--muted);word-break:break-all}
.generator-preview-actions{margin-top:12px}
@media(max-width:780px){
  .generator-header{grid-template-columns:1fr}.generator-editor-toggle{justify-self:start}
  .generator-preview-toolbar{flex-direction:column}.appointment-preview-form{grid-template-columns:1fr}.appointment-preview-form .preview-full{grid-column:auto}
  .flyer-preview-sheet{padding:24px;min-height:680px}.flyer-preview-sheet h1{font-size:34px}
}

/* Appointment form library + four-step homeowner booking */
.form-library-bar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.4fr) auto;gap:12px;align-items:end;padding:12px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.88);margin-bottom:16px}
.form-library-bar .field{margin:0}.new-form-inline{display:flex;gap:8px}.new-form-inline input{min-width:0}.form-library-bar canvas{width:92px!important;height:92px!important;background:#fff;padding:5px;border-radius:10px}
.appointment-builder-preview{background-size:cover;background-position:center}
.appointment-header-image{margin:0 0 16px;border-radius:16px;overflow:hidden;max-height:260px}.appointment-header-image img{width:100%;height:100%;max-height:260px;object-fit:cover;display:block}
.appointment-form-mock{display:grid;gap:14px}.appointment-mock-intro{text-align:center;padding:6px 8px 14px}.appointment-mock-intro h1{font-size:38px;margin:6px 0}.appointment-mock-intro p{color:var(--muted);max-width:700px;margin:auto}
.appointment-step{display:grid;grid-template-columns:58px minmax(0,1fr);gap:14px;padding:18px 0;border-top:1px solid var(--line)}
.appointment-step-number{font-size:26px;font-weight:950;color:var(--a);letter-spacing:.03em}.appointment-step-body h3{font-size:23px;margin:0 0 3px}.appointment-step-body>p{margin:0 0 14px;color:var(--muted)}
.appointment-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.appointment-span-2{grid-column:1/-1}
.mock-question{margin:16px 0}.mock-question>b{display:block}.mock-question>small{display:block;color:var(--muted);margin:3px 0 8px}
.mock-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.mock-choice-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}
.mock-choice-grid label{border:1px solid var(--line);border-radius:10px;padding:9px;background:#fff;font-size:12px}.mock-choice-grid input{width:auto;margin-right:5px}
.mock-date-title{display:flex;justify-content:space-between;gap:10px;align-items:center}.mock-date-title span{font-size:11px;color:var(--muted)}
.mock-date-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:10px 0 12px}.mock-date-row button{padding:9px 5px;font-size:11px;background:#eef7f8;color:var(--ink)}
.flyer-qr-grid{display:grid;grid-template-columns:1fr;gap:18px;justify-items:center}.flyer-qr-grid.two{grid-template-columns:1fr 1fr;width:100%}.flyer-qr-block{display:grid;justify-items:center;gap:7px}.flyer-qr-block small{max-width:240px}

/* Homeowner-facing appointment form */
.revival-booking-page{min-height:100vh;background-size:cover;background-position:center}
.public-booking-hero{max-width:1120px;margin:0 auto;padding:0 22px}.public-booking-hero img{width:100%;max-height:330px;object-fit:cover;border-radius:0 0 24px 24px;display:block}
.revival-form-wrap{max-width:980px}.revival-form-intro{margin-bottom:18px}.revival-form-intro h1{font-size:46px}.revival-form-card{padding:28px 30px}
.revival-step{display:grid;grid-template-columns:64px minmax(0,1fr);gap:18px;padding:28px 0;border-bottom:1px solid var(--line)}
.revival-step:last-of-type{border-bottom:0}.revival-step-num{font-size:29px;line-height:1;font-weight:950;letter-spacing:.04em;color:var(--a);padding-top:3px}
.revival-step-content h2{font-size:27px;margin:0 0 4px;color:#073b72}.revival-step-content>p{margin:0 0 18px;color:var(--muted);font-size:15px}
.revival-question{margin:20px 0 24px}.revival-question h3{font-size:16px;margin:0 0 3px}.revival-question>p{font-size:12px;color:var(--muted);margin:0 0 9px}
.revival-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.revival-choice-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr))}
.revival-choice{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:12px;padding:11px 12px;background:rgba(255,255,255,.92);font-size:13px;font-weight:750;cursor:pointer}
.revival-choice:hover{background:#f2fbfa}.revival-choice input{width:auto;flex:0 0 auto}
.revival-date-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.revival-date-heading>div{display:grid;gap:3px}.revival-date-heading span{font-size:11px;color:var(--muted)}
.revival-date-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:12px 0 16px}
.revival-date-chip{background:#f4fbfb;color:var(--ink);border:1px solid var(--line);padding:11px 5px;display:grid;gap:3px;min-height:65px}
.revival-date-chip b{font-size:12px}.revival-date-chip span{font-size:11px;color:var(--muted);font-weight:700}.revival-date-chip.active{background:linear-gradient(135deg,var(--a),var(--b));color:#fff;border-color:transparent}.revival-date-chip.active span{color:#fff}
.later-date-block{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.6fr);gap:14px;align-items:end;padding:13px;border:1px dashed var(--line);border-radius:13px;background:rgba(255,255,255,.68)}
.later-date-block>div{display:grid;gap:3px}.later-date-block span{font-size:11px;color:var(--muted)}.revival-time-field{margin-top:14px;max-width:360px}
.revival-submit{margin-top:16px}
@media(max-width:800px){
  .form-library-bar{grid-template-columns:1fr}.new-form-inline{display:grid;grid-template-columns:1fr auto}.form-library-bar canvas{justify-self:start}
  .appointment-step,.revival-step{grid-template-columns:1fr}.appointment-step-number,.revival-step-num{font-size:18px}
  .appointment-grid{grid-template-columns:1fr}.appointment-span-2{grid-column:auto}
  .mock-choice-grid,.revival-choice-grid{grid-template-columns:1fr}.mock-choice-grid.compact,.revival-choice-grid.compact{grid-template-columns:1fr 1fr}
  .mock-date-row,.revival-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .flyer-qr-grid.two{grid-template-columns:1fr}
  .revival-form-card{padding:20px}.revival-form-intro h1{font-size:36px}.later-date-block{grid-template-columns:1fr}
}

/* Appointment visual hero + editable selection controls */
.appointment-visual-hero{
  min-height:255px;border-radius:22px;overflow:hidden;background:linear-gradient(135deg,#0b7fc9,#39b9da);
  background-size:cover;background-position:center;display:flex;align-items:flex-end;padding:30px;margin-bottom:18px;
}
.appointment-visual-copy{max-width:720px;color:#fff;text-shadow:0 2px 12px rgba(0,33,74,.28)}
.appointment-visual-copy>span{display:block;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px}
.appointment-visual-copy h1{font-size:44px;line-height:1;margin:0 0 8px}
.appointment-visual-copy h2{font-size:23px;line-height:1.15;margin:0;font-weight:850}
.public-booking-hero.appointment-visual-hero{max-width:1120px;margin:0 auto 12px;padding:34px 40px;min-height:300px;border-radius:0 0 26px 26px}
.appointment-duration-note{margin-top:12px;padding:11px 13px;border-radius:12px;border:1px solid rgba(193,25,48,.12);background:rgba(255,236,239,.75);color:#7c2734;font-size:12px;line-height:1.45}
.appointment-footer-line{text-align:center;margin-top:18px;color:var(--b);font-weight:900;text-transform:uppercase;letter-spacing:.11em;font-size:11px}
.appointment-project-cloud{display:flex;justify-content:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.appointment-project-cloud .circuit-brand{opacity:.9}.appointment-project-cloud .circuit-logo{width:72px}.appointment-project-cloud .circuit-brand-copy strong{font-size:17px}.appointment-project-cloud .circuit-brand-copy small{font-size:9px}
.public-project-cloud{margin-top:18px}
.option-editor{padding-top:8px}
.option-editor-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.option-editor-list{display:grid;gap:6px}
.option-editor-row{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:6px;align-items:center}
.option-editor-row input{margin:0}
.option-editor-row .delete-option{padding:7px 0;border-radius:9px}
@media(max-width:700px){
  .appointment-visual-hero{min-height:220px;padding:22px}
  .appointment-visual-copy h1{font-size:34px}
  .appointment-visual-copy h2{font-size:19px}
  .public-booking-hero.appointment-visual-hero{padding:26px 22px;min-height:250px}
}

/* Screenshot-style appointment form */
.generator-header-tools{display:flex;align-items:center;gap:9px;justify-content:flex-end;flex-wrap:wrap}
.generator-quick-tools{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.generator-quick-tool{padding:8px 10px;font-size:12px}
.generator-editor-nav{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-bottom:12px}
.generator-editor-nav button{background:#eef7f8;color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:8px;font-weight:850}
.generator-editor-nav button.active{background:linear-gradient(135deg,var(--a),var(--b));color:#fff;border-color:transparent}
.generator-editor-mode{display:none}.generator-editor-mode.active{display:block}
.generator-save-sticky{position:sticky;bottom:0;z-index:2;margin-top:12px;box-shadow:0 -8px 20px rgba(255,255,255,.92)}

.appointment-screenshot-layout,.revival-two-column-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.8fr);gap:14px;align-items:start}
.appointment-left-card,.appointment-right-card{border-radius:18px;background:rgba(255,255,255,.96);border:1px solid var(--form-line,var(--line));padding:14px}
.appointment-right-card{position:sticky;top:14px}
.compact-step{padding:14px 0}
.compact-step:first-child{border-top:0}
.mock-weekday-row,.revival-weekday-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:10px 0}
.mock-weekday-row button,.revival-weekday-chip{padding:9px 5px;font-size:10px;border:1px solid var(--form-line,var(--line));background:var(--form-soft,#f4fbfb);color:var(--form-ink,var(--ink));border-radius:9px;display:grid;gap:2px;min-height:54px;align-content:center}
.revival-weekday-chip b{font-size:10px}.revival-weekday-chip span{font-size:10px;color:var(--muted);font-weight:750}
.revival-weekday-chip.active{background:linear-gradient(135deg,var(--form-a,var(--a)),var(--form-b,var(--b)));color:#fff;border-color:transparent}
.revival-weekday-chip.active span{color:#fff}
.mock-time-grid,.revival-time-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:10px 0 12px}
.mock-time-grid button,.revival-time-chip{padding:10px 5px;border:1px solid color-mix(in srgb,var(--form-a,var(--a)) 48%,white);background:rgba(255,255,255,.9);color:var(--form-b,var(--b));border-radius:8px;font-size:12px;font-weight:850}
.revival-time-chip.active{background:linear-gradient(135deg,var(--form-a,var(--a)),var(--form-b,var(--b)));color:#fff;border-color:transparent}
.revival-time-chip:disabled{opacity:.36;cursor:not-allowed}
.selected-date-field{margin:12px 0}.selected-date-field small{font-size:10px;color:var(--muted)}
.time-heading{margin-top:15px}
.notes-step textarea{min-height:132px}
.casual-note{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:start;border-color:color-mix(in srgb,var(--form-a,var(--a)) 22%,white);background:color-mix(in srgb,var(--form-soft,#eef8f7) 80%,white);color:var(--form-ink,var(--ink))}
.casual-note b{white-space:nowrap;color:var(--form-b,var(--b))}
.public-duration-note{border-color:color-mix(in srgb,var(--form-a,var(--a)) 22%,white);background:color-mix(in srgb,var(--form-soft,#eef8f7) 80%,white);color:var(--form-ink,var(--ink))}
.screenshot-form-wrap{max-width:1120px}
.screenshot-form-wrap .revival-form-intro{text-align:left;margin:0 0 12px}
.screenshot-form-wrap .revival-form-intro h1{font-size:30px;margin-bottom:6px}
.screenshot-form-wrap .revival-form-intro p{font-size:14px;margin:0}
.revival-two-column-layout .revival-form-card{padding:18px}
.revival-two-column-layout .revival-step{grid-template-columns:48px minmax(0,1fr);gap:10px;padding:15px 0}
.revival-two-column-layout .revival-step:first-child{padding-top:0}
.revival-two-column-layout .revival-step-num{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--form-a,var(--a)),var(--form-b,var(--b)));color:#fff;font-size:17px;padding:0}
.revival-two-column-layout .revival-step-content h2{font-size:20px;color:var(--form-ink,#073b72)}
.revival-two-column-layout .revival-step-content>p{font-size:12px;margin-bottom:12px}
.revival-two-column-layout .revival-choice-grid{gap:6px}
.revival-two-column-layout .revival-choice{padding:8px 9px;font-size:11px}
.revival-two-column-layout .revival-question{margin:13px 0 16px}
.revival-right-panel .revival-submit{margin-top:14px}
.public-header-right{display:flex;align-items:center;gap:12px}
.top-project-cloud .circuit-logo{width:60px}.top-project-cloud .circuit-brand-copy strong{font-size:15px}.top-project-cloud .circuit-brand-copy small{font-size:8px}
.top-preview-cloud{justify-content:flex-end;border-top:0;margin-top:0;padding-top:0;margin-bottom:8px}
.uploaded-form-element{max-width:150px;max-height:110px;object-fit:contain;display:block}
.appointment-visual-hero{position:relative}.uploaded-form-element.hero-right{position:absolute;right:28px;bottom:24px;max-width:170px;max-height:130px}
.uploaded-form-element.footer-left{margin:12px auto 0 0}.uploaded-form-element.footer-right{margin:12px 0 0 auto}
.hero-align-center .appointment-visual-copy{text-align:center;margin-inline:auto}.hero-align-right .appointment-visual-copy{text-align:right;margin-left:auto}
.hero-vertical-top{align-items:flex-start}.hero-vertical-center{align-items:center}.hero-vertical-bottom{align-items:flex-end}

/* Appointment skins */
.appointment-skin-coastal{--form-a:#149fe4;--form-b:#0759bd;--form-ink:#063a78;--form-soft:#eef9ff;--form-line:#cce7f7}
.appointment-skin-aqua{--form-a:#0bbfc4;--form-b:#087f9c;--form-ink:#07515f;--form-soft:#ebfbfa;--form-line:#c5eeeb}
.appointment-skin-sunset{--form-a:#ff9d46;--form-b:#d64d78;--form-ink:#6e3455;--form-soft:#fff4ed;--form-line:#f5d8cf}
.appointment-skin-night{--form-a:#32c6e6;--form-b:#4267d8;--form-ink:#e7f8ff;--form-soft:#142c45;--form-line:#36526a;background-color:#0d2034;color:#e7f8ff}
.appointment-skin-night .card,.appointment-skin-night .appointment-left-card,.appointment-skin-night .appointment-right-card,.appointment-skin-night .revival-choice{background:rgba(17,39,60,.96);color:#e7f8ff}
.appointment-skin-night input,.appointment-skin-night select,.appointment-skin-night textarea{background:#0d2034;color:#e7f8ff;border-color:#36526a}
.appointment-skin-night .revival-step-content h2,.appointment-skin-night .screenshot-form-wrap .revival-form-intro h1{color:#e7f8ff}
.appointment-skin-holiday{--form-a:#17844a;--form-b:#b32035;--form-ink:#174c35;--form-soft:#f1faf4;--form-line:#cfe8d8}

@media(max-width:900px){
  .appointment-screenshot-layout,.revival-two-column-layout{grid-template-columns:1fr}
  .appointment-right-card{position:static}
  .generator-header-tools{justify-content:flex-start}
}
@media(max-width:620px){
  .mock-weekday-row,.revival-weekday-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mock-time-grid,.revival-time-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .casual-note{grid-template-columns:1fr}
  .revival-two-column-layout .revival-step{grid-template-columns:1fr}
  .revival-two-column-layout .revival-step-num{width:34px;height:34px}
  .public-header-right{width:100%;align-items:flex-start;flex-direction:column}
}

/* Built-in Water Revival appointment templates */
.appointment-preset-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 16px}
.appointment-preset-card{display:grid;grid-template-columns:82px minmax(0,1fr);gap:10px;align-items:center;text-align:left;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:9px}
.appointment-preset-card img{width:82px;height:104px;object-fit:cover;border-radius:9px;border:1px solid var(--line);background:#f7fbfc}
.appointment-preset-card span{display:grid;gap:4px}.appointment-preset-card small{color:var(--muted)}
.appointment-preset-card.active{outline:2px solid var(--a);background:rgba(10,167,165,.05)}
.template-reference{margin:0 0 16px;border:1px solid var(--line);border-radius:12px;padding:10px;background:rgba(255,255,255,.82)}
.template-reference summary{cursor:pointer;font-weight:850;color:var(--b)}
.template-reference img{display:block;width:min(360px,100%);height:auto;margin:10px auto 0;border-radius:12px;border:1px solid var(--line)}
.new-form-inline{grid-template-columns:minmax(0,1fr) 76px auto}

/* V2 centered template */
.centered-layout{grid-template-columns:1fr!important;max-width:690px;margin-left:auto;margin-right:auto;background:rgba(255,255,255,.96);border:1px solid var(--form-line,var(--line));border-radius:20px;padding:16px;box-shadow:0 12px 28px rgba(17,83,90,.08)}
.centered-layout .appointment-left-card,.centered-layout .appointment-right-card,
.centered-layout .revival-left-panel,.centered-layout .revival-right-panel{position:static;background:transparent;border:0;box-shadow:none;padding:0;border-radius:0}
.centered-layout .appointment-right-card,.centered-layout .revival-right-panel{margin-top:0}
.centered-layout .appointment-step,.centered-layout .revival-step{border-top:1px solid var(--form-line,var(--line));border-bottom:0}
.centered-layout .appointment-left-card .appointment-step:first-child,
.centered-layout .revival-left-panel .revival-step:first-child{border-top:0}
.centered-layout .appointment-mock-intro,.centered-layout + .appointment-mock-intro{text-align:left}
@media(max-width:700px){
  .appointment-preset-grid{grid-template-columns:1fr}
  .appointment-preset-card{grid-template-columns:70px 1fr}
  .appointment-preset-card img{width:70px;height:90px}
}

/* Import-ready appointment / flyer tools */
.import-panel{padding:12px;border:1px solid var(--line);border-radius:14px;background:rgba(10,167,165,.045);margin-bottom:12px}
.import-panel>.muted{margin-top:5px}
.imported-flyer-canvas{position:relative;width:min(720px,100%);margin:0 auto;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 12px 28px rgba(17,83,90,.08)}
.imported-flyer-image{display:block;width:100%;height:auto}
.imported-flyer-qr,.imported-flyer-info-qr{position:absolute;display:grid;justify-items:center;gap:4px;background:rgba(255,255,255,.92);padding:9px;border-radius:12px;box-shadow:0 8px 18px rgba(0,0,0,.14)}
.imported-flyer-qr canvas,.imported-flyer-info-qr canvas{display:block;max-width:100%;height:auto!important}
.imported-flyer-qr b,.imported-flyer-info-qr b{font-size:11px;color:#063a78}
.imported-flyer-qr.bottom-left{left:4%;bottom:5%}
.imported-flyer-qr.bottom-center{left:50%;bottom:5%;transform:translateX(-50%)}
.imported-flyer-qr.bottom-right{right:4%;bottom:5%}
.imported-flyer-qr.center{left:50%;top:50%;transform:translate(-50%,-50%)}
.imported-flyer-info-qr{right:4%;top:5%}
@media(max-width:650px){
  .imported-flyer-qr,.imported-flyer-info-qr{padding:6px}
  .imported-flyer-qr b,.imported-flyer-info-qr b{font-size:9px}
}

.generator-preview-actions-inline{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.generator-quick-save{min-width:78px}
@media(max-width:700px){.generator-preview-actions-inline{justify-content:flex-start}}

/* Layered appointment header / hero / footer */
.appointment-brand-header{
  width:min(1120px,calc(100% - 32px));
  margin:14px auto 12px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  border:1px solid rgba(7,89,189,.14);
  border-radius:18px;
  overflow:hidden;
  background:rgba(255,255,255,.94);
  box-shadow:0 10px 24px rgba(17,83,90,.08);
}
.appointment-brand-slot{
  min-height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px 20px;
  position:relative;
}
.appointment-brand-slot + .appointment-brand-slot{border-left:1px solid rgba(7,89,189,.12)}
.appointment-brand-slot>img{display:block;max-width:100%;max-height:91px;object-fit:contain}
.appointment-brand-slot .custom-logo{max-width:100%;max-height:91px}
.appointment-brand-slot .circuit-logo{width:91px}
.appointment-brand-slot .circuit-brand-copy strong{font-size:23px}
.appointment-brand-slot .circuit-brand-copy small{font-size:12px}
.compact-association{box-shadow:none;background:transparent;padding:4px 8px}
.public-top-project-cloud{max-width:1120px;margin:0 auto 8px;display:flex;justify-content:flex-end;padding:0 18px}

.appointment-visual-hero.no-image{
  background:transparent!important;
  box-shadow:none;
}
.appointment-visual-hero.no-image .appointment-visual-copy{
  color:var(--form-ink,#063a78);
  text-shadow:none;
}
.appointment-visual-hero.hero-mode-full{
  border-radius:0;
}
.public-booking-hero.hero-mode-full{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
  min-height:360px;
  padding-left:max(34px,calc((100vw - 1120px)/2 + 34px));
  padding-right:max(34px,calc((100vw - 1120px)/2 + 34px));
}
.appointment-builder-preview .hero-mode-full{
  margin-left:-22px;
  margin-right:-22px;
  width:calc(100% + 44px);
}
.appointment-visual-hero.has-image{
  background-size:cover;
  background-position:center;
}

.appointment-footer-layer{
  position:relative;
  margin-top:18px;
  min-height:118px;
  padding:24px 22px;
  border-radius:18px;
  overflow:hidden;
  display:grid;
  align-content:center;
  justify-items:center;
  gap:10px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.appointment-footer-layer.transparent-layer{
  background:transparent;
  min-height:auto;
  padding-top:16px;
  padding-bottom:16px;
}
.appointment-footer-layer.has-image{
  min-height:170px;
}
.appointment-footer-layer .appointment-footer-line,
.appointment-footer-layer .appointment-project-cloud,
.appointment-footer-layer .uploaded-form-element{
  position:relative;
  z-index:2;
}
.appointment-footer-layer.has-image .appointment-footer-line{
  padding:6px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.76);
}
.appointment-footer-layer.has-image .appointment-project-cloud{
  border-top:0;
  padding-top:0;
  margin-top:0;
  background:rgba(255,255,255,.72);
  border-radius:12px;
  padding:7px 12px;
}
@media(max-width:760px){
  .appointment-brand-header{grid-template-columns:1fr;width:min(100% - 20px,680px)}
  .appointment-brand-slot{min-height:96px}
  .appointment-brand-slot + .appointment-brand-slot{border-left:0;border-top:1px solid rgba(7,89,189,.12)}
  .public-booking-hero.hero-mode-full{min-height:280px;padding-left:22px;padding-right:22px}
}

/* Homeowner-faithful builder preview */
.appointment-builder-preview{
  background:#fff;
}
.appointment-homeowner-preview-stage{
  position:relative;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background-color:transparent;
  background-repeat:no-repeat;
  background-position:top center;
  background-size:100% auto;
  padding:0 0 18px;
  margin-top:10px;
}
.appointment-homeowner-preview-stage .appointment-brand-header{
  margin-top:16px;
}
.appointment-homeowner-preview-stage .appointment-mock-intro,
.appointment-homeowner-preview-stage .appointment-screenshot-layout{
  margin-left:22px;
  margin-right:22px;
}
.appointment-homeowner-preview-stage .hero-mode-contained{
  margin-left:22px;
  margin-right:22px;
  width:auto;
}
.appointment-homeowner-preview-stage .hero-mode-full{
  margin-left:0;
  margin-right:0;
  width:100%;
  border-radius:0;
}
.appointment-homeowner-preview-stage .appointment-footer-layer{
  width:100%;
  margin-left:0;
  margin-right:0;
  border-radius:0;
}
.appointment-homeowner-preview-stage .appointment-footer-layer.transparent-layer{
  background:transparent;
}

/* Public footer truly spans the page */
.revival-booking-page .screenshot-form-wrap > .appointment-footer-layer{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  border-radius:0;
}
.revival-booking-page .screenshot-form-wrap > .appointment-footer-layer.transparent-layer{
  background:transparent;
}

/* Full-width hero bridges header and form */
.public-booking-hero.hero-mode-full{
  width:100%;
  max-width:none;
  margin-left:0;
  margin-right:0;
  border-radius:0;
}
.public-booking-hero.hero-mode-contained{
  width:min(1120px,calc(100% - 32px));
}

/* Transparent hero lets the page background show through */
.appointment-visual-hero.no-image{
  background:transparent!important;
  box-shadow:none!important;
}
.appointment-visual-hero.no-image .appointment-visual-copy{
  color:var(--form-ink,#063a78);
  text-shadow:none;
}
@media(max-width:760px){
  .appointment-homeowner-preview-stage .appointment-mock-intro,
  .appointment-homeowner-preview-stage .appointment-screenshot-layout,
  .appointment-homeowner-preview-stage .hero-mode-contained{
    margin-left:10px;
    margin-right:10px;
  }
}

/* V1/V2 layout refinements */
.revival-booking-page{
  width:100%;
  max-width:none;
  min-height:100vh;
  margin:0;
  overflow-x:hidden;
  background-color:#eafaff;
}

/* In the builder, the homeowner canvas touches the preview edges so the background surrounds the form. */
.appointment-builder-preview .appointment-homeowner-preview-stage{
  margin-left:-22px;
  margin-right:-22px;
  width:calc(100% + 44px);
  border-left:0;
  border-right:0;
  border-radius:0;
}

/* V2 is always a true centered single-column form, even if an older saved
   config is missing the centered-layout flag. */
.appointment-homeowner-preview-stage.appointment-preset-water-revival-v2 .appointment-screenshot-layout,
.revival-booking-page.appointment-preset-water-revival-v2 .revival-two-column-layout{
  grid-template-columns:1fr!important;
  width:min(700px,calc(100% - 40px));
  max-width:700px;
  margin-left:auto!important;
  margin-right:auto!important;
}
.appointment-homeowner-preview-stage.appointment-preset-water-revival-v2 .appointment-left-card,
.appointment-homeowner-preview-stage.appointment-preset-water-revival-v2 .appointment-right-card,
.revival-booking-page.appointment-preset-water-revival-v2 .revival-left-panel,
.revival-booking-page.appointment-preset-water-revival-v2 .revival-right-panel{
  position:static;
}
.appointment-homeowner-preview-stage.appointment-preset-water-revival-v2 .appointment-mock-intro,
.revival-booking-page.appointment-preset-water-revival-v2 .revival-form-intro{
  width:min(700px,calc(100% - 40px));
  max-width:700px;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* V1 form itself is 30% narrower than the previous 1040px desktop width,
   leaving substantially more of the selected background visible around it. */
.appointment-homeowner-preview-stage.appointment-preset-water-revival-v1 .appointment-screenshot-layout.split-layout,
.revival-booking-page.appointment-preset-water-revival-v1 .revival-two-column-layout.split-layout{
  width:min(728px,calc(100% - 48px));
  max-width:728px;
  margin-left:auto!important;
  margin-right:auto!important;
}
.appointment-homeowner-preview-stage.appointment-preset-water-revival-v1 .appointment-mock-intro,
.revival-booking-page.appointment-preset-water-revival-v1 .revival-form-intro{
  width:min(728px,calc(100% - 48px));
  max-width:728px;
  margin-left:auto!important;
  margin-right:auto!important;
}

@media(max-width:900px){
  .appointment-builder-preview .appointment-homeowner-preview-stage{
    margin-left:-12px;
    margin-right:-12px;
    width:calc(100% + 24px);
  }
  .appointment-homeowner-preview-stage.appointment-preset-water-revival-v1 .appointment-screenshot-layout.split-layout,
  .revival-booking-page.appointment-preset-water-revival-v1 .revival-two-column-layout.split-layout,
  .appointment-homeowner-preview-stage.appointment-preset-water-revival-v2 .appointment-screenshot-layout.centered-layout,
  .revival-booking-page.appointment-preset-water-revival-v2 .revival-two-column-layout.centered-layout{
    width:calc(100% - 20px);
  }
}


/* Campaign flyer inherits the selected appointment form artwork and prints cleanly. */
.campaign-flyer-sheet{
  justify-content:flex-start;
  overflow:hidden;
  position:relative;
  background-color:#effcff;
  background-size:cover;
  background-position:center;
}
.flyer-campaign-header{width:100%}
.campaign-flyer-sheet .appointment-brand-header{
  width:100%;
  margin:0 0 14px;
  border-radius:16px;
}
.campaign-flyer-sheet .appointment-brand-slot{
  min-height:76px;
  padding:8px 12px;
}
.campaign-flyer-sheet .appointment-brand-slot>img,
.campaign-flyer-sheet .appointment-brand-slot .custom-logo{max-height:56px}
.campaign-flyer-sheet .appointment-brand-slot .circuit-logo{width:56px}
.campaign-flyer-sheet .appointment-brand-slot .circuit-brand-copy strong{font-size:15px}
.campaign-flyer-sheet .appointment-brand-slot .circuit-brand-copy small{font-size:8px}
.flyer-campaign-hero{
  width:100%;
  min-height:210px;
  border-radius:18px;
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:flex-end;
  text-align:left;
  padding:24px;
  color:#fff;
  box-shadow:0 10px 26px rgba(0,0,0,.12);
}
.flyer-campaign-hero>div{display:grid;gap:6px;max-width:80%;text-shadow:0 2px 10px rgba(0,0,0,.45)}
.flyer-campaign-hero span{font-weight:850;font-size:14px}
.flyer-campaign-hero strong{font-size:30px;line-height:1.05}
.flyer-campaign-copy{display:grid;justify-items:center;gap:10px;padding:12px 0 2px}
.homeowner-qr-block{padding:12px 16px;border-radius:16px;background:rgba(255,255,255,.86);box-shadow:0 8px 20px rgba(7,59,114,.08)}
.flyer-qr-block em{font-style:normal;font-size:11px;font-weight:800;color:#0a918f}
.flyer-preview-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.flyer-homeowner-target{display:grid;gap:4px;padding:9px 10px;margin-top:8px;border-radius:10px;background:#eef9ff;border:1px solid #cfe7f5}
.flyer-homeowner-target b{font-size:11px;color:#063a78}
.flyer-homeowner-target span{font-size:10px;word-break:break-all;color:var(--muted)}
@media(max-width:700px){
  .campaign-flyer-sheet .appointment-brand-header{grid-template-columns:repeat(3,minmax(0,1fr))}
  .campaign-flyer-sheet .appointment-brand-slot{min-height:64px;padding:6px}
  .campaign-flyer-sheet .appointment-brand-slot + .appointment-brand-slot{border-top:0;border-left:1px solid rgba(7,89,189,.12)}
  .flyer-campaign-hero{min-height:170px;padding:18px}
  .flyer-campaign-hero strong{font-size:24px}
}
@page{size:Letter;margin:.25in}
@media print{
  body.printing-flyer{background:#fff!important}
  body.printing-flyer .generator-header,
  body.printing-flyer .generator-editor,
  body.printing-flyer .generator-preview-actions,
  body.printing-flyer .generator-public-link{display:none!important}
  body.printing-flyer .wrap,
  body.printing-flyer .generator-wrap,
  body.printing-flyer .generator-main{max-width:none!important;width:100%!important;margin:0!important;padding:0!important}
  body.printing-flyer .generator-preview-card{border:0!important;box-shadow:none!important;padding:0!important;background:#fff!important}
  body.printing-flyer .flyer-preview-sheet,
  body.printing-flyer .imported-flyer-canvas{
    width:8in!important;
    max-width:8in!important;
    min-height:10.5in!important;
    margin:0 auto!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
}


/* Flyer visual browser — styles -> saved thumbnails -> workspace */
.flyer-preview{display:grid;justify-items:stretch}
.flyer-browser{width:100%;display:grid;gap:18px;margin-bottom:24px}
.flyer-browser-section{display:grid;gap:11px}
.flyer-browser-heading{display:flex;justify-content:space-between;gap:18px;align-items:end}
.flyer-browser-heading h2{margin:7px 0 0;font-size:22px}
.flyer-browser-heading small{color:var(--muted);max-width:430px;text-align:right}
.flyer-style-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px}
.flyer-style-card{min-height:105px;background:#f7fbfb;border:1px solid var(--line);display:grid;justify-items:center;align-content:center;gap:6px;color:var(--ink);transition:.18s ease}
.flyer-style-card:hover{transform:translateY(-2px);box-shadow:0 9px 20px rgba(17,83,90,.08)}
.flyer-style-card.active{background:#e8f8f7;border:2px solid var(--a);box-shadow:0 0 0 3px rgba(10,167,165,.08)}
.flyer-style-icon{font-size:29px;line-height:1;color:var(--b)}
.flyer-style-card strong{font-size:13px}
.flyer-style-card small{font-size:10px;color:var(--muted)}
.flyer-gallery-rail{display:flex;gap:12px;overflow-x:auto;padding:3px 2px 10px;scroll-snap-type:x proximity}
.flyer-gallery-card{flex:0 0 180px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:16px;text-align:left;color:var(--ink);scroll-snap-align:start;display:grid;gap:8px}
.flyer-gallery-card.active{border:2px solid var(--a);box-shadow:0 0 0 3px rgba(10,167,165,.08)}
.flyer-thumb{width:100%;aspect-ratio:4.25/5.5;border-radius:11px;overflow:hidden;background:#eef8f7;border:1px solid #dbecea;display:grid}
.flyer-thumb>img{width:100%;height:100%;object-fit:cover;display:block}
.flyer-thumb-generated,.flyer-thumb-placeholder{padding:13px;display:grid;align-content:center;justify-items:center;text-align:center;gap:8px;background:linear-gradient(180deg,#eefcff,#fff)}
.flyer-thumb-generated span,.flyer-thumb-placeholder span{font-size:9px;font-weight:900;color:var(--a);text-transform:uppercase;letter-spacing:.06em}
.flyer-thumb-generated strong,.flyer-thumb-placeholder strong{font-size:17px;line-height:1.05;color:#073b72}
.flyer-thumb-generated small,.flyer-thumb-placeholder small{font-size:10px;color:var(--muted)}
.flyer-thumb-generated em{width:40px;height:40px;background:#fff;border:5px double #073b72;display:grid;place-items:center;font-style:normal;font-size:8px;color:#073b72}
.flyer-gallery-copy{display:grid;gap:2px;padding:0 3px 3px}
.flyer-gallery-copy strong{font-size:12px;line-height:1.2}
.flyer-gallery-copy small{font-size:10px;color:var(--muted)}
.flyer-gallery-copy em{font-size:10px;color:var(--a);font-style:normal;font-weight:900}
.flyer-gallery-empty{min-height:155px;width:100%;border:1px dashed var(--line);border-radius:16px;display:grid;place-items:center;align-content:center;gap:5px;color:var(--muted);background:#fbfefe}
.flyer-gallery-empty strong{color:var(--ink)}
.flyer-selected-summary{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#f7fbfb}
.flyer-selected-summary>div{display:grid;gap:3px}
.flyer-selected-summary>div strong{font-size:15px}
.flyer-selected-summary>div small,.flyer-selected-summary>span{font-size:10px;color:var(--muted)}
.flyer-workspace-heading{text-align:center;margin:4px 0 15px}
.flyer-workspace-heading h2{margin:7px 0 3px;font-size:25px}
.flyer-workspace-heading p{margin:0}
.flyer-artwork-placeholder{position:relative;width:min(620px,100%);aspect-ratio:4.25/5.5;margin:0 auto;border:1px dashed #b7dcd8;border-radius:18px;background:linear-gradient(180deg,#eafaff,#fff);display:grid;place-items:center;overflow:hidden}
.flyer-artwork-placeholder-copy{max-width:390px;text-align:center;padding:34px}
.flyer-artwork-placeholder-copy h2{font-size:30px;color:#073b72;margin:10px 0}
.flyer-artwork-placeholder-copy p{color:var(--muted);line-height:1.5}
.imported-flyer-qr.top-left{left:4%;top:5%}
.imported-flyer-qr.top-center{left:50%;top:5%;transform:translateX(-50%)}
.imported-flyer-qr.top-right{right:4%;top:5%}
@media(max-width:980px){.flyer-style-grid{grid-template-columns:repeat(3,minmax(120px,1fr))}}
@media(max-width:650px){
  .flyer-style-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .flyer-browser-heading,.flyer-selected-summary{align-items:flex-start;flex-direction:column}
  .flyer-browser-heading small{text-align:left}
  .flyer-gallery-card{flex-basis:148px}
}
@media print{
  body.printing-flyer .flyer-browser,
  body.printing-flyer .flyer-workspace-heading{display:none!important}
}

.flyer-browser-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.flyer-browser-actions small{max-width:340px}
.flyer-browser-actions button{white-space:nowrap}
@media(max-width:650px){.flyer-browser-actions{justify-content:flex-start}.flyer-browser-actions small{max-width:none}}

.flyer-drop-card{
  min-height:246px;
  border:2px dashed #95cfca;
  background:linear-gradient(180deg,#f7fffe,#eefaf9);
  display:grid;
  place-items:center;
  align-content:center;
  text-align:center;
  gap:9px;
}
.flyer-drop-card:hover,.flyer-drop-card.dragging{
  border-color:var(--a);
  background:#e7f9f7;
  box-shadow:0 0 0 4px rgba(10,167,165,.08);
}
.flyer-drop-icon{
  width:54px;height:54px;border-radius:999px;
  display:grid;place-items:center;
  font-size:34px;line-height:1;
  color:#fff;background:linear-gradient(135deg,var(--a),var(--b));
}
.flyer-drop-card strong{font-size:14px;color:#073b72}
.flyer-drop-card small{max-width:140px;font-size:10px;color:var(--muted);line-height:1.4}
.flyer-direct-import-msg{width:100%;min-height:16px;margin-top:2px}

/* Imported flyer QR: QR only, no extra CTA mask */
.imported-flyer-canvas .imported-flyer-qr,
.flyer-artwork-placeholder .imported-flyer-qr{
  background:transparent;
  padding:0;
  border-radius:0;
  box-shadow:none;
  gap:0;
}
.imported-flyer-canvas .imported-flyer-qr canvas,
.flyer-artwork-placeholder .imported-flyer-qr canvas{
  margin:0;
  border-radius:0;
}

/* Live appointment + follow-up schedule */
.schedule-page{display:grid;gap:16px}.schedule-page-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.schedule-page-head h2{margin:7px 0 3px}.schedule-toolbar{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:15px;background:#f8fcfc}.schedule-view-tabs{display:flex;gap:6px}.schedule-view-tabs button.active{background:var(--a);color:#fff}.schedule-week-nav{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}.schedule-week-nav strong{min-width:170px;text-align:center}.schedule-rule{font-size:11px;color:var(--muted);text-align:right}
.schedule-week-list{display:grid;gap:13px}.schedule-day-group{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.schedule-day-group>header{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;background:#f1faf9;border-bottom:1px solid var(--line)}.schedule-day-group>header h3{margin:0;font-size:17px}.schedule-day-items{display:grid}.schedule-empty-day{padding:17px;color:var(--muted);font-size:12px}.schedule-entry{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:15px;align-items:center;padding:14px;border-bottom:1px solid #edf4f3}.schedule-entry-time{font-weight:950;font-size:16px;color:#073b72}.schedule-entry-main{display:grid;gap:3px}.schedule-entry-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.schedule-address{font-size:12px;color:#506b70}.schedule-phone{font-size:12px;color:var(--b);font-weight:850;text-decoration:none}.schedule-type-pill{font-size:9px;font-weight:950;padding:4px 7px;border-radius:999px}.schedule-type-pill.appointment{background:#e3f8f5;color:#116f66}.schedule-type-pill.followup{background:#eef1ff;color:#4258a8}
.schedule-entry-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.schedule-alerts{position:relative}.schedule-alerts summary{cursor:pointer;font-size:11px;font-weight:900;padding:8px 10px;border-radius:10px;background:#eef6f5}.schedule-alerts>div{position:absolute;right:0;top:calc(100% + 6px);z-index:20;width:270px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 12px 28px rgba(0,0,0,.14);display:grid;gap:8px}.schedule-alerts label{display:grid;grid-template-columns:58px 1fr;gap:8px;align-items:center;font-size:11px;font-weight:800}.schedule-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.schedule-calendar-day{min-height:250px;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.schedule-calendar-day>header{padding:10px;border-bottom:1px solid var(--line);background:#f5fbfb;display:grid}.schedule-entry.compact{display:grid;grid-template-columns:1fr;gap:4px;padding:9px;border-bottom:1px solid #edf4f3}.schedule-entry.compact .schedule-entry-time{font-size:12px}.schedule-entry.compact .schedule-address,.schedule-entry.compact .schedule-phone{font-size:9px}
.schedule-new-pair{display:flex;gap:8px}.schedule-form-chooser{display:grid;gap:18px}.schedule-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.schedule-form-card{display:grid;grid-template-columns:90px 1fr;gap:12px;align-items:center;padding:10px;background:#fff;border:1px solid var(--line);color:var(--ink);text-align:left}.schedule-form-card img,.schedule-form-placeholder{width:90px;height:112px;border-radius:10px;object-fit:cover;background:#eef8f7;border:1px solid var(--line)}.schedule-form-placeholder{display:grid;place-items:center;font-weight:950;color:var(--b)}
@media(max-width:1000px){.schedule-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-toolbar{grid-template-columns:1fr}.schedule-rule{text-align:left}}@media(max-width:720px){.schedule-page-head{align-items:flex-start;flex-direction:column}.schedule-entry{grid-template-columns:76px 1fr}.schedule-entry-actions{grid-column:1/-1;justify-content:flex-start}.schedule-calendar-grid{grid-template-columns:1fr}.schedule-calendar-day{min-height:auto}}

/* Appointment hub consolidation */
.schedule-primary-actions{display:grid;gap:7px;min-width:170px}
.schedule-primary-actions button{width:100%}
.schedule-filter-stack{display:grid;gap:7px}
.schedule-type-tabs{display:flex;gap:6px;flex-wrap:wrap}
.schedule-type-tabs button{background:#eef6f5;color:var(--ink)}
.schedule-type-tabs button.active{background:#073b72;color:#fff}
@media(max-width:720px){
  .schedule-primary-actions{width:100%}
}

/* Embedded homeowner appointment form */
body.schedule-embed-open{overflow:hidden}
.schedule-embed-modal{position:fixed;inset:0;z-index:140;background:rgba(7,34,56,.58);padding:20px;display:grid;place-items:center}
.schedule-embed-shell{width:min(1180px,96vw);height:min(900px,94vh);background:#fff;border-radius:20px;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.32);display:grid;grid-template-rows:auto 1fr}
.schedule-embed-head{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 15px;border-bottom:1px solid var(--line);background:#f8fcfc}
.schedule-embed-head>div:first-child{display:flex;align-items:center;gap:10px}.schedule-embed-head strong{font-size:16px}
.schedule-embed-actions{display:flex;gap:8px;align-items:center}.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border-radius:12px;padding:10px 14px;font-weight:800}
.schedule-embed-shell iframe{width:100%;height:100%;border:0;background:#eafaff}
@media(max-width:720px){
  .schedule-embed-modal{padding:0}
  .schedule-embed-shell{width:100vw;height:100vh;max-width:none;max-height:none;border-radius:0}
  .schedule-embed-head{align-items:flex-start}
  .schedule-embed-actions{flex-direction:column;align-items:stretch}
  .schedule-embed-actions>*{font-size:11px;padding:8px 10px}
}


/* Project Cloud login -> molecule directory entrance */
.project-cloud-login-screen{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
}
.project-cloud-login-screen .project-cloud-login{
  width:min(560px,100%);
  margin:0;
}
.project-cloud-portal{
  width:min(1380px,calc(100% - 40px));
  min-height:100vh;
  margin:0 auto;
  padding:42px 18px;
  display:grid;
  grid-template-columns:minmax(310px,.72fr) minmax(520px,1.28fr);
  gap:clamp(34px,6vw,92px);
  align-items:center;
  overflow:hidden;
}
.project-cloud-account-panel{
  position:relative;
  z-index:3;
  display:grid;
  justify-items:center;
  align-content:center;
  text-align:center;
  min-height:520px;
  padding:32px 26px;
  border:1px solid rgba(19,120,200,.13);
  border-radius:30px;
  background:rgba(255,255,255,.88);
  box-shadow:0 22px 55px rgba(17,83,90,.12);
  backdrop-filter:blur(12px);
  transition:transform .78s cubic-bezier(.2,.85,.2,1),opacity .35s ease;
}
.portal-cloud-logo .circuit-brand{flex-direction:column;justify-content:center}
.portal-cloud-logo .circuit-logo{width:min(290px,72vw)}
.portal-cloud-logo .circuit-brand-copy{text-align:center}
.portal-cloud-logo .circuit-brand-copy strong{font-size:40px}
.portal-cloud-logo .circuit-brand-copy small{font-size:13px}
.portal-account-copy{max-width:310px;margin-top:10px}
.portal-account-copy h1{font-size:34px;margin:12px 0 6px;color:#073b72}
.portal-account-copy p{margin:0 0 12px;word-break:break-word}
.portal-account-copy small{display:block;color:var(--muted);line-height:1.5}
.portal-signout{margin-top:22px;min-width:120px}

.project-cloud-directory-panel{
  min-width:0;
  opacity:1;
  transition:opacity .35s ease .28s,transform .55s cubic-bezier(.2,.8,.2,1) .2s;
}
.portal-directory-heading{margin-bottom:22px}
.portal-directory-heading h2{font-size:clamp(30px,4vw,48px);line-height:1.02;margin:11px 0 8px;color:#073b72;letter-spacing:-.035em}
.portal-directory-heading p{max-width:660px;margin:0;color:var(--muted);line-height:1.5}
.portal-directory-list{display:grid;gap:11px;align-items:start}

.portal-directory-item{
  --dock-delay:calc(.72s + (var(--i) * .15s));
  position:relative;
  width:100%;
  min-height:66px;
  padding:5px 16px 5px 5px;
  display:flex;
  align-items:center;
  gap:14px;
  text-align:left;
  color:var(--ink);
  border:1px solid rgba(19,120,200,.12);
  border-radius:999px;
  background:rgba(255,255,255,.91);
  box-shadow:0 9px 24px rgba(17,83,90,.08);
  overflow:hidden;
  transform-origin:left center;
}
.portal-directory-item:hover{
  transform:translateY(-1px);
  box-shadow:0 13px 28px rgba(17,83,90,.13);
}
.portal-molecule{
  position:relative;
  width:54px;
  height:54px;
  flex:0 0 54px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 32% 28%,rgba(255,255,255,.98) 0 8%,rgba(255,255,255,.2) 9% 18%,transparent 19%),
    linear-gradient(145deg,#47d8e9,#3a83df);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.5),0 5px 15px rgba(20,132,193,.23);
}
.portal-molecule:before,
.portal-molecule:after{
  content:"";
  position:absolute;
  width:13px;height:13px;border-radius:50%;
  background:rgba(230,250,255,.96);
  box-shadow:0 2px 6px rgba(7,59,114,.18);
}
.portal-molecule:before{right:4px;top:5px}
.portal-molecule:after{left:7px;bottom:5px;width:10px;height:10px}
.portal-molecule span{
  position:absolute;
  width:17px;height:2px;border-radius:99px;
  background:rgba(255,255,255,.82);
  transform-origin:left center;
}
.portal-molecule span:first-child{right:8px;top:22px;transform:rotate(-40deg)}
.portal-molecule span:last-child{left:12px;bottom:19px;transform:rotate(36deg)}
.portal-destination{display:grid;min-width:0;padding-right:8px}
.portal-destination strong{font-size:16px;color:#073b72}
.portal-destination small{margin-top:3px;color:var(--muted);font-weight:650;white-space:normal}

.project-cloud-portal.portal-entering:not(.portal-ready) .project-cloud-account-panel{
  transform:translateX(min(34vw,470px));
}
.project-cloud-portal.portal-entering:not(.portal-ready) .project-cloud-directory-panel{
  opacity:0;
  transform:translateX(45px);
}
.project-cloud-portal.portal-entering:not(.portal-ready) .portal-directory-item{
  width:54px;
  opacity:0;
  transform:translateX(-230px) translateY(-14px) scale(.35);
}
.project-cloud-portal.portal-entering.portal-ready .portal-directory-item{
  animation:pcMoleculeDock .78s cubic-bezier(.2,.8,.2,1) both;
  animation-delay:var(--dock-delay);
}
.project-cloud-portal.portal-entering.portal-ready .portal-destination{
  opacity:0;
  animation:pcDestinationReveal .28s ease forwards;
  animation-delay:calc(var(--dock-delay) + .52s);
}
.project-cloud-portal.portal-no-entry .portal-directory-item,
.project-cloud-portal.portal-no-entry .portal-destination{
  opacity:1;
}
@keyframes pcMoleculeDock{
  0%{width:54px;opacity:0;transform:translateX(-230px) translateY(-14px) scale(.35)}
  52%{width:54px;opacity:1;transform:translateX(0) translateY(0) scale(1.04)}
  63%{width:54px;opacity:1;transform:translateX(0) translateY(0) scale(1)}
  100%{width:100%;opacity:1;transform:translateX(0) translateY(0) scale(1)}
}
@keyframes pcDestinationReveal{
  from{opacity:0;transform:translateX(-12px)}
  to{opacity:1;transform:translateX(0)}
}

@media(max-width:900px){
  .project-cloud-portal{
    width:min(720px,calc(100% - 24px));
    grid-template-columns:1fr;
    gap:24px;
    padding:24px 0 38px;
  }
  .project-cloud-account-panel{min-height:auto;padding:24px 18px}
  .portal-cloud-logo .circuit-logo{width:min(230px,68vw)}
  .portal-cloud-logo .circuit-brand-copy strong{font-size:34px}
  .project-cloud-portal.portal-entering:not(.portal-ready) .project-cloud-account-panel{
    transform:translateY(18vh);
  }
  .project-cloud-portal.portal-entering:not(.portal-ready) .portal-directory-item{
    transform:translateY(-100px) scale(.4);
  }
  @keyframes pcMoleculeDock{
    0%{width:54px;opacity:0;transform:translateY(-100px) scale(.4)}
    52%{width:54px;opacity:1;transform:translateY(0) scale(1.04)}
    63%{width:54px;opacity:1;transform:translateY(0) scale(1)}
    100%{width:100%;opacity:1;transform:translateY(0) scale(1)}
  }
}
@media(prefers-reduced-motion:reduce){
  .project-cloud-account-panel,.project-cloud-directory-panel,.portal-directory-item,.portal-destination{
    transition:none!important;
    animation:none!important;
    transform:none!important;
    opacity:1!important;
    width:100%!important;
  }
}


/* Homeowner Project Cloud */
.project-cloud-static-logo{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
.homeowner-access-screen{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:28px 18px;
  background:
    radial-gradient(circle at 50% 12%,rgba(79,216,225,.16),transparent 30%),
    linear-gradient(180deg,#ffffff 0%,#eefbfc 62%,#f9ffff 100%);
}
.homeowner-access-login{
  width:min(540px,100%);
  display:grid;
  justify-items:center;
  text-align:center;
  padding:34px 34px 28px;
  border:1px solid rgba(19,120,200,.13);
  border-radius:30px;
  background:rgba(255,255,255,.92);
  box-shadow:0 24px 62px rgba(17,83,90,.12);
}
.homeowner-login-logo{
  width:min(390px,88%);
  margin:0 auto 8px;
}
.homeowner-access-login h1{
  margin:11px 0 8px;
  font-size:clamp(32px,5vw,46px);
  line-height:1;
  letter-spacing:-.035em;
  color:#073b72;
}
.homeowner-access-login>p{
  max-width:440px;
  margin:0 auto 18px;
  color:var(--muted);
  line-height:1.55;
}
.homeowner-access-login .field{
  width:100%;
  text-align:left;
}
.homeowner-access-login .public-submit{margin-top:5px}
.homeowner-rep-link{
  margin-top:18px;
  color:#6b7f83;
  font-size:11px;
  text-decoration:none;
}
.homeowner-rep-link:hover{text-decoration:underline}
.homeowner-link-pending .ghost{margin-top:10px}

.homeowner-project-cloud{
  background:
    radial-gradient(circle at 16% 14%,rgba(73,216,228,.13),transparent 26%),
    linear-gradient(180deg,#fff,#f2fcfc 62%,#fff);
}
.homeowner-account-panel{
  overflow:hidden;
}
.homeowner-portal-logo{
  width:min(360px,90%);
  margin:0 auto 6px;
}
.homeowner-directory-panel{
  align-self:start;
  padding-top:24px;
  padding-bottom:48px;
}
.homeowner-project-cloud .portal-directory-item.active{
  border-color:rgba(10,167,165,.42);
  background:linear-gradient(90deg,rgba(230,252,252,.98),rgba(255,255,255,.96));
  box-shadow:0 12px 28px rgba(17,83,90,.12);
}
.homeowner-project-cloud .portal-directory-item.active .portal-molecule{
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.78),0 0 0 4px rgba(71,216,233,.14),0 7px 18px rgba(20,132,193,.28);
}
.homeowner-directory-content{
  margin-top:22px;
  min-height:240px;
}
.homeowner-section-card{
  padding:22px;
  border:1px solid rgba(19,120,200,.12);
  border-radius:22px;
  background:rgba(255,255,255,.92);
  box-shadow:0 14px 34px rgba(17,83,90,.08);
}
.homeowner-section-card h2{
  margin:10px 0 8px;
  color:#073b72;
  font-size:28px;
}
.homeowner-section-lead{
  margin:0 0 16px;
  color:var(--muted);
  line-height:1.5;
}
.homeowner-result-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.homeowner-section-card .document-row{
  margin-top:9px;
}
@media(max-width:900px){
  .homeowner-directory-panel{padding-top:0}
  .homeowner-portal-logo{width:min(320px,86vw)}
}
@media(max-width:620px){
  .homeowner-access-login{padding:26px 18px 22px}
  .homeowner-login-logo{width:min(340px,94%)}
  .homeowner-result-grid{grid-template-columns:1fr}
  .homeowner-section-card{padding:18px}
}


/* Project summary invitation */
.summary-invite-shell{
  width:min(920px,calc(100vw - 36px));
  max-height:90vh;
  overflow:auto;
  border-radius:24px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 28px 70px rgba(0,0,0,.2);
  padding:22px;
}
.summary-invite-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.summary-invite-head h2{margin:7px 0 4px;color:#073b72}
.summary-invite-head p{margin:0;color:var(--muted);max-width:620px}
.summary-invite-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,.72fr);
  gap:22px;
  padding-top:16px;
}
.summary-include-list{
  display:grid;
  gap:8px;
  margin:14px 0;
  padding:12px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f7fcfc;
}
.summary-include-list label{
  display:flex;
  align-items:center;
  gap:9px;
  font-size:13px;
  font-weight:800;
}
.summary-include-list input{width:auto}
.summary-include-list small{font-weight:650;color:var(--muted)}
.summary-invite-result{
  display:grid;
  align-content:start;
  justify-items:center;
  min-height:320px;
  padding:20px;
  border:1px dashed var(--line);
  border-radius:18px;
  background:linear-gradient(180deg,#f8feff,#effafa);
  text-align:center;
}
.summary-invite-result h3{margin:10px 0}
.summary-invite-result canvas{
  display:block;
  background:#fff;
  padding:8px;
  border-radius:14px;
  margin:8px auto 12px;
}
.summary-invite-placeholder{align-self:center;color:var(--muted);line-height:1.5}
.profile-activation-card .field{width:100%;text-align:left}
.profile-project-cloud .portal-directory-list{margin-bottom:4px}
@media(max-width:760px){
  .summary-invite-grid{grid-template-columns:1fr}
  .summary-invite-head{flex-direction:column}
}


/* My Water Revival homeowner surface */
.water-revival-brand{
  display:grid;
  justify-items:center;
  text-align:center;
  gap:6px;
  padding:8px 0 14px;
}
.water-revival-brand strong{
  font-size:clamp(34px,5vw,58px);
  line-height:.96;
  letter-spacing:-.05em;
  color:#073b72;
}
.water-revival-brand span{
  max-width:430px;
  color:#0a918f;
  font-size:13px;
  font-weight:800;
  letter-spacing:.015em;
}
.water-revival-home{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:30px 18px;
  background:
    radial-gradient(circle at 50% 8%,rgba(89,224,226,.20),transparent 31%),
    linear-gradient(180deg,#ffffff 0%,#ecfbfb 68%,#ffffff 100%);
}
.water-revival-home-card{
  width:min(760px,100%);
  text-align:center;
  padding:44px 38px 32px;
  border:1px solid rgba(18,151,166,.14);
  border-radius:32px;
  background:rgba(255,255,255,.92);
  box-shadow:0 26px 70px rgba(17,83,90,.12);
}
.water-revival-home-card h1{
  margin:8px auto 12px;
  max-width:650px;
  font-size:clamp(34px,5vw,56px);
  line-height:1.02;
  letter-spacing:-.045em;
  color:#073b72;
}
.water-revival-home-card>p{
  max-width:610px;
  margin:0 auto 24px;
  color:var(--muted);
  line-height:1.6;
  font-size:16px;
}
.water-revival-home-actions{
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
}
.water-revival-home-note{
  max-width:580px;
  margin:22px auto 8px;
  color:#6b7f83;
  font-size:12px;
  line-height:1.55;
}
.water-revival-project-link{
  display:inline-block;
  margin-top:9px;
  color:#62808b;
  font-size:11px;
  text-decoration:none;
}
.water-revival-project-link:hover{text-decoration:underline}

.water-revival-access-screen{
  background:
    radial-gradient(circle at 50% 10%,rgba(89,224,226,.16),transparent 32%),
    linear-gradient(180deg,#fff,#effcfc 65%,#fff);
}
.homeowner-login-water-brand strong{font-size:clamp(34px,7vw,52px)}
.profile-water-brand strong{font-size:clamp(34px,7vw,52px)}
.homeowner-portal-water-brand{
  width:100%;
  margin-bottom:5px;
}
.homeowner-portal-water-brand strong{
  font-size:clamp(34px,4vw,48px);
}
.water-revival-project{
  --form-a:#0aa7a5;
  --form-b:#1378c8;
  background:
    radial-gradient(circle at 14% 12%,rgba(59,213,218,.15),transparent 26%),
    linear-gradient(180deg,#fff,#effcfa 62%,#fff);
}
.water-revival-project .project-cloud-account-panel{
  border-color:rgba(10,167,165,.18);
}
.water-revival-project .portal-directory-heading h2{
  color:#075e78;
}
.water-revival-project .portal-directory-item.active{
  border-color:rgba(10,167,165,.48);
  background:linear-gradient(90deg,rgba(226,252,248,.98),rgba(255,255,255,.96));
}
.powered-by-project-cloud{
  width:min(190px,65%);
  margin:2px auto 0;
  opacity:.72;
}
.powered-project-cloud-logo{
  display:block;
  width:100%;
}
.portal-switch-link{
  display:block;
  max-width:290px;
  margin:17px auto 0;
  color:#62808b;
  font-size:11px;
  line-height:1.4;
  text-decoration:none;
}
.portal-switch-link:hover{text-decoration:underline}
.portal-choice-box{
  width:100%;
  display:grid;
  gap:8px;
  margin:12px 0 15px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#f6fcfc;
  text-align:left;
}
.portal-choice-box>b{
  color:#073b72;
  margin-bottom:2px;
}
.portal-choice-box label{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:9px;
  align-items:start;
  padding:10px;
  border:1px solid rgba(19,120,200,.10);
  border-radius:12px;
  background:#fff;
  cursor:pointer;
}
.portal-choice-box input{
  width:auto;
  margin-top:4px;
}
.portal-choice-box span{display:grid;gap:3px}
.portal-choice-box small{
  color:var(--muted);
  font-weight:600;
  line-height:1.35;
}

.summary-invite-shell .field small{
  display:block;
  margin-top:4px;
  line-height:1.35;
}
@media(max-width:620px){
  .water-revival-home-card{padding:32px 20px 26px}
  .water-revival-home-actions{display:grid}
  .water-revival-home-actions .button-link{width:100%}
}


/* Homeowner handoff confirmation */
.handoff-status{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:7px;
}
.handoff-status span{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:4px 8px;
  border-radius:999px;
  font-size:10px;
  font-weight:850;
  letter-spacing:.01em;
  border:1px solid rgba(19,120,200,.12);
}
.handoff-status span.done{
  background:#e8f8f1;
  color:#16725d;
  border-color:rgba(22,114,93,.18);
}
.handoff-status span.pending{
  background:#f7fafb;
  color:#708489;
}
.summary-invite-result .handoff-status{
  justify-content:center;
  margin:10px 0 6px;
}


/* Rep home + homeowner water quote navigation */
.rep-home-grid{align-items:stretch}
.rep-home-welcome h1{margin-bottom:8px}
.rep-home-quick-links{
  display:grid;
  gap:8px;
  margin-top:12px;
}
.rep-home-quick-links button{
  width:100%;
  justify-content:flex-start;
}

.water-quote-tabs{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:7px;
  padding:7px;
  margin:0 0 18px;
  border:1px solid rgba(19,120,200,.12);
  border-radius:17px;
  background:rgba(255,255,255,.88);
  box-shadow:0 10px 26px rgba(17,83,90,.06);
}
.water-quote-tab{
  min-height:52px;
  padding:9px 10px;
  border:0;
  border-radius:12px;
  background:transparent;
  color:#55727a;
  font-size:12px;
  font-weight:850;
  line-height:1.2;
  text-align:center;
}
.water-quote-tab:hover{
  background:#f0fafa;
  color:#075e78;
}
.water-quote-tab.active{
  background:linear-gradient(135deg,#0aa7a5,#1378c8);
  color:#fff;
  box-shadow:0 8px 18px rgba(19,120,200,.18);
}
.water-quote-section{
  min-height:260px;
}
.solution-homeowner-row{
  align-items:center;
}
.quoteplus-documents{
  margin-top:18px;
  padding-top:15px;
  border-top:1px solid var(--line);
}
.quoteplus-documents h3{
  margin:0 0 9px;
  color:#073b72;
}

@media(max-width:900px){
  .water-quote-tabs{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .water-quote-tab:last-child{
    grid-column:1/-1;
  }
}
@media(max-width:540px){
  .water-quote-tabs{
    grid-template-columns:1fr;
  }
  .water-quote-tab:last-child{
    grid-column:auto;
  }
}


/* Cost analysis refinements */
.cost-analysis-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:flex-start;
  margin-bottom:12px;
}
.cost-analysis-head h2{margin-bottom:6px}
.local-first-badge{
  flex:0 0 auto;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(10,167,165,.09);
  border:1px solid rgba(10,167,165,.16);
  color:var(--a);
  font-size:11px;
  font-weight:900;
}
.slot-title-wrap{
  display:flex;
  align-items:center;
  gap:8px;
  padding-top:4px;
}
.slot-title-wrap .slot-title{padding-top:0}
.category-add{
  width:28px;
  height:28px;
  flex:0 0 28px;
  padding:0;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid var(--line);
  background:#eef8f8;
  color:var(--a);
  font-size:20px;
  font-weight:900;
  line-height:1;
}
.category-add:hover{background:rgba(10,167,165,.12)}
.slot-product-stack{
  display:grid;
  gap:8px;
}
.slot-product-stack .slot-product{
  position:relative;
  padding:7px 34px 7px 0;
  border-bottom:1px solid rgba(21,82,90,.07);
}
.slot-product-stack .slot-product:last-child{border-bottom:0}
.editable-price{
  appearance:none;
  border:0;
  background:transparent;
  text-align:right;
  padding:4px 6px;
  border-radius:9px;
  cursor:pointer;
  color:var(--ink);
  touch-action:manipulation;
}
.editable-price strong{
  display:block;
  font-size:16px;
}
.editable-price small{
  display:block;
  font-size:9px;
  color:var(--muted);
  font-weight:700;
  margin-top:2px;
}
.editable-price:active{background:rgba(10,167,165,.08)}
.slot-remove{
  position:absolute;
  right:1px;
  top:50%;
  transform:translateY(-50%);
  width:25px;
  height:25px;
  padding:0;
  border-radius:50%;
  border:1px solid var(--line);
  background:rgba(255,255,255,.75);
  color:var(--muted);
  font-size:17px;
  line-height:1;
}
.inflation-click{
  cursor:pointer;
}
.inflation-popover{
  position:relative;
  min-width:min(540px,80vw);
}
.inflation-history{
  margin-top:12px;
  padding-top:11px;
  border-top:1px solid var(--line);
}
.inflation-history-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:6px;
}
.inflation-history-head b{display:block;font-size:12px}
.inflation-history-head small{display:block;color:var(--muted);margin-top:2px}
.tiny-history-rate{
  flex:0 0 auto;
  padding:6px 8px;
  font-size:10px;
}
.inflation-history-svg{
  width:100%;
  height:auto;
  display:block;
  overflow:visible;
}
.inflation-history-svg text{
  font-size:9px;
  fill:currentColor;
  opacity:.58;
}
.inflation-history-line{
  fill:none;
  stroke:currentColor;
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
  color:var(--a);
}
.inflation-gridline{
  fill:none;
  stroke:currentColor;
  stroke-width:1;
  opacity:.12;
}
.inflation-source{
  display:inline-block;
  margin-top:2px;
  color:var(--b);
  font-weight:800;
}
.local-search-note{
  margin-top:4px;
  font-size:11px;
  color:var(--muted);
}
.product.local-result{
  position:relative;
  border-color:rgba(10,167,165,.24);
}
.local-result-badge{
  position:absolute;
  top:8px;
  left:8px;
  padding:4px 6px;
  border-radius:999px;
  background:rgba(10,167,165,.92);
  color:#fff;
  font-size:9px;
  font-weight:900;
}
@media(max-width:850px){
  .cost-analysis-head{flex-direction:column}
  .slot-title-wrap{justify-content:space-between}
  .slot-product-stack .slot-product{padding-right:32px}
  .inflation-popover{min-width:0}
}


/* My Water Revival secure gateway */
.revival-login-screen{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:clamp(22px,5vw,58px) 18px;
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 4%,rgba(37,206,211,.18),transparent 28%),
    radial-gradient(circle at 12% 82%,rgba(71,137,255,.10),transparent 26%),
    linear-gradient(180deg,#ffffff 0%,#f1fbfc 56%,#ffffff 100%);
}
.revival-login-screen:before,.revival-login-screen:after{
  content:"";
  position:absolute;
  border-radius:999px;
  filter:blur(4px);
  pointer-events:none;
}
.revival-login-screen:before{
  width:420px;height:420px;right:-210px;top:18%;
  background:radial-gradient(circle,rgba(43,183,225,.11),transparent 66%);
}
.revival-login-screen:after{
  width:330px;height:330px;left:-170px;bottom:6%;
  background:radial-gradient(circle,rgba(31,213,190,.10),transparent 66%);
}
.revival-login-shell{
  width:min(570px,100%);
  position:relative;
  z-index:1;
  text-align:center;
}
.revival-logo-hold{
  width:min(330px,78vw);
  margin:0 auto;
  padding:0;
  display:block;
  position:relative;
  border:0;
  background:transparent;
  color:inherit;
  box-shadow:none;
  touch-action:manipulation;
  user-select:none;
  -webkit-user-select:none;
  -webkit-touch-callout:none;
}
.revival-logo-hold:hover,.revival-logo-hold:focus-visible{
  background:transparent;
  box-shadow:none;
  outline:none;
}
.project-cloud-static-logo.revival-gateway-logo{
  width:100%;
  max-height:190px;
  object-fit:contain;
  display:block;
  filter:drop-shadow(0 12px 25px rgba(22,132,180,.10));
  transition:transform .24s ease,filter .24s ease;
}
.revival-logo-hold.holding .revival-gateway-logo{
  transform:scale(1.025);
  filter:drop-shadow(0 0 22px rgba(33,206,218,.40));
}
.revival-hold-progress{
  position:absolute;
  left:50%;
  bottom:2px;
  width:92px;
  height:3px;
  transform:translateX(-50%);
  border-radius:999px;
  overflow:hidden;
  background:rgba(17,126,159,.10);
  opacity:0;
  transition:opacity .15s ease;
}
.revival-hold-progress:after{
  content:"";
  display:block;
  height:100%;
  width:0;
  border-radius:inherit;
  background:linear-gradient(90deg,#12c9b9,#168eea);
}
.revival-logo-hold.holding .revival-hold-progress{opacity:1}
.revival-logo-hold.holding .revival-hold-progress:after{animation:revivalHoldFill 1.3s linear forwards}
@keyframes revivalHoldFill{to{width:100%}}
.revival-brand-title{margin:-2px auto 24px}
.revival-brand-title h1{
  margin:0;
  color:#073b72;
  font-size:clamp(32px,6vw,46px);
  line-height:1;
  letter-spacing:-.045em;
}
.revival-brand-title p{
  max-width:450px;
  margin:10px auto 0;
  color:#668087;
  font-size:14px;
  line-height:1.55;
}
.revival-login-card{
  width:100%;
  padding:26px;
  border:1px solid rgba(19,120,200,.13);
  border-radius:25px;
  background:rgba(255,255,255,.94);
  box-shadow:0 24px 66px rgba(17,83,90,.12);
  backdrop-filter:blur(12px);
  text-align:left;
}
.revival-login-card h2{
  margin:8px 0 6px;
  color:#073b72;
  font-size:27px;
  letter-spacing:-.025em;
}
.revival-login-card>p{
  margin:0 0 17px;
  color:#668087;
  line-height:1.5;
  font-size:13px;
}
.revival-identifier-row,.revival-code-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:stretch;
}
.revival-identifier-row input,.revival-code-row input{
  min-width:0;
  height:48px;
  margin:0;
}
.revival-identifier-row button,.revival-code-row button{
  min-width:108px;
  height:48px;
  white-space:nowrap;
}
.revival-code-wrap{
  margin-top:13px;
  padding-top:13px;
  border-top:1px solid rgba(19,120,200,.10);
}
.revival-code-wrap[hidden],.revival-rep-panel[hidden]{display:none!important}
.revival-code-wrap label{
  display:block;
  margin:0 0 6px;
  color:#45666d;
  font-size:11px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.045em;
}
.revival-code-row input{
  letter-spacing:.18em;
  font-weight:800;
  font-size:18px;
}
.revival-login-message{
  min-height:20px;
  margin-top:12px;
  color:#557980;
  font-size:12px;
  line-height:1.45;
}
.revival-rep-heading{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
}
.revival-rep-heading h2{margin-bottom:2px}
.revival-close-rep{
  min-width:38px;
  width:38px;
  height:38px;
  padding:0;
  border-radius:50%;
  font-size:22px;
  line-height:1;
}
.revival-rep-panel{
  animation:revivalPanelIn .22s ease both;
  border-color:rgba(17,163,202,.19);
}
@keyframes revivalPanelIn{
  from{opacity:0;transform:translateY(8px) scale(.99)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.revival-login-shell.rep-unlocked .revival-homeowner-panel{display:none}
.revival-login-shell.rep-unlocked .revival-brand-title p{opacity:.72}
.revival-login-shell.revival-login-success{
  animation:revivalSuccess .28s ease forwards;
}
@keyframes revivalSuccess{
  to{transform:scale(1.025);opacity:.08;filter:blur(3px)}
}
.revival-login-foot{
  margin-top:14px;
  color:#7a9196;
  font-size:10px;
  font-weight:750;
  letter-spacing:.06em;
  text-transform:uppercase;
}
@media(max-width:560px){
  .revival-login-screen{place-items:start center;padding-top:26px}
  .revival-logo-hold{width:min(270px,74vw)}
  .project-cloud-static-logo.revival-gateway-logo{max-height:150px}
  .revival-brand-title{margin-bottom:18px}
  .revival-brand-title h1{font-size:36px}
  .revival-brand-title p{font-size:12px}
  .revival-login-card{padding:20px;border-radius:21px}
  .revival-identifier-row,.revival-code-row{grid-template-columns:1fr}
  .revival-identifier-row button,.revival-code-row button{width:100%}
}


/* Dashboard reference layout + treatment-context water bars */
.dashboard-reference,.homeowner-dashboard-page{min-height:100vh;color:var(--ink)}
.homeowner-dashboard-page{
  background:
    radial-gradient(circle at 82% 6%,rgba(38,183,225,.10),transparent 24%),
    linear-gradient(180deg,#ffffff 0%,#f5fbff 38%,#eef9fb 100%);
  padding-bottom:48px;
}
.homeowner-dashboard-header{
  position:sticky;top:0;z-index:25;
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  padding:12px clamp(16px,3vw,36px);
  background:rgba(255,255,255,.93);
  border-bottom:1px solid rgba(21,119,190,.12);
  backdrop-filter:blur(14px);
  box-shadow:0 5px 20px rgba(19,74,101,.05);
}
.homeowner-brand-lockup{display:flex;align-items:center;gap:12px;min-width:0}
.project-cloud-static-logo.homeowner-dashboard-logo{width:78px;height:58px;object-fit:contain}
.homeowner-brand-lockup>div{display:grid;gap:2px;text-align:left}
.homeowner-brand-lockup strong{font-size:20px;color:#073b72;letter-spacing:-.02em}
.homeowner-brand-lockup small{font-size:10px;color:#6d8790;text-transform:uppercase;letter-spacing:.08em}
.homeowner-header-actions{display:flex;align-items:center;gap:8px}
.homeowner-dashboard-hero,.dashboard-hero-strip{
  width:min(1380px,calc(100% - 34px));
  margin:0 auto 16px;
  border:1px solid rgba(19,120,200,.10);
  border-radius:0 0 24px 24px;
  padding:clamp(22px,3vw,38px);
  display:flex;justify-content:space-between;align-items:center;gap:24px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.98),rgba(236,249,255,.90)),
    radial-gradient(circle at 85% 25%,rgba(26,180,235,.15),transparent 34%);
  box-shadow:0 16px 40px rgba(18,86,115,.07);
  overflow:hidden;
}
.homeowner-dashboard-hero h1,.dashboard-hero-strip h1{
  margin:8px 0 6px;color:#073b72;font-size:clamp(30px,4vw,48px);line-height:1;letter-spacing:-.04em
}
.homeowner-dashboard-hero p,.dashboard-hero-strip p{max-width:760px;margin:0;color:#55747d;line-height:1.55}
.water-wave-mark{font-size:clamp(54px,8vw,110px);font-weight:300;letter-spacing:-.25em;color:#19a8e6;opacity:.22;transform:rotate(-7deg);margin-right:24px}
.dashboard-hero-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}

.dashboard-card-grid{
  width:min(1380px,calc(100% - 34px));
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.dashboard-card{
  min-width:0;
  border:1px solid rgba(19,120,200,.12);
  border-radius:18px;
  background:rgba(255,255,255,.95);
  box-shadow:0 10px 30px rgba(17,83,90,.075);
  padding:16px;
}
.dashboard-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:13px}
.dashboard-card-head>div{display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:center;min-width:0}
.dashboard-card-head strong{color:#073b72;font-size:17px;line-height:1.1}
.dashboard-card-head small{grid-column:2;color:#789096;font-size:10px;line-height:1.3;margin-top:2px}
.dashboard-card-icon{
  grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;
  background:linear-gradient(135deg,#e9f8ff,#e8fbf7);
  color:#087fc7;font-size:18px;font-weight:900
}
.mini-card-action{padding:7px 10px;font-size:10px;white-space:nowrap}
.dashboard-empty{padding:24px 12px;color:#789096;text-align:center;border:1px dashed var(--line);border-radius:13px;background:#fbffff}

.appointment-dashboard-body{display:grid;grid-template-columns:100px 1fr;gap:14px;align-items:stretch}
.appointment-date-tile{display:grid;place-items:center;align-content:center;gap:1px;border-radius:14px;background:linear-gradient(180deg,#eff9ff,#f5fbfb);color:#0b5faa}
.appointment-date-tile b{font-size:13px;letter-spacing:.06em}.appointment-date-tile strong{font-size:40px;line-height:1}.appointment-date-tile span{font-size:12px;color:#5c7e88}
.appointment-dashboard-copy{display:grid;gap:7px;align-content:center}.appointment-dashboard-copy b{color:#073b72}.appointment-dashboard-copy span{font-size:13px;color:#355e69}.appointment-dashboard-copy small{color:#789096}

.customer-dashboard-info{display:grid;gap:7px;padding:4px 2px}
.customer-dashboard-info h3{margin:0 0 2px;color:#073b72;font-size:21px}
.customer-dashboard-info span,.customer-dashboard-info small{color:#456b75;line-height:1.35}
.customer-dashboard-info small{font-size:11px}

.dashboard-water-snapshot{display:grid;gap:9px}
.water-context-row{display:grid;gap:5px}
.water-context-head,.water-context-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}
.water-context-head b{color:#173e67;font-size:12px}
.water-context-head span{color:#294f70;font-size:11px;font-weight:800;text-align:right}
.water-context-track{height:9px;border-radius:999px;background:#e4edf2;overflow:hidden}
.water-context-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1fb5cf,#4b9ae8)}
.water-context-row.tone-2 .water-context-track span{background:linear-gradient(90deg,#36b9b1,#e1b94d)}
.water-context-row.tone-3 .water-context-track span{background:linear-gradient(90deg,#edb64a,#ed8b3b)}
.water-context-row.tone-4 .water-context-track span{background:linear-gradient(90deg,#f0953d,#dc5d42)}
.water-context-name,.test-card-title{display:flex;align-items:center;gap:7px}
.water-reference-button{
  width:22px;height:22px;min-width:22px;padding:0;border-radius:50%;
  display:inline-grid;place-items:center;background:#edf8fb;color:#0b6f9d;
  border:1px solid rgba(19,120,200,.18);font-size:11px;font-weight:950;line-height:1
}
.water-reference-button:hover{background:#dff4fb}
.meter-field label{display:flex;align-items:center;justify-content:space-between;gap:8px}
.meter-field label>span{display:flex;align-items:baseline;gap:5px}
.meter-field label small{font-size:9px;color:#789096;font-weight:750}
.water-reference-modal{
  position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:18px;
  background:rgba(5,29,46,.46);backdrop-filter:blur(4px)
}
.water-reference-shell{
  width:min(650px,100%);max-height:min(760px,92vh);overflow:auto;
  padding:22px;border-radius:22px;background:#fff;border:1px solid rgba(19,120,200,.16);
  box-shadow:0 28px 80px rgba(6,53,78,.28)
}
.water-reference-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.water-reference-head h2{margin:8px 0 0;color:#073b72}
.water-reference-close{font-size:22px;line-height:1;padding:8px 11px}
.water-reference-callout{
  margin:16px 0;padding:15px;border-radius:15px;background:linear-gradient(135deg,#eefaff,#f4fbf8);
  border:1px solid rgba(19,120,200,.1);display:grid;gap:5px
}
.water-reference-callout>span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#67848d;font-weight:850}
.water-reference-callout strong{font-size:24px;color:#087fc7}
.water-reference-callout p{margin:2px 0 0;color:#526f78;font-size:11px;line-height:1.5}
.water-reference-bands{display:grid;gap:7px}
.water-reference-band{
  display:grid;grid-template-columns:16px minmax(100px,.7fr) 1fr;align-items:center;gap:9px;
  padding:9px 10px;border:1px solid rgba(19,120,200,.08);border-radius:11px;background:#fbfeff
}
.water-reference-swatch{width:14px;height:14px;border-radius:50%;background:#4b9ae8}
.water-reference-band.tone-2 .water-reference-swatch{background:#e1b94d}
.water-reference-band.tone-3 .water-reference-swatch{background:#ed8b3b}
.water-reference-band.tone-4 .water-reference-swatch{background:#dc5d42}
.water-reference-band b{font-size:11px;color:#173e67}
.water-reference-band>span:last-child{font-size:10px;color:#5f7a82}
.water-reference-treatment-note{
  margin:12px 0 9px;padding:10px;border-radius:11px;background:#f7fafb;
  color:#637d84;font-size:10px;line-height:1.5
}
.water-reference-source{display:inline-block;color:#087fc7;font-size:10px;font-weight:800;text-decoration:none}
.water-reference-source:hover{text-decoration:underline}
.water-context-foot{align-items:flex-start}.water-context-foot strong{font-size:10px;color:#58737c}.water-context-foot small{max-width:68%;font-size:9px;color:#80959a;line-height:1.35;text-align:right}
.water-context-note{
  margin-top:11px;padding:9px 10px;border-radius:10px;
  background:#f4f9fb;border:1px solid rgba(19,120,200,.09);
  color:#70878d;font-size:9px;line-height:1.45
}
.water-no-results{padding:17px;border:1px dashed var(--line);border-radius:12px;color:#7c9297;text-align:center;font-size:12px}
.full-water-report .water-context-row{padding:10px 0;border-bottom:1px solid var(--line)}
.full-water-report .water-context-track{height:11px}

.dashboard-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.dashboard-tool-grid button{
  min-height:58px;padding:10px;border:1px solid rgba(19,120,200,.12);border-radius:12px;
  background:#f9fdff;color:#075b91;font-size:12px
}
.dashboard-tool-grid button:hover{background:#eef9ff}
.dashboard-quote-list{display:grid;gap:8px}
.dashboard-quote-list>div{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.dashboard-quote-list span{color:#456b75;font-size:12px}.dashboard-quote-list b{color:#073b72}
.dashboard-quote-total{display:flex;justify-content:space-between;align-items:end;margin-top:10px;padding-top:9px}
.dashboard-quote-total span{font-size:12px;color:#607b82}.dashboard-quote-total strong{font-size:26px;color:#073b72}
.solution-benefit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.solution-benefit-grid button{
  min-height:72px;display:grid;gap:3px;place-items:center;text-align:center;padding:10px;
  border:1px solid rgba(19,120,200,.11);border-radius:12px;background:#f8fdff;color:#075b91
}
.solution-benefit-grid b{font-size:12px}.solution-benefit-grid span{font-size:9px;color:#739096}
.dashboard-rep-footer{display:flex;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:10px;color:#668087}
.dashboard-rep-footer b{color:#073b72}

.representative-dashboard-body{display:flex;align-items:center;gap:13px;padding:4px 0}
.representative-dashboard-body img,.rep-avatar-fallback{width:66px;height:66px;border-radius:18px;object-fit:cover;border:1px solid rgba(19,120,200,.12)}
.rep-avatar-fallback{display:grid;place-items:center;background:linear-gradient(135deg,#e7f8ff,#e8fbf6);color:#087fc7;font-weight:950}
.representative-dashboard-body>div:last-child{display:grid;gap:4px}.representative-dashboard-body h3{margin:0;color:#073b72}.representative-dashboard-body span{font-size:11px;color:#668087}.representative-dashboard-body a{font-size:12px;color:#087fc7;text-decoration:none}
.homeowner-solution-pills{display:flex;flex-wrap:wrap;gap:7px}
.homeowner-solution-pills span{padding:8px 10px;border-radius:999px;background:#edf9fb;border:1px solid rgba(19,120,200,.10);color:#0b678a;font-size:10px;font-weight:800}
.dashboard-document-count{display:flex;align-items:end;gap:10px;padding:12px 4px}
.dashboard-document-count strong{font-size:42px;line-height:1;color:#087fc7}.dashboard-document-count span{font-size:12px;color:#668087;padding-bottom:4px}

.homeowner-detail-stage{width:min(1380px,calc(100% - 34px));margin:18px auto 0;scroll-margin-top:88px}
.homeowner-detail-card{padding:20px;border:1px solid rgba(19,120,200,.12);border-radius:20px;background:#fff;box-shadow:0 14px 34px rgba(17,83,90,.08)}
.homeowner-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
.homeowner-detail-head h2{margin:7px 0 0;color:#073b72}
.rep-contact-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.snapshot-disclaimer{margin-top:8px;color:#789096;font-size:9px;line-height:1.45}

@media(max-width:1050px){
  .dashboard-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .homeowner-dashboard-header{position:static;align-items:flex-start}
  .homeowner-header-actions{align-items:stretch;flex-direction:column}
  .homeowner-dashboard-hero,.dashboard-hero-strip{align-items:flex-start;flex-direction:column;border-radius:0 0 20px 20px}
  .water-wave-mark{display:none}
  .dashboard-card-grid{grid-template-columns:1fr}
  .appointment-dashboard-body{grid-template-columns:86px 1fr}
  .project-cloud-static-logo.homeowner-dashboard-logo{width:62px;height:48px}
  .homeowner-brand-lockup strong{font-size:16px}
}
@media(max-width:470px){
  .homeowner-dashboard-header{padding:10px 12px}
  .homeowner-header-actions .button-link{display:none}
  .dashboard-card-grid,.homeowner-dashboard-hero,.dashboard-hero-strip,.homeowner-detail-stage{width:calc(100% - 20px)}
  .dashboard-card{padding:14px}
  .dashboard-tool-grid,.solution-benefit-grid{grid-template-columns:1fr 1fr}
  .water-context-foot{display:grid;gap:3px}.water-context-foot small{max-width:none;text-align:left}
}


/* Family Assistance Program monthly-first */
.family-assistance-title{display:flex;align-items:center;justify-content:space-between;gap:20px}
.family-assistance-title h2{margin:7px 0 5px;color:#073b72;font-size:34px}
.family-assistance-title p{margin:0;max-width:760px}
.family-payment-hero{
  min-width:230px;padding:18px 20px;border-radius:18px;
  background:linear-gradient(135deg,#e9fbff,#edf9f4);
  border:1px solid rgba(19,120,200,.12);
  display:grid;gap:4px;text-align:right
}
.family-payment-hero span{font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:#68858e}
.family-payment-hero strong{font-size:30px;color:#087fc7}
.monthly-only-line{align-items:center}
.monthly-only-line>div{display:grid;gap:3px;flex:1}
.monthly-only-line small{font-size:10px;color:var(--muted)}
.program-benefit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.program-benefit-card{
  display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:center;
  padding:12px;border:1px solid rgba(19,120,200,.11);border-radius:15px;background:#fbfeff
}
.program-benefit-card img,.program-benefit-placeholder{
  width:96px;height:78px;border-radius:12px;object-fit:contain;background:#edf8fb;border:1px solid rgba(19,120,200,.08)
}
.program-benefit-placeholder{display:grid;place-items:center;text-align:center;padding:8px;color:#789096;font-size:10px}
.program-benefit-card b{color:#073b72}
.program-benefit-card p{margin:5px 0 0;color:#688088;font-size:11px;line-height:1.45}
.monthly-payment-editor{
  margin:18px 0;padding:18px;border:1px solid rgba(19,120,200,.13);border-radius:18px;
  background:linear-gradient(135deg,#f7fdff,#f6fffb);display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center
}
.monthly-payment-editor h3{margin:7px 0 4px;color:#073b72}
.monthly-payment-editor p{margin:0;max-width:660px}
.manual-monthly-field{display:flex;align-items:center;gap:7px;padding:8px 12px;border-radius:14px;background:#fff;border:1px solid rgba(19,120,200,.14)}
.manual-monthly-field input{width:150px;border:0;background:transparent;font-size:28px;font-weight:900;color:#087fc7;text-align:right;padding:0}
.manual-monthly-field input:focus{outline:none;box-shadow:none}
.manual-monthly-field span{font-weight:850;color:#60808a}
#useCalculatedPayment{grid-column:1/-1;justify-self:end}
.rep-internal-pricing{margin-top:16px;border:1px dashed var(--line);border-radius:15px;padding:12px;background:#fafcfd}
.rep-internal-pricing summary{cursor:pointer;font-weight:850;color:#526f78}
.program-monthly-large{font-size:26px;color:#087fc7;font-weight:900}
.selected-solution{grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center}
.selected-solution>div:first-child{display:grid;gap:2px}
.selected-solution small{font-size:10px;color:var(--muted)}
.selected-monthly{font-weight:900;color:#087fc7;white-space:nowrap}
.family-summary-benefits{display:grid;gap:7px;margin-top:7px;color:#416b72;font-size:12px}
.qualification-note{margin:14px 0;padding:13px;border-radius:14px;background:#f3fafc;border:1px solid rgba(19,120,200,.1)}
.qualification-note b{color:#073b72}.qualification-note p{margin:5px 0 0;color:#607d84;font-size:11px;line-height:1.45}
.family-solution-line{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid var(--line)}
.family-solution-line img{width:42px;height:42px;border-radius:8px;object-fit:contain}
.family-homeowner-payment,.family-dashboard-payment,.family-cost-hero{
  display:grid;gap:4px;padding:14px;border-radius:14px;background:linear-gradient(135deg,#edfaff,#effbf6);
  border:1px solid rgba(19,120,200,.1)
}
.family-homeowner-payment span,.family-dashboard-payment span,.family-cost-hero span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:#64818a;font-weight:850}
.family-homeowner-payment strong,.family-dashboard-payment strong,.family-cost-hero strong{font-size:27px;color:#087fc7}
.family-homeowner-payment.large strong{font-size:36px}
.family-homeowner-payment small{font-size:10px;color:#718b91}
.family-assistance-includes{display:grid;gap:8px;margin:14px 0}
.family-assistance-includes>div{display:flex;justify-content:space-between;gap:15px;padding:11px;border:1px solid var(--line);border-radius:11px}
.family-assistance-includes b{color:#073b72}.family-assistance-includes span{color:#668087;text-align:right}
.family-homeowner-links{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.family-saved-docs{margin-top:16px}
.homeowner-program-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-bottom:14px}
.homeowner-program-product{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fbfeff}
.homeowner-program-product img{width:70px;height:70px;object-fit:contain;border-radius:10px}
.homeowner-program-product>div{display:grid;gap:4px}.homeowner-program-product b{color:#073b72}.homeowner-program-product span{color:#718b91;font-size:11px}
.family-cost-comparison{display:flex;justify-content:space-between;gap:12px;margin-top:10px;padding:10px 12px;border-radius:12px;background:#f8fbfc;color:#59777e}
.family-cost-comparison strong{color:#087fc7}
.family-mini-payment{margin-top:10px;font-size:21px;font-weight:900;color:#087fc7}
.family-assistance-card{background:linear-gradient(150deg,#fff,#f5fbff)}
.family-assistance-homeowner .program-benefit-grid{margin-top:16px}

@media(max-width:760px){
  .family-assistance-title{align-items:stretch;flex-direction:column}
  .family-payment-hero{text-align:left}
  .program-benefit-grid{grid-template-columns:1fr}
  .monthly-payment-editor{grid-template-columns:1fr}
  #useCalculatedPayment{grid-column:auto;justify-self:stretch}
  .selected-solution{grid-template-columns:1fr;gap:8px}
}


/* Program products + rep 7-second pricing editor */
.program-hold-menu-note{
  margin-top:8px;padding:9px 10px;border-radius:10px;
  background:#f4f9fb;border:1px solid rgba(19,120,200,.1);
  color:#6a848b;font-size:10px;line-height:1.4
}
.rep-price-hold-card{
  position:relative;touch-action:manipulation;user-select:none;-webkit-user-select:none;
  transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease;
}
.rep-price-hold-card:after{
  content:"";position:absolute;left:0;bottom:0;height:3px;width:0;
  border-radius:0 0 12px 12px;background:linear-gradient(90deg,#16c7bc,#148ce6);
}
.rep-price-hold-card.pricing-hold-active{
  border-color:rgba(20,142,230,.35);
  box-shadow:0 0 0 3px rgba(20,142,230,.07),0 12px 26px rgba(19,88,120,.08);
}
.rep-price-hold-card.pricing-hold-active:after{animation:repPriceHold7 7s linear forwards}
@keyframes repPriceHold7{to{width:100%}}
.rep-product-pricing-modal{z-index:10000}
.rep-product-pricing-shell{
  width:min(860px,calc(100% - 26px));margin:auto;padding:22px;
  border-radius:22px;background:#fff;border:1px solid rgba(19,120,200,.14);
  box-shadow:0 28px 80px rgba(6,53,78,.24)
}
.rep-product-pricing-shell .pricing-line{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.rep-product-effective{
  display:flex;align-items:end;justify-content:space-between;gap:14px;
  margin:14px 0;padding:15px;border-radius:14px;background:linear-gradient(135deg,#f0fbff,#f5fbf8);
  border:1px solid rgba(19,120,200,.1)
}
.rep-product-effective span{font-size:11px;color:#68828a}
.rep-product-effective strong{font-size:27px;color:#087fc7}
.rep-product-total-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.rep-pricing-finance{margin:14px 0 16px;padding:15px;border:1px solid rgba(19,120,200,.1);border-radius:16px;background:#fafcfd}
.rep-pricing-finance .projection-head{margin-bottom:10px}
.rep-pricing-finance h3{margin:0;color:#073b72}
.rep-pricing-finance-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
#repUseCalculatedPayment{margin-top:10px}
.program-benefits-heading{
  margin:22px 0 10px;padding-top:18px;border-top:1px solid var(--line)
}
.program-benefits-heading h3{margin:0;color:#073b72}
.program-benefits-heading p{margin:4px 0 0}
.program-benefit-product-list{display:grid;gap:9px}
.program-benefit-product-row{
  grid-template-columns:auto minmax(0,1fr) auto;align-items:center;
  border:1px solid rgba(19,120,200,.1);border-radius:14px;padding:11px;background:#fbfeff
}
.program-benefit-product-row>div:nth-child(2){display:grid;gap:4px}
.program-benefit-product-row span{font-weight:850;color:#073b72}
.program-benefit-product-row small{font-size:10px;line-height:1.4;color:#6f878d}
.program-benefit-product-row>strong{color:#168472;font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.program-benefit-thumb-placeholder,.family-summary-product-placeholder{
  display:grid;place-items:center;background:#edf8fb;color:#4f8ca4;font-weight:900
}
.family-summary-product-list{display:grid;gap:8px;margin-top:8px}
.family-summary-product{
  display:flex;align-items:center;gap:9px;padding:8px;border:1px solid var(--line);border-radius:11px;background:#fbfeff
}
.family-summary-product img,.family-summary-product-placeholder{
  width:48px;height:48px;border-radius:9px;object-fit:contain
}
.family-summary-product>div:last-child{display:grid;gap:2px}
.family-summary-product strong{font-size:11px;color:#073b72}
.family-summary-product small{font-size:9px;color:#168472;font-weight:850;text-transform:uppercase}
.custom-solution-add{margin-top:14px}
.custom-solution-add>small{display:block;margin-top:6px}
.selected-program-summary .selected-solution{
  border:1px solid rgba(19,120,200,.1);border-radius:14px;padding:11px;margin-bottom:8px;background:#fbfeff
}
@media(max-width:700px){
  .rep-product-pricing-shell .pricing-line{grid-template-columns:1fr}
  .rep-product-total-grid,.rep-pricing-finance-grid{grid-template-columns:1fr}
  .program-benefit-product-row{grid-template-columns:auto 1fr}
  .program-benefit-product-row>strong{grid-column:2}
}

@media(max-width:560px){
  .water-reference-shell{padding:17px;border-radius:18px}
  .water-reference-band{grid-template-columns:16px 1fr}
  .water-reference-band>span:last-child{grid-column:2}
}

/* Selected homeowner dashboard: product snapshot and upcoming visits */
.appointment-upcoming-scroll{margin-top:12px;padding-top:12px;border-top:1px solid var(--line);max-height:230px;overflow-y:auto;display:grid;gap:7px}
.appointment-upcoming-scroll>b{font-size:11px;color:#64818a}
.upcoming-appointment-item{display:grid;text-align:left;gap:3px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fbfeff}
.upcoming-appointment-item:hover{background:#edf8fb}
.upcoming-appointment-item span,.upcoming-appointment-item small{font-size:10px;color:#617e88}
.upcoming-appointment-item strong{font-size:12px;color:#073b72}
.dashboard-product-preview{display:block;width:100%;text-align:left;background:#fff;padding:8px;border:1px solid var(--line);border-radius:13px}
.dashboard-product-preview>small{display:block;margin-top:8px;color:#087fc7;font-size:10px}
.dashboard-product-grid{display:grid;gap:7px}
.dashboard-product-row{display:flex;align-items:center;gap:9px;padding:5px;border-bottom:1px solid var(--line);font-size:12px;color:#173e67}
.dashboard-product-row img{width:42px;height:42px;object-fit:contain;border-radius:8px;background:#f3f9fc}
.cost-save-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 0 16px}
.cost-save-toolbar span{font-weight:800;color:#173e67}
.cost-save-toolbar small{font-size:11px}

/* Upcoming schedule entries and public flyer sharing */
.appointment-all-upcoming{display:grid;grid-template-columns:repeat(auto-fill,minmax(195px,1fr));gap:9px;margin:16px 0 20px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#f8fcff;max-height:330px;overflow-y:auto}
.appointment-all-upcoming>h3{grid-column:1/-1;margin:0;color:#073b72}
.appointment-all-item{display:grid;gap:5px;text-align:left;padding:11px;background:#fff;border:1px solid var(--line);border-radius:12px}
.appointment-all-item:hover{background:#eaf7fb}
.appointment-all-item b{color:#075b91;font-size:12px}
.appointment-all-item span{font-size:12px}
.appointment-all-item small{color:#627f8a;font-size:10px}
.public-flyer-page{min-height:100vh;padding:20px;background:linear-gradient(180deg,#e7f8fc,#fff);display:flex;flex-direction:column;align-items:center;gap:16px}
.public-flyer-top{display:flex;justify-content:space-between;align-items:center;gap:18px;width:min(700px,100%);color:#073b72}
.public-flyer-top a{color:#087fc7}
.public-flyer-artwork{position:relative;width:min(500px,100%);aspect-ratio:4.25/5.5;overflow:hidden;background:linear-gradient(#c6edfa,#f8ffff);border-radius:12px;border:1px solid #cbe8f0;box-shadow:0 16px 50px #1d6d9230}
.public-flyer-art{width:100%;height:100%;object-fit:contain}
.public-flyer-copy{padding:48px 28px;text-align:center;color:#073b72}
.public-flyer-copy h1{font-size:32px}
.public-flyer-qr{position:absolute;display:flex;align-items:center;gap:3px;flex-direction:column;background:#ffffffd9;border-radius:9px;padding:7px;font-size:11px;font-weight:850}
.public-flyer-qr canvas{max-width:160px;max-height:160px;width:clamp(85px,18vw,150px);height:auto}
.public-flyer-qr.bottom-center{bottom:5%;left:50%;transform:translateX(-50%)}
.public-flyer-qr.bottom-left{bottom:5%;left:5%}
.public-flyer-qr.bottom-right{bottom:5%;right:5%}
.public-flyer-qr.top-center{top:5%;left:50%;transform:translateX(-50%)}
.public-flyer-qr.top-left{top:5%;left:5%}
.public-flyer-qr.top-right{top:5%;right:5%}
.public-flyer-qr.center{top:50%;left:50%;transform:translate(-50%,-50%)}
.public-flyer-appointment{display:inline-block;text-align:center;padding:13px 20px}
.public-flyer-error{padding:24px;text-align:center;color:#934b3d}

/* Reusable saved image and design thumbnail picker */
.saved-design-thumb-picker{margin:9px 0 16px;padding:10px;border:1px solid #d8e6eb;border-radius:12px;background:#f6fbfd}
.saved-design-thumb-heading{font-size:12px;font-weight:800;color:#164967;margin-bottom:9px}
.saved-design-thumb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:9px;max-height:300px;overflow-y:auto}
.saved-design-thumb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;padding:5px;border:2px solid #dfebef;border-radius:10px;background:white;cursor:pointer}
.saved-design-thumb.selected{border-color:#087ec4;background:#e9f7ff}
.saved-design-thumb img{width:100%;height:75px;object-fit:cover;border-radius:6px;background:#eaf3f7}
.saved-design-thumb span{font-size:10px;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#214d64}
.saved-design-thumb.upload-tile{min-height:106px;border:2px dashed #78a9c3;background:#f7fcff}
.saved-thumb-plus{font-size:34px!important;color:#1987bc!important}

/* Company-specific assets and private-by-default share options */
.company-library-toolbar{display:grid;gap:12px;padding:16px;border:1px solid #cfe4ef;border-radius:16px;background:#f4fbff;margin-bottom:16px}
.company-library-heading{display:flex;flex-direction:column;gap:4px;color:#124b71}
.company-library-heading>b{font-size:18px}
.company-library-heading>span{font-size:12px;color:#56758a}
.company-library-choices{display:grid;gap:12px}
.company-library-choices>select{width:min(330px,100%);padding:12px;border-radius:10px;border:1px solid #b6d6e5;background:#fff;font-weight:700;color:#17476d}
.company-library-folders{display:flex;gap:8px;flex-wrap:wrap}
.company-library-folders button{padding:9px 12px;border-radius:11px;border:1px solid #d2e4ed;background:white;color:#174c68;cursor:pointer}
.company-library-folders button.active{background:#d9f0ff;border-color:#1986c4;font-weight:800}
.company-library-content{padding:16px}
.company-library-content h2{font-size:19px;margin-bottom:14px}
.company-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(154px,1fr));gap:12px}
.company-library-asset,.company-library-form-card{display:flex;flex-direction:column;gap:7px;padding:10px;border:1px solid #d9e7ed;border-radius:13px;background:#fff;text-align:left;min-width:0}
.company-library-asset b,.company-library-form-card b{font-size:12px;overflow-wrap:anywhere}
.company-library-asset small,.company-library-form-card small{font-size:11px;color:#678197}
.company-library-asset label{font-size:11px;display:flex;align-items:center;gap:7px}
.company-library-preview{height:110px;display:flex;align-items:center;justify-content:center;background:#f0f7fb;border-radius:8px;overflow:hidden}
.company-library-preview img{width:100%;height:100%;object-fit:contain}
.company-library-preview span{font-size:16px;font-weight:800;color:#236e9a}

/* Maintain imported flyer proportions inside preview and thumbnail frames */
.flyer-thumb{overflow:hidden}
.flyer-thumb img{display:block;width:100%;height:100%;max-height:185px;object-fit:contain;object-position:center}
.imported-flyer-canvas{position:relative;max-width:100%;margin-inline:auto;overflow:hidden}
.imported-flyer-image{display:block;width:100%;height:auto;object-fit:contain}
.flyer-gallery-card{min-width:0}
.company-library-asset select{width:100%;min-width:0;padding:6px;border:1px solid #d2e4ed;border-radius:7px;background:white;font-size:11px}

/* Draggable QR stays above imported flyer artwork */
.imported-flyer-canvas .imported-flyer-qr{z-index:7;pointer-events:auto}
.imported-flyer-canvas .imported-flyer-qr canvas,.imported-flyer-canvas .imported-flyer-qr .qr-fallback-image{display:block;background:#fff;max-width:min(24vw,100%);height:auto;border:4px solid #fff;box-sizing:border-box}
.imported-flyer-canvas .imported-flyer-qr .qr-fallback-image{object-fit:contain}

/* Flyer QR overlay: show only one rendered output and let size control determine its dimensions */
.imported-flyer-canvas .imported-flyer-qr canvas[hidden],
.imported-flyer-canvas .imported-flyer-qr img[hidden],
.imported-flyer-canvas .imported-flyer-info-qr canvas[hidden]{display:none!important}
.imported-flyer-canvas .imported-flyer-qr{background:none!important;box-shadow:none!important;padding:0!important;z-index:10}
.imported-flyer-canvas .imported-flyer-qr canvas,
.imported-flyer-canvas .imported-flyer-qr .qr-fallback-image{max-width:none!important;width:auto;max-height:none!important;box-sizing:content-box;border:2px solid #fff!important;background:#fff}
.imported-flyer-canvas .imported-flyer-info-qr{z-index:11}
.imported-flyer-canvas .imported-flyer-info-qr .qr-fallback-image{display:block;width:150px;height:150px}

/* Allow QR transparent backgrounds to expose the actual flyer underneath */
.imported-flyer-canvas .imported-flyer-qr canvas,.imported-flyer-canvas .imported-flyer-qr .qr-fallback-image{border:0!important;background:transparent!important;box-shadow:none!important}

/* Dashboard qualifying workflow: section heading matches existing title treatment */
.dashboard-program-section-title{font-weight:800;color:#123e6a;font-size:14px;line-height:1.3;padding:7px 5px 10px;text-align:left}

/* Savings Program overview in middle dashboard card */
.dashboard-program-overview{font-size:12px;line-height:1.6;color:#395d74;padding:4px 7px 12px;margin:0}

/* Independent flyer QR captions and controls */
.flyer-qr-toggle{display:flex;gap:8px;margin:12px 0}
.flyer-qr-toggle button{flex:1}
.flyer-qr-caption{display:block;max-width:100%;text-align:center;font-size:14px;line-height:1.2;color:#123b65;font-weight:700;white-space:normal;overflow-wrap:break-word}
.imported-flyer-canvas .imported-flyer-qr,.imported-flyer-canvas .imported-flyer-info-qr{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.imported-flyer-canvas .imported-flyer-qr canvas,.imported-flyer-canvas .imported-flyer-info-qr canvas{background:transparent!important;border:0!important}

/* Compact reference links at bottom of the homeowner card */
.customer-card .homeowner-water-resources{margin-top:auto;padding:10px 12px 12px;border-top:1px solid #e0edf1}
.homeowner-water-resources-label{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;font-weight:800;color:#24506b}
.homeowner-water-resources-label span{font-weight:500;font-size:10px;color:#667d8c}
.homeowner-water-resource-links{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.homeowner-water-resource-links a{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:6px 8px;background:#f2f9fc;border:1px solid #d7eaf1;border-radius:9px;color:#164c70;font-size:11px;text-decoration:none;font-weight:750}
.homeowner-water-resource-links a:hover{background:#e2f2fb}
.homeowner-water-resource-links img{height:16px;width:16px;object-fit:contain}
.homeowner-water-resources>small{display:block;margin-top:7px;font-size:9px;color:#677d89;line-height:1.4}

/* Printshop — screen preview and clean print surfaces */
.ps-root{display:grid;gap:18px}
.ps-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:12px;border:1px solid #dbe9ee;border-radius:12px;background:#f6fbfe}
.ps-controls label{display:grid;gap:5px;font-size:12px;font-weight:650}
.ps-controls input[type="number"]{width:100px;padding:8px;border:1px solid #cedfe7;border-radius:8px}
.ps-controls select{padding:8px;max-width:200px;border:1px solid #cedfe7;border-radius:8px}
.ps-controls [hidden],.ps-root [hidden]{display:none!important}
.ps-art-gallery{display:flex;gap:12px;overflow-x:auto;padding:10px 2px}
.ps-art-item{flex:0 0 140px;display:grid;gap:7px;align-content:start;text-align:center;border:2px solid #e2edf1;border-radius:12px;background:white;padding:8px}
.ps-art-item.active{border-color:#008aca;background:#eaf8ff}
.ps-art-item img{width:100%;height:150px;object-fit:contain}
.ps-art-item span{font-size:12px;overflow-wrap:anywhere}
.ps-book-pages{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:12px}
.ps-book-page{display:grid;gap:7px;padding:9px;border:1px solid #d9e9ef;border-radius:12px;text-align:center}
.ps-page-thumb{height:175px;background:#f5faff;border-radius:8px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ps-page-thumb img{height:100%;width:100%;object-fit:contain}
.ps-upload-label{cursor:pointer;padding:8px}
.ps-preview-pages{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.ps-preview-sheet{border:1px solid #d3e2e8;background:#fff;padding:8px;box-shadow:0 3px 12px #0b305016;overflow:hidden}
.ps-preview-sheet>small{display:block;padding:5px;color:#41627c}
.ps-nup{display:grid;align-items:center;gap:2px}
.ps-mini{min-width:0;min-height:0;overflow:hidden}
.ps-mini img{width:100%;height:100%;object-fit:contain}
.ps-book-spread{display:grid;grid-template-columns:1fr 1fr;gap:3px;min-height:250px}
.ps-book-spread img{width:100%;height:100%;object-fit:contain}
.ps-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
#psPrintSurface{display:none}
.ps-print-page{display:flex;justify-content:center;align-items:center;background:#fff}
.ps-print-grid{display:grid;align-content:center;justify-content:center}
.ps-print-item{overflow:hidden;display:flex;align-items:center;justify-content:center}
.ps-print-item img{width:100%;height:100%;object-fit:fill}
.ps-print-item img.turn{width:100%;height:100%;object-fit:fill}
.ps-print-book{display:grid;grid-template-columns:1fr 1fr;gap:0;width:100%;height:100%}
.ps-print-half{min-width:0;overflow:hidden}
.ps-print-half img{width:100%;height:100%;object-fit:contain}
@media print{
 #psPrintSurface{display:block!important}
 .ps-print-page{box-sizing:border-box;break-after:page;page-break-after:always}
 img{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

.ps-reading-controls{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:14px 0}
.ps-reading-pages{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:10px;background:#eaf3f8;border-radius:12px;max-width:690px;margin:0 auto}
.ps-reading-page{background:white;min-height:200px;aspect-ratio:.7;display:flex;flex-direction:column}
.ps-reading-page img{width:100%;height:95%;object-fit:contain}
.ps-reading-page small{text-align:center;padding:4px}
.ps-reading-blank{flex:1}
.ps-print-item{position:relative}
.ps-qr-overlay{position:absolute;z-index:10;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none}
.ps-qr-overlay img{width:100%!important;height:auto!important;object-fit:contain!important;transform:none!important}
.ps-qr-overlay span{font-size:8pt;text-align:center;color:#123b65;font-weight:700}
.ps-fill-grid .ps-print-item>img{object-fit:cover!important}

.ps-print-artwork{position:relative;display:block;flex-shrink:0}
.ps-print-artwork.rotated{transform:rotate(90deg)}
.ps-print-artwork>.ps-artwork-img{display:block;width:100%;height:100%;object-fit:fill}
.ps-fill-grid .ps-print-artwork:not(.rotated)>.ps-artwork-img{object-fit:cover}
.ps-print-artwork>.ps-qr-overlay{position:absolute}

/* Printshop: preserve copy count when filling, optionally stretch each flyer to its cell */
.ps-fill-grid .ps-print-artwork{width:100%!important;height:100%!important}
.ps-fill-grid .ps-print-artwork.rotated{transform:none!important}
.ps-fill-grid .ps-print-artwork>.ps-artwork-img{object-fit:cover!important}
.ps-stretch-grid .ps-print-artwork>.ps-artwork-img{object-fit:fill!important}
.ps-print-artwork>.ps-qr-overlay{z-index:15;visibility:visible!important}
.ps-print-artwork>.ps-qr-overlay img{display:block!important;width:100%!important;height:auto!important}
