/* SMB public signup */
.signup-shell { background:var(--light-gray); min-height:70vh; }
.signup-intro { background:linear-gradient(135deg,#0057a8,#003b73); color:white; padding:55px 0; }
.signup-intro-grid { display:grid; grid-template-columns:1.6fr .8fr; gap:35px; align-items:center; }
.signup-intro h1 { margin:6px 0 12px; font-size:42px; line-height:1.15; }
.signup-intro p { margin:0; font-size:18px; }
.signup-kicker { text-transform:uppercase; letter-spacing:.12em; font-size:13px!important; font-weight:800; }
.signup-assurance { border:1px solid #ffffff; border-radius:12px; padding:24px; display:grid; gap:8px; }
.signup-assurance strong { font-size:19px; }
.signup-workspace { padding:45px 0 70px; }
#signup-form { gap:24px; }
.signup-step { background:white; border:1px solid var(--border); border-radius:12px; padding:28px; }
.signup-step-heading { display:flex; gap:16px; align-items:flex-start; margin-bottom:22px; }
.signup-step-heading>span { width:38px; height:38px; border-radius:50%; background:var(--smb-blue); color:white; display:grid; place-items:center; font-weight:800; flex:0 0 auto; }
.signup-step-heading h2 { text-align:left; font-size:25px; margin:2px 0 3px; }
.signup-step-heading p { margin:0; color:#59636e; }
.signup-grid { display:grid; gap:16px; }
.signup-grid.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.signup-grid label,.address-search-row label { display:grid; gap:6px; font-weight:700; }
.signup-grid small { font-weight:400; color:#66707a; }
.signup-span-2 { grid-column:1 / -1; }
.address-search-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:12px; align-items:end; }
.signup-button { border:0; cursor:pointer; font:inherit; }
.signup-button:disabled { opacity:.55; cursor:not-allowed; }
.signup-results { display:grid; gap:8px; margin-top:12px; }
.signup-result { width:100%; text-align:left; background:white; border:1px solid var(--border); border-radius:8px; padding:12px 14px; cursor:pointer; }
.signup-result:hover { border-color:var(--smb-blue); }
.signup-selected { margin-top:12px; padding:13px 15px; border-radius:8px; background:var(--smb-light-green); border:1px solid var(--smb-green); }
.signup-check { display:flex; align-items:flex-start; gap:9px; margin-top:18px; }
.signup-check input { width:auto; margin-top:5px; }
.signup-check a { color:var(--smb-blue); text-decoration:underline; }
.signup-catalog { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.signup-catalog h3 { margin-top:0; }
.catalog-row { display:grid; grid-template-columns:minmax(0,1fr) 86px; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid #e5e7eb; }
.catalog-row:last-child { border-bottom:0; }
.catalog-name { display:grid; gap:2px; }
.catalog-name small { color:#66707a; }
.catalog-row input { width:86px; }
.number-grid { grid-template-columns:150px minmax(180px,1fr) auto; align-items:end; margin-top:18px; }
.signup-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }
.quote-card { margin-top:18px; border:1px solid var(--border); border-radius:10px; padding:20px; background:#f8fafc; }
.quote-line { display:flex; justify-content:space-between; gap:18px; padding:7px 0; }
.quote-total { margin-top:8px; padding-top:12px; border-top:2px solid var(--smb-dark-blue); font-size:20px; font-weight:800; }
.signup-note { margin-top:14px; padding:12px 14px; background:#edf5fb; border-left:4px solid var(--smb-blue); border-radius:5px; }
.signup-alert { position:sticky; top:calc(var(--signup-header-offset, 0px) + 8px); z-index:95; margin-bottom:20px; padding:14px 16px; border-radius:8px; background:#e9f7ec; border:1px solid var(--smb-green); box-shadow:0 6px 18px rgba(0,0,0,.12); opacity:1; transition:opacity .35s ease; }
.signup-alert-fading { opacity:0; pointer-events:none; }
.signup-alert-error { background:#fff1f1; border-color:#b91c1c; color:#7f1d1d; }
.signup-alert-info { background:#edf5fb; border-color:var(--smb-blue); color:var(--smb-dark-blue); }
.signup-alert-success { background:#edf9ef; border-color:var(--smb-green); color:#14532d; }
[hidden] { display:none!important; }
@media(max-width:800px){
  .signup-intro-grid,.signup-grid.two,.signup-catalog { grid-template-columns:1fr; }
  .signup-span-2 { grid-column:auto; }
  .signup-intro h1 { font-size:34px; }
  .address-search-row,.number-grid { grid-template-columns:1fr; }
  .signup-step { padding:20px; }
  .signup-button { width:100%; text-align:center; }
}

.signup-package-block,.signup-equipment-question,#equipment-block { margin-top:20px; }
.signup-package-options { display:grid; gap:12px; }
.signup-package-option { display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px; align-items:center; padding:16px; border:1px solid var(--border); border-radius:10px; background:white; cursor:pointer; }
.signup-package-option:hover { border-color:var(--smb-blue); }
.signup-package-option:has(input:checked) { border-color:var(--smb-blue); box-shadow:0 0 0 2px rgba(5,154,196,.12); background:#f7fcfe; }
.signup-package-option input { width:auto; margin:0; }
.signup-choice-row { display:flex; gap:12px; flex-wrap:wrap; }
.signup-choice-row label { display:flex; align-items:center; gap:8px; padding:10px 16px; border:1px solid var(--border); border-radius:8px; background:white; cursor:pointer; font-weight:700; }
.signup-choice-row input { width:auto; margin:0; }
.e911-confirmation-card { margin-top:20px; padding:20px; border:1px solid #d97706; border-radius:10px; background:#fffaf0; }
.e911-confirmation-card h3 { margin:0 0 8px; color:#7c2d12; }
.e911-confirmation-card p { margin-top:10px; }
.e911-confirmation-did { margin-bottom:14px; }
.e911-address-compare { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:16px; }
.e911-address-box { display:grid; gap:7px; padding:16px; border:1px solid var(--border); border-radius:9px; background:white; }
.e911-address-box span { line-height:1.45; }
.e911-address-suggested { border-color:var(--smb-green); background:#f4fbf5; }
@media(max-width:800px){ .e911-address-compare { grid-template-columns:1fr; } }

.signup-package-toll-summary { grid-column:2; color:#475569; font-size:13px; line-height:1.4; }
.signup-package-toll-choice { grid-column:2; display:grid; gap:7px; padding-top:4px; }
.signup-package-toll-choice>strong { font-size:13px; color:#334155; }
.signup-package-toll-choice select { width:100%; max-width:360px; }
.signup-toll-checkboxes { display:flex; flex-wrap:wrap; gap:8px 12px; }
.signup-toll-checkboxes label { display:flex; align-items:center; gap:5px; font-weight:600; font-size:13px; }
.signup-toll-checkboxes input { width:auto; margin:0; }
@media(max-width:800px){
  .signup-package-toll-summary,.signup-package-toll-choice { grid-column:1 / -1; }
}

/* SMB signup equipment picker */
.equipment-picker-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.equipment-picker-head h3{margin-bottom:4px}
.equipment-selection-count{font-weight:700;padding:8px 12px;border:1px solid #d8dee9;border-radius:999px;background:#fff;white-space:nowrap}
.equipment-picker-tools{display:grid;grid-template-columns:minmax(220px,2fr) minmax(170px,1fr) minmax(170px,1fr);gap:12px;margin:14px 0}
.equipment-picker-tools label{display:flex;flex-direction:column;gap:6px;font-weight:600}
.equipment-picker-tools input,.equipment-picker-tools select{width:100%}
.equipment-catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.equipment-card{grid-template-columns:72px minmax(0,1fr) 74px!important;gap:12px!important;padding:12px!important;border:1px solid #e2e8f0!important;border-radius:12px;background:#fff;align-items:center}
.equipment-card[hidden]{display:none!important}
.equipment-card-preselected{outline:2px solid rgba(24,119,242,.18)}
.equipment-card-image{width:72px;height:72px;display:flex;align-items:center;justify-content:center;background:#f8fafc;border-radius:8px;overflow:hidden}
.equipment-card-image img{max-width:100%;max-height:100%;object-fit:contain}
.equipment-card-details{min-width:0}
.equipment-card-meta{font-size:.8rem;font-weight:700;color:#4b5563;margin-bottom:3px}
.equipment-card .catalog-name strong{display:block;line-height:1.25}
.equipment-card .catalog-name small{display:block;margin-top:3px}
.equipment-card-sku,.equipment-stock{display:block;margin-top:4px;color:#6b7280}
.equipment-stock.in-stock{font-weight:600}
.equipment-stock.out-of-stock{font-weight:600}
.equipment-card-qty{display:flex;flex-direction:column;gap:5px;font-weight:700;text-align:center}
.equipment-card-qty input{width:68px!important;text-align:center}
@media (max-width:900px){.equipment-catalog-grid{grid-template-columns:1fr}.equipment-picker-tools{grid-template-columns:1fr 1fr}.equipment-search{grid-column:1/-1}}
@media (max-width:600px){.equipment-picker-tools{grid-template-columns:1fr}.equipment-search{grid-column:auto}.equipment-card{grid-template-columns:58px minmax(0,1fr) 64px!important}.equipment-card-image{width:58px;height:58px}.equipment-card-qty input{width:58px!important}}

/* Equipment detail modal */
.equipment-card-title-button{appearance:none;border:0;background:none;padding:0;margin:0;color:inherit;font:inherit;font-weight:700;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
.equipment-card-title-button:hover,.equipment-card-title-button:focus{opacity:.82}
body.equipment-modal-open{overflow:hidden}
.equipment-detail-modal[hidden]{display:none!important}
.equipment-detail-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:24px}
.equipment-detail-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.62)}
.equipment-detail-dialog{position:relative;z-index:1;width:min(1040px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(15,23,42,.28);padding:24px}
.equipment-detail-close{position:sticky;top:0;float:right;z-index:2;border:0;background:#fff;width:40px;height:40px;border-radius:999px;font-size:28px;line-height:1;cursor:pointer;box-shadow:0 2px 10px rgba(15,23,42,.12)}
.equipment-detail-hero{display:grid;grid-template-columns:minmax(260px,38%) minmax(0,1fr);gap:28px;align-items:start;clear:both}
.equipment-detail-image{min-height:300px;display:flex;align-items:center;justify-content:center;background:#f8fafc;border-radius:14px;padding:18px}
.equipment-detail-image img{max-width:100%;max-height:360px;object-fit:contain}
.equipment-detail-meta{font-weight:700;color:#64748b;margin-bottom:8px}
.equipment-detail-summary h2{margin:0 0 10px;font-size:1.65rem;line-height:1.2}
.equipment-detail-price{font-size:1.45rem;font-weight:800;margin:8px 0}
.equipment-detail-stock,.equipment-detail-sku{margin:5px 0;color:#475569}
.equipment-detail-summary p{line-height:1.55}
.equipment-detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.equipment-detail-section{margin-top:24px;padding-top:20px;border-top:1px solid #e2e8f0}
.equipment-detail-section h3{margin:0 0 10px}
.equipment-detail-section p,.equipment-detail-section li,.equipment-detail-section dd{line-height:1.55}
.equipment-detail-section dl{display:grid;grid-template-columns:minmax(150px,220px) 1fr;gap:8px 14px}
.equipment-detail-section dt{font-weight:700}
.equipment-detail-section dd{margin:0}
@media(max-width:760px){.equipment-detail-modal{padding:10px}.equipment-detail-dialog{padding:18px}.equipment-detail-hero{grid-template-columns:1fr}.equipment-detail-image{min-height:220px}.equipment-detail-section dl{grid-template-columns:1fr}.equipment-detail-section dd{margin-bottom:8px}}
