:root{--bg:#07101d;--panel:#0e1b2b;--panel2:#132338;--line:#26394e;--text:#f8fafc;--muted:#9cb0c7;--blue:#2f80ed}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#07101d,#0a1422);color:var(--text);font:15px/1.45 Inter,system-ui,sans-serif}a{color:inherit;text-decoration:none}header{position:sticky;top:0;z-index:10;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;background:rgba(7,16,29,.94);border-bottom:1px solid var(--line)}header small{color:#6ea8ff;letter-spacing:.18em;font-weight:800}h1{margin:2px 0 0;font-size:22px}main{max-width:1050px;margin:auto;padding:18px}.hero{padding:18px 2px}.hero h2{margin:8px 0}.hero p,.note{color:var(--muted)}.pill{background:#173a60;color:#9dccff;border-radius:999px;padding:5px 9px;font-weight:800}nav{display:flex;gap:8px;margin:10px 0 14px}.tab,button,.button{display:inline-block;border:1px solid var(--line);background:#132238;color:var(--text);border-radius:11px;padding:10px 13px;cursor:pointer}.tab.active,.primary{background:var(--blue);border-color:var(--blue)}.card{background:linear-gradient(180deg,var(--panel),#0b1726);border:1px solid var(--line);border-radius:18px;padding:18px}.view{display:none}.view.active{display:block}.grid2{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}label{display:grid;gap:6px;color:var(--muted);font-size:13px;margin-bottom:12px}input,select,textarea{width:100%;padding:11px;border-radius:10px;border:1px solid var(--line);background:#081421;color:var(--text)}textarea{min-height:88px}.calendarBox{margin:10px 0 16px;padding:15px;border:1px solid #34516f;border-radius:14px;background:#0b1828}.job{display:grid;grid-template-columns:1fr auto;gap:12px;padding:14px;border:1px solid var(--line);border-radius:13px;margin:9px 0;background:var(--panel2)}.job h3{margin:0 0 5px}.meta{color:var(--muted);font-size:13px}.status{font-size:12px;border-radius:999px;background:#193b61;padding:5px 9px}.titleRow{display:flex;justify-content:space-between;align-items:center}.qr{width:88px;height:88px;background:white;padding:4px;border-radius:8px}.ok,.err,.warn{padding:12px;border-radius:12px;margin:12px 0}.ok{background:#11351f;color:#9ef0b5}.warn{background:#4a3514;color:#ffe8a3}.err{background:#3b171b;color:#ffc1c6}.actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:760px){.grid2,.grid3{grid-template-columns:1fr}main{padding:12px}}
.calendarToolbar{display:grid;grid-template-columns:44px 1fr 44px;gap:8px;align-items:center;text-align:center;margin-bottom:10px}
.weekdays,.calendarGrid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.weekdays{color:var(--muted);font-size:12px;text-align:center;margin-bottom:6px}
.calendarDay{aspect-ratio:1/1;border:1px solid var(--line);background:#102033;color:var(--text);border-radius:10px;padding:4px;display:flex;align-items:center;justify-content:center}
.calendarDay.available{background:#123421;border-color:#2d6840}
.calendarDay.selected{background:var(--blue);border-color:var(--blue)}
.calendarDay.unavailable{opacity:.28;cursor:not-allowed}
.calendarDay.empty{visibility:hidden}
.timePanel{margin-top:14px}

.hidden{display:none!important}
.serviceChoice{margin:0 0 18px}
.serviceButtons{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.serviceBtn{text-align:left;padding:14px}
.serviceBtn strong,.serviceBtn span{display:block}
.serviceBtn span{margin-top:4px;color:var(--muted);font-size:12px}
.serviceBtn.active{background:var(--blue);border-color:var(--blue)}
.serviceBtn.active span{color:#dcecff}
.internalFields{margin-top:14px;padding:14px;border:1px dashed var(--line);border-radius:12px;background:#091522}
.internalFields h4{margin:0 0 10px;color:var(--muted)}
@media(max-width:760px){.serviceButtons{grid-template-columns:1fr}}

.priceSummary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0}
.priceSummary>div{border:1px solid var(--line);border-radius:12px;padding:12px;background:#0a1725}
.priceSummary span,.priceSummary strong{display:block}
.priceSummary span{color:var(--muted);font-size:12px;margin-bottom:4px}
.priceSummary strong{font-size:18px}
@media(max-width:760px){.priceSummary{grid-template-columns:1fr}}

.priceRow{display:grid;grid-template-columns:1.2fr 1.5fr .6fr .7fr auto;gap:8px;align-items:end;padding:10px 0;border-bottom:1px solid var(--line)}
.priceRow label{margin:0}
.priceRow .removePrice{background:#3b171b}
@media(max-width:900px){.priceRow{grid-template-columns:1fr 1fr}.priceRow .removePrice{grid-column:1/-1}}

.pricingSettingsBox{margin-bottom:18px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#091522}
.installationPriceInfo{margin-bottom:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#0a1725}

#resellerAuth{padding:14px;border:1px solid var(--line);border-radius:12px;margin:12px 0;background:#091522}

:root{--a3da-blue:#0759b8;--a3da-blue2:#0b79e5;--a3da-red:#e31b23;--a3da-red2:#ff3b30;--panel:#ffffff;--ink:#142033;--soft:#f3f6fa;--line2:#dce4ee}
*{box-sizing:border-box}
body{background:linear-gradient(180deg,#f7f9fc 0,#eef3f8 100%);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.brandHeader{background:#fff;border-bottom:3px solid transparent;border-image:linear-gradient(90deg,var(--a3da-blue),var(--a3da-red)) 1;box-shadow:0 4px 20px rgba(14,36,65,.08)}
.brandWrap{max-width:1120px;margin:auto;padding:16px 22px;display:flex;align-items:center;gap:24px}
.brandLogo{width:min(720px,68vw);height:164px;object-fit:contain;object-position:left center}
.brandCopy{margin-left:auto;text-align:right}.brandCopy h1{margin:0;color:#10243d}.brandCopy p{margin:4px 0 0;color:#607086}
main,nav{max-width:1120px;margin-left:auto;margin-right:auto}
nav{padding:16px 18px;display:flex;gap:8px;overflow-x:auto}
.tab{white-space:nowrap;border-radius:999px;padding:10px 16px;background:#fff;color:#30455e;border:1px solid var(--line2)}
.tab.active{background:var(--a3da-blue);color:#fff;border-color:var(--a3da-blue);box-shadow:0 5px 14px rgba(7,89,184,.22)}
.card{background:#fff;border:1px solid var(--line2);border-radius:18px;box-shadow:0 10px 32px rgba(17,43,75,.07);padding:24px}
.serviceButtons{gap:12px}.serviceBtn{background:#fff!important;color:#172a42!important;border:1px solid var(--line2)!important;border-radius:14px!important;min-height:96px;transition:.15s ease}
.serviceBtn:hover{transform:translateY(-1px);border-color:var(--a3da-blue)!important}
.serviceBtn.active{border:2px solid var(--a3da-blue)!important;box-shadow:0 0 0 3px rgba(7,89,184,.09)!important}
.serviceBtn.active strong{color:var(--a3da-blue)}
.serviceBtn span,.serviceBtn.active span{color:#68798d!important}
.stepHead{display:flex;align-items:center;gap:11px;margin:20px 0 12px}.stepHead>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--a3da-blue);color:#fff;font-weight:800}.stepHead strong,.stepHead small{display:block}.stepHead small{color:#728195;margin-top:2px}
label{color:#354a62;font-weight:600}input,select,textarea{background:#fff!important;color:#172a42!important;border:1px solid #cfd9e5!important;border-radius:10px!important;min-height:46px;padding:10px 12px!important}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(7,89,184,.12);border-color:var(--a3da-blue)!important}
button,.button{min-height:44px;border-radius:10px!important;font-weight:700}
button.primary,.button.primary{background:var(--a3da-blue)!important;color:#fff!important;border-color:var(--a3da-blue)!important}
.authCard{border:1px solid #f1c9cb!important;border-left:5px solid var(--a3da-red)!important;background:#fff8f8!important;padding:18px!important;border-radius:12px!important}
.calendarBox{background:#f9fbfd!important;border:1px solid var(--line2)!important;border-radius:14px!important}
.calendarDay{background:#fff!important;color:#24384f!important;border-color:#d9e2ec!important}
.calendarDay.available{background:#edf7ff!important;border-color:#8bc5f3!important;color:#0759b8!important;font-weight:800}
.calendarDay.selected{background:var(--a3da-blue)!important;color:#fff!important}
.calendarDay.unavailable{background:#f3f5f7!important;color:#a5afb9!important}
.internalFields{border-left:4px solid var(--a3da-red)!important;background:#fff8f8!important}
.priceSummary>div,.pricingSettingsBox,.installationPriceInfo{background:#f8fafc!important;color:#172a42!important;border-color:var(--line2)!important}
.note,.meta{color:#697b90!important}.ok{background:#edf8f1!important;color:#21653b!important}.err{color:#b4232b!important}
@media(max-width:720px){
 .brandWrap{padding:12px 14px;display:block}.brandLogo{width:100%;height:96px;object-position:center}.brandCopy{display:none}
 nav{padding:10px 12px}.card{margin:0 10px 18px;padding:16px;border-radius:14px}
 .serviceButtons{grid-template-columns:1fr!important}.serviceBtn{min-height:76px}
 .grid2,.grid3{grid-template-columns:1fr!important}
 .calendarGrid,.weekdays{gap:3px}.calendarDay{border-radius:8px!important;font-size:13px;padding:2px!important}
 .priceSummary{grid-template-columns:1fr!important}
}

/* v2.8.1 A3DA dark navy theme */
:root{--navy:#06162d;--navy2:#0a2347;--navy3:#0d2d59;--blue:#1687ff;--red:#ef2b35;--textLight:#f4f8ff;--mutedLight:#a9bbd2;--darkLine:#24456f}
html,body{background:#06162d!important;color:var(--textLight)!important}
body{background:radial-gradient(circle at 20% 0,#0d2d59 0,#06162d 38%,#041126 100%)!important;min-height:100vh}
.brandHeader{background:#06162d!important;border-bottom-color:#24456f!important}
.brandCopy h1{color:#fff!important}.brandCopy p{color:#9fb5d0!important}
nav{background:transparent!important}.tab{background:#0a2347!important;color:#c7d7ea!important;border-color:#24456f!important}.tab.active{background:#0759b8!important;color:#fff!important}
.card,.serviceChoice,.calendarBox,.pricingSettingsBox,.installationPriceInfo,.priceSummary>div,.internalFields{background:#081c38!important;color:#f4f8ff!important;border-color:#24456f!important}
.serviceBtn{background:#0a2347!important;color:#f4f8ff!important;border-color:#24456f!important}.serviceBtn strong{color:#fff!important}.serviceBtn span,.serviceBtn.active span{color:#a9bbd2!important}
.serviceBtn.active{background:#0d2d59!important;border-color:#1687ff!important}.serviceBtn.active strong{color:#5db0ff!important}
label,h1,h2,h3,h4,strong{color:#f4f8ff!important}.note,.meta,.stepHead small{color:#a9bbd2!important}
input,select,textarea{background:#06162d!important;color:#f4f8ff!important;border-color:#31557f!important}
input::placeholder,textarea::placeholder{color:#7088a5!important}
optgroup,option{background:#06162d;color:#fff}
.calendarDay{background:#0a2347!important;color:#dceaff!important;border-color:#24456f!important}
.calendarDay.available{background:#0b315e!important;border-color:#1687ff!important;color:#fff!important}
.calendarDay.selected{background:#0759b8!important;color:#fff!important}
.calendarDay.unavailable{background:#07172d!important;color:#536b86!important}
.authCard{background:#24131d!important;border-color:#7c3039!important;border-left-color:#ef2b35!important;color:#fff!important}
.internalFields{background:#151b2c!important;border-left-color:#ef2b35!important}
.priceRow{border-color:#24456f!important}
.ok{background:#102d28!important;color:#7ee2b8!important}.err{color:#ff7b82!important}

.priceTabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 18px}
.priceTab{background:#0a2347!important;color:#cfe0f4!important;border:1px solid #24456f!important}
.priceTab.active{background:#0759b8!important;color:#fff!important;border-color:#1687ff!important}
.pricePanel{display:none}.pricePanel.active{display:block}

.adminPanel{margin-top:18px;padding:16px;border:1px solid #24456f;border-radius:14px;background:#081c38}
.adminStats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.adminStat{padding:14px;border:1px solid #24456f;border-radius:12px;background:#0a2347}
.adminStat strong{display:block;font-size:24px;margin-top:4px}
.resellerAdminRow{display:grid;grid-template-columns:1.1fr 1fr 1.2fr .9fr auto;gap:8px;align-items:end;padding:12px 0;border-bottom:1px solid #24456f}
.resellerAdminRow .rowActions{display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:900px){
 .adminStats{grid-template-columns:1fr}
 .resellerAdminRow{grid-template-columns:1fr 1fr}
 .resellerAdminRow .rowActions{grid-column:1/-1}
}

.rememberRow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:2px 0 16px;padding:10px 12px;border:1px solid #24456f;border-radius:10px;background:#071a34}
.rememberLabel{display:flex!important;grid-template-columns:none!important;align-items:center;gap:8px;margin:0!important;font-weight:600;color:#dbe8f7!important}
.rememberLabel input{width:18px!important;height:18px!important;min-height:18px!important;padding:0!important;accent-color:#1687ff}
.secondarySmall{min-height:36px!important;padding:7px 10px!important;font-size:12px;background:#0a2347!important;color:#cfe0f4!important;border:1px solid #31557f!important}
@media(max-width:720px){
  .rememberRow{align-items:flex-start;flex-direction:column}
  .secondarySmall{width:100%}
}

/* v3.0 workflow */
.mainNav{max-width:1180px;margin:auto}
.dashboardStats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}
.dashStat{background:#0a2347;border:1px solid #24456f;border-radius:14px;padding:16px}
.dashStat span{display:block;color:#a9bbd2}.dashStat strong{display:block;font-size:30px;margin-top:4px}
.jobFilters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px;margin:12px 0 16px}
.jobTop{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.job{align-items:center}
.openJob{min-width:90px}
.quoteRow,.termsRow{display:flex!important;align-items:flex-start;gap:9px;margin:12px 0;padding:10px 12px;background:#071a34;border:1px solid #24456f;border-radius:10px}
.quoteRow input,.termsRow input{width:18px!important;height:18px!important;min-height:18px!important;margin-top:2px;accent-color:#1687ff}
.bigAction{width:100%;font-size:16px;padding:13px 18px!important}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.68);display:grid;place-items:center;z-index:999;padding:16px}
.modal.hidden{display:none}
.modalCard{position:relative;width:min(680px,100%);max-height:90vh;overflow:auto;background:#081c38;border:1px solid #31557f;border-radius:18px;padding:22px;box-shadow:0 24px 80px rgba(0,0,0,.45)}
.modalCard.wide{width:min(900px,100%)}
.modalClose{position:absolute;right:12px;top:10px;border:0!important;background:transparent!important;color:#fff!important;font-size:28px;padding:4px 10px!important}
.summaryGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:14px 0}
.summaryGrid>div{background:#0a2347;border:1px solid #24456f;border-radius:11px;padding:12px}
.summaryGrid span,.summaryGrid strong{display:block}.summaryGrid span{font-size:12px;color:#a9bbd2;margin-bottom:4px}
.status{background:#0d315f;color:#9dd0ff;padding:5px 9px;border-radius:999px}
.qr{width:92px;height:92px;background:#fff;border-radius:8px;padding:4px}
@media(max-width:760px){
 .dashboardStats,.jobFilters,.summaryGrid{grid-template-columns:1fr}
 .brandLogo{height:116px!important}
 .mainNav{overflow-x:auto}
}

.customerTypeButtons{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:12px 0 16px}
.customerTypeBtn{background:#0a2347!important;color:#fff!important;border:1px solid #24456f!important;border-radius:14px!important;padding:16px;text-align:left}
.customerTypeBtn strong,.customerTypeBtn span{display:block}.customerTypeBtn span{color:#a9bbd2;margin-top:4px}
.customerTypeBtn.active{border:2px solid #1687ff!important;background:#0d2d59!important}
.servicePermissionRow{display:flex;gap:18px;flex-wrap:wrap;margin:12px 0}
.servicePermissionRow label{display:flex!important;align-items:center;gap:7px}
.servicePermissionRow input{width:18px!important;height:18px!important;min-height:18px!important;accent-color:#1687ff}
.servicePermissionRow.compact{margin:0}
.customerAdminRow{display:grid;grid-template-columns:.8fr 1fr 1fr 1.2fr .9fr 1fr auto;gap:8px;align-items:end;padding:12px 0;border-bottom:1px solid #24456f}
@media(max-width:900px){
  .customerTypeButtons{grid-template-columns:1fr}
  .customerAdminRow{grid-template-columns:1fr 1fr}
  .customerAdminRow .rowActions,.customerAdminRow .servicePermissionRow{grid-column:1/-1}
}

.installationExtrasSummary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}
.installationExtrasSummary>div{background:#0a2347;border:1px solid #24456f;border-radius:11px;padding:12px}
.installationExtrasSummary span,.installationExtrasSummary strong{display:block}
.installationExtrasSummary span{font-size:12px;color:#a9bbd2;margin-bottom:4px}
@media(max-width:760px){.installationExtrasSummary{grid-template-columns:1fr 1fr}}

.routeCalculator{margin:16px 0;padding:16px;border:1px solid #24456f;border-radius:14px;background:#081c38}
.routeResult{margin-top:10px;padding:10px 12px;background:#0a2347;border-radius:10px}

.customerAdminRow{grid-template-columns:1fr 1fr 1.2fr .9fr 1fr auto!important}

.addressField{position:relative}
.addressSuggestions{position:absolute;left:0;right:0;top:100%;z-index:80;margin-top:4px;background:#071a34;border:1px solid #31557f;border-radius:10px;box-shadow:0 16px 36px rgba(0,0,0,.35);max-height:260px;overflow:auto;padding:5px}
.addressSuggestion{display:block;width:100%;text-align:left;background:transparent!important;color:#f4f8ff!important;border:0!important;border-radius:7px!important;padding:10px 11px!important;min-height:auto!important;font-weight:500}
.addressSuggestion:hover{background:#0d2d59!important}
.addressSuggestionError{padding:10px;color:#ff9aa0;font-size:13px}

.errBox{margin:12px 0;padding:12px 14px;background:#2b1419;border:1px solid #8a3038;border-left:4px solid #ef2b35;border-radius:10px;color:#ffd7da}
.driveFiles{margin:14px 0;padding:14px;background:#0a2347;border:1px solid #24456f;border-radius:12px}
.driveFiles ul{margin:8px 0 0;padding-left:20px}.driveFiles a{color:#78bdff}

.approvalActions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0;padding:14px;border:1px solid #31557f;border-radius:12px;background:#0a2347}
.installationAdminBreakdown{margin:14px 0}
.dashboardStats{grid-template-columns:repeat(5,1fr)}
@media(max-width:900px){.dashboardStats{grid-template-columns:1fr 1fr}}

.appVersion{
  position:fixed;
  right:10px;
  bottom:7px;
  z-index:200;
  font-size:10px;
  line-height:1;
  letter-spacing:.04em;
  color:rgba(210,225,245,.55);
  background:rgba(4,17,36,.72);
  border:1px solid rgba(80,120,165,.25);
  border-radius:6px;
  padding:4px 6px;
  pointer-events:none;
  user-select:none;
}

.jobActions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
button.danger,.danger{
  background:#3a141b!important;
  color:#ffd9dc!important;
  border:1px solid #8b3039!important;
}
button.danger:hover,.danger:hover{background:#571b24!important;border-color:#ef4b55!important}

/* v3.3.3 mobile UI audit */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{overflow-x:hidden;padding-bottom:calc(18px + env(safe-area-inset-bottom))}
input,select,textarea,button{max-width:100%}
input,select,textarea{font-size:16px} /* prevents iOS focus zoom */
button,.customerTypeBtn,.serviceBtn{touch-action:manipulation}
button{min-height:44px}
.appVersion{
  right:calc(8px + env(safe-area-inset-right));
  bottom:calc(6px + env(safe-area-inset-bottom));
}
.addressSuggestions{-webkit-overflow-scrolling:touch}
.jobActions .openJob,.jobActions .deleteJob{min-width:74px}

@media(max-width:700px){
  body{font-size:15px}
  .shell,.container,main{width:100%;max-width:100%;padding-left:12px!important;padding-right:12px!important}
  header,.topbar,.headerInner{padding-left:12px!important;padding-right:12px!important}
  .brand img,.logo{max-width:min(260px,72vw);height:auto}
  h1{font-size:clamp(24px,7vw,34px);line-height:1.08}
  h2{font-size:21px;line-height:1.2}
  h3{font-size:17px}
  .grid2,.grid3,.summaryGrid,.customerAdminRow{grid-template-columns:1fr!important}
  .customerTypeButtons,.serviceButtons{display:grid!important;grid-template-columns:1fr!important;gap:10px}
  .customerTypeBtn,.serviceBtn{width:100%;min-height:64px;text-align:left}
  label{width:100%}
  input,select,textarea{width:100%;min-height:46px}
  textarea{min-height:110px}
  .stepHead{align-items:flex-start;gap:10px}
  .stepHead>span{flex:0 0 auto}
  .actions,.titleRow,.approvalActions{gap:8px}
  .actions button,.approvalActions button{flex:1 1 145px}
  .titleRow{align-items:flex-start;flex-wrap:wrap}
  .titleRow>div{min-width:0;flex:1 1 220px}
  .job{display:grid!important;grid-template-columns:1fr!important;gap:12px}
  .job>div:first-child{min-width:0}
  .jobTop{gap:8px;flex-wrap:wrap}
  .job h3,.meta{overflow-wrap:anywhere}
  .jobActions{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .jobActions button{width:100%}
  .dashboardStats{grid-template-columns:1fr 1fr!important;gap:8px}
  .dashStat{min-width:0}
  .summaryGrid>div{min-width:0}
  .summaryGrid strong{overflow-wrap:anywhere}
  .authCard,.adminPanel,.card,section{max-width:100%}
  .addressSuggestions{
    position:absolute;
    left:0;right:0;
    max-height:min(42vh,320px);
    z-index:1000;
  }
  .addressSuggestion{min-height:48px!important;padding:12px!important}
  .calendarGrid,.calendar{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .timeSlots{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .timeSlots button{min-width:0;width:100%;padding-left:5px!important;padding-right:5px!important}
  dialog,.modal,.modalContent{
    max-width:calc(100vw - 20px)!important;
    max-height:calc(100dvh - 20px)!important;
  }
  .modalContent{
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    padding:14px!important;
  }
  .driveFiles li{overflow-wrap:anywhere}
  .appVersion{font-size:9px;opacity:.8}
}

@media(max-width:390px){
  .dashboardStats{grid-template-columns:1fr!important}
  .timeSlots{grid-template-columns:repeat(2,minmax(0,1fr))}
  .jobActions{grid-template-columns:1fr}
  .actions button,.approvalActions button{flex-basis:100%}
}

/* v3.3.5 mobile price-list compact mode */
@media(max-width:700px){
  #engravingProduct{
    font-size:13px!important;
    line-height:1.15!important;
    min-height:42px!important;
    padding:8px 30px 8px 9px!important;
    text-overflow:ellipsis;
    white-space:nowrap;
    overflow:hidden;
  }
  #engravingProduct option,
  #engravingProduct optgroup{
    font-size:13px!important;
  }

  .priceRow{
    grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) 82px 86px auto!important;
    gap:5px!important;
    padding:8px 0!important;
    align-items:end!important;
  }
  .priceRow label{
    font-size:11px!important;
    line-height:1.1!important;
    min-width:0!important;
  }
  .priceRow input,
  .priceRow select{
    font-size:12px!important;
    min-height:38px!important;
    padding:6px 7px!important;
    min-width:0!important;
  }
  .priceRow .removePrice{
    min-height:38px!important;
    padding:6px 8px!important;
    font-size:11px!important;
    white-space:nowrap;
  }

  #retailPriceEditor,
  #priceEditor{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
}

@media(max-width:430px){
  .priceRow{
    grid-template-columns:minmax(110px,1fr) minmax(135px,1.2fr) 76px 82px 56px!important;
    min-width:475px;
  }
  #retailPriceEditor,
  #priceEditor{
    margin-left:-4px;
    padding-bottom:4px;
  }
  #engravingProduct{
    font-size:12px!important;
  }
}

@media(max-width:700px){
 select#engravingProduct{font-size:11px!important;line-height:1.05!important;height:40px!important;min-height:40px!important;padding:5px 28px 5px 7px!important;letter-spacing:-.15px!important}
 select#engravingProduct option,select#engravingProduct optgroup{font-size:11px!important;line-height:1.1!important}
 label:has(> #engravingProduct){font-size:12px!important;line-height:1.15!important}
}
@media(max-width:430px){
 select#engravingProduct{font-size:10px!important;letter-spacing:-.25px!important;padding-left:6px!important}
 select#engravingProduct option,select#engravingProduct optgroup{font-size:10px!important}
}

/* v3.3.7 – compact text in all dropdowns on mobile */
@media(max-width:700px){
  select{
    font-size:12px!important;
    line-height:1.1!important;
    min-height:40px!important;
    height:40px;
    padding:5px 28px 5px 7px!important;
    letter-spacing:-0.1px!important;
  }
  select option,
  select optgroup{
    font-size:12px!important;
    line-height:1.1!important;
  }
}
@media(max-width:430px){
  select{
    font-size:11px!important;
    padding-left:6px!important;
    letter-spacing:-0.15px!important;
  }
  select option,
  select optgroup{
    font-size:11px!important;
  }

  /* Long engraving product names need one extra step smaller. */
  select#engravingProduct,
  select#engravingProduct option,
  select#engravingProduct optgroup{
    font-size:10px!important;
  }
}

.mobileProductPicker{display:none}
@media(max-width:700px){
 .mobileProductPicker{display:block;position:relative;width:100%}
 .mobileProductTrigger{width:100%;min-height:40px!important;padding:6px 30px 6px 8px!important;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px!important;line-height:1.1!important}
 .mobileProductMenu{position:absolute;left:0;right:0;top:44px;z-index:3000;max-height:55vh;overflow-y:auto;padding:4px;background:#24262b;border:1px solid #46505f;border-radius:9px;box-shadow:0 12px 30px rgba(0,0,0,.5)}
 .mobileProductMenu.hidden{display:none!important}
 .mobileProductGroup{padding:8px 7px 4px;font-size:10px!important;font-weight:700;opacity:.72}
 button.mobileProductOption{display:block;width:100%;min-height:32px!important;padding:6px 7px!important;margin:0!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.08)!important;border-radius:0!important;background:transparent!important;text-align:left;color:inherit;font-size:10px!important;line-height:1.1!important;font-weight:400!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}

/* v3.4.0 request/approval workflow */
.engravingRequestDates,.planningBox{margin-top:14px}
.planningBox{padding:14px;border:1px solid #31557f;border-radius:12px;background:#0a2347}
#dashboardWaiting,#dashboardToday,#dashboardUpcoming{margin-bottom:22px}

/* v3.4.1 – compact mobile top/header area */
@media(max-width:700px){
  header,.topbar,.headerInner{
    min-height:0!important;
    padding-top:6px!important;
    padding-bottom:6px!important;
  }
  .brand{
    min-height:0!important;
    gap:6px!important;
    margin:0!important;
    padding:0!important;
  }
  .brand img,.logo{
    width:auto!important;
    max-width:min(180px,52vw)!important;
    max-height:58px!important;
    object-fit:contain;
  }
  header h1,.brand h1{
    margin:0!important;
    font-size:18px!important;
    line-height:1.05!important;
  }
  header p,.brand p,.tagline{
    margin:2px 0 0!important;
    font-size:10px!important;
    line-height:1.15!important;
  }
  nav,.nav,.tabs{
    margin-top:4px!important;
    margin-bottom:4px!important;
    gap:4px!important;
  }
  nav button,.nav button,.tabs button{
    min-height:36px!important;
    padding:5px 8px!important;
    font-size:11px!important;
  }
  main{
    padding-top:6px!important;
  }
}
@media(max-width:390px){
  .brand img,.logo{
    max-width:150px!important;
    max-height:50px!important;
  }
}

/* v3.4.2 – role navigation + tighter mobile brand area */

@media(max-width:700px){
  header,.topbar,.headerInner{
    min-height:0!important;
    height:auto!important;
    padding-top:2px!important;
    padding-bottom:2px!important;
    margin-bottom:2px!important;
  }
  .brand{
    min-height:0!important;
    height:auto!important;
    gap:2px!important;
    margin:0!important;
    padding:0!important;
    align-items:center!important;
  }
  .brand img,.logo{
    max-width:130px!important;
    max-height:42px!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    object-fit:contain!important;
  }
  header h1,.brand h1{
    font-size:15px!important;
    line-height:1!important;
    margin:0!important;
  }
  header p,.brand p,.tagline{
    font-size:9px!important;
    line-height:1.05!important;
    margin:1px 0 0!important;
  }
  nav,.nav,.tabs{
    margin-top:2px!important;
    margin-bottom:2px!important;
    padding-top:0!important;
    padding-bottom:0!important;
    gap:3px!important;
  }
  nav button,.nav button,.tabs button{
    min-height:32px!important;
    padding:3px 7px!important;
    font-size:10px!important;
  }
  main{padding-top:3px!important}
}
@media(max-width:390px){
  .brand img,.logo{max-width:115px!important;max-height:38px!important}
}

/* v3.4.3 – restore logo size; reduce only surrounding mobile header height */
@media(max-width:700px){
  header,.topbar,.headerInner{
    min-height:0!important;
    height:auto!important;
    padding-top:0!important;
    padding-bottom:0!important;
    margin-top:0!important;
    margin-bottom:0!important;
  }
  .brand{
    min-height:0!important;
    height:auto!important;
    padding:0!important;
    margin:0!important;
    gap:0!important;
    line-height:1!important;
  }
  .brand img,.logo{
    max-width:min(180px,52vw)!important;
    max-height:58px!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    display:block!important;
  }
  header h1,.brand h1{
    margin:0!important;
    padding:0!important;
    line-height:1!important;
  }
  header p,.brand p,.tagline{
    margin:0!important;
    padding:0!important;
    line-height:1!important;
  }
  nav,.nav,.tabs{
    margin-top:0!important;
    margin-bottom:0!important;
    padding-top:0!important;
    padding-bottom:0!important;
  }
  main{
    padding-top:2px!important;
    margin-top:0!important;
  }
}
@media(max-width:390px){
  .brand img,.logo{
    max-width:150px!important;
    max-height:50px!important;
  }
}

/* v3.4.4 role-navigation hotfix */
.mainNav [data-tab="myjobs"].hidden,
.mainNav [data-tab="jobs"].hidden{display:none!important}

/* v3.4.7 */
#surveyInfo{margin:6px 0 10px}

/* v3.5.1 – clear calendar availability feedback */
.availabilityModal{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(2,10,23,.80);backdrop-filter:blur(5px)}
.availabilityModal.hidden{display:none!important}
.availabilityModalCard{width:min(560px,94vw);padding:30px 24px;text-align:center;background:#071a34;border:1px solid #31557f;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.55)}
.availabilityModalCard h2{margin:12px 0 8px;font-size:24px}
.availabilityModalCard p{margin:0 auto 18px;max-width:440px;line-height:1.45}
.availabilitySpinner{width:48px;height:48px;margin:0 auto;border:4px solid rgba(255,255,255,.15);border-top-color:#fff;border-radius:50%;animation:a3daSpin .8s linear infinite}
.availabilityProgress{height:5px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.12)}
.availabilityProgress span{display:block;width:38%;height:100%;background:currentColor;border-radius:99px;animation:a3daProgress 1.25s ease-in-out infinite alternate}
body.availabilityLocked{overflow:hidden}
.availabilitySelectionHint{margin-top:8px;padding:10px 12px;border:1px solid #31557f;border-radius:10px;font-size:13px;text-align:center}
.availabilitySelectionHint.attention{outline:2px solid rgba(255,255,255,.55);outline-offset:2px}
button.waitingForTime{opacity:.48;cursor:not-allowed}
@keyframes a3daSpin{to{transform:rotate(360deg)}}
@keyframes a3daProgress{from{transform:translateX(-5%)}to{transform:translateX(165%)}}
@media(prefers-reduced-motion:reduce){.availabilitySpinner,.availabilityProgress span{animation:none}}
@media(max-width:700px){.availabilityModal{padding:14px}.availabilityModalCard{padding:26px 18px;border-radius:16px}.availabilityModalCard h2{font-size:21px}.availabilityModalCard p{font-size:14px}}


/* v3.6.0 release candidate */
.jobFilters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(2,minmax(150px,1fr)) repeat(2,minmax(135px,.8fr)) auto;gap:10px;align-items:end}
.compactFilter{font-size:12px}
.quickFilters{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 16px}
.quickFilters button{min-height:38px}
.activityTimeline{display:grid;gap:14px;margin-top:8px}
.activityItem{display:grid;grid-template-columns:14px 1fr;gap:10px;position:relative}
.activityItem:not(:last-child)::after{content:"";position:absolute;left:6px;top:17px;bottom:-14px;width:1px;background:#31557f}
.activityDot{width:12px;height:12px;border-radius:50%;margin-top:5px;border:2px solid currentColor}
.qrGrid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:16px}
.qrCard{display:grid;gap:10px;justify-items:center;padding:16px;border:1px solid #31557f;border-radius:14px}
.qrCard img{width:min(280px,80vw);background:white;padding:10px;border-radius:10px}
.qrCard .note{word-break:break-all;text-align:center}
@media(max-width:900px){.jobFilters{grid-template-columns:1fr 1fr}.jobFilters>input:first-child{grid-column:1/-1}}
@media(max-width:600px){.jobFilters,.qrGrid{grid-template-columns:1fr}.jobFilters>input:first-child{grid-column:auto}}

/* RC4 availability guidance */
.firstAvailabilityHint{margin:10px 0;padding:11px 12px;border:1px solid #31557f;border-radius:10px;text-align:center}
.firstAvailabilityHint.hidden{display:none!important}

/* RC5 – installation price moved to final booking section */
.installationFinalPrice{margin-top:18px;margin-bottom:16px}
.installationFinalPrice .stepHead{margin-bottom:10px}

/* RC6 – common final price checkpoint before files */
#engravingFinalPriceFields,#installationPriceFields{margin-top:18px;margin-bottom:16px}


/* RC14 – Admin > Jobber: align Fra/Til with the filter row */
.jobFilters{
  grid-template-columns:minmax(260px,2fr) minmax(150px,1fr) minmax(150px,1fr) minmax(145px,.9fr) minmax(145px,.9fr) auto;
  align-items:end;
}
.jobFilters > input,
.jobFilters > select,
.jobFilters > button,
.jobFilters .compactFilter input{
  min-height:44px;
  height:44px;
  box-sizing:border-box;
  margin:0;
}
.jobFilters .compactFilter{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:4px;
  margin:0;
  min-width:0;
}
.jobFilters .compactFilter input{
  width:100%;
}
@media(max-width:1100px){
  .jobFilters{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:760px){
  .jobFilters{
    grid-template-columns:1fr;
  }
}

/* RC17 – persistent booking acknowledgement */
.bookingReceipt{
  margin:0 0 18px;
  padding:15px 17px;
  border-radius:12px;
  border:1px solid #31557f;
  background:#092548;
  line-height:1.55;
}
.bookingReceipt.ok{border-color:#3e7f69}
.bookingReceipt strong{display:inline-block;margin-bottom:3px;font-size:16px}

/* RC18 – visible red native picker icons on dark navy controls */
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"],
input[type="week"]{
  color-scheme: dark;
}
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator,
input[type="month"]::-webkit-calendar-picker-indicator,
input[type="week"]::-webkit-calendar-picker-indicator{
  opacity:1;
  cursor:pointer;
  filter:brightness(0) saturate(100%) invert(24%) sepia(98%) saturate(4832%) hue-rotate(348deg) brightness(99%) contrast(91%);
}
/* Red dropdown chevron for time/start/end and other native selects */
select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  padding-right:42px!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ef2b35' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 13px center!important;
  background-size:16px 16px!important;
}

/* RC19 – global visible form-control icons/arrows on dark cards */
:root{--a3da-control-icon-red:#e53935;}

input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"],
input[type="week"]{
  color-scheme: dark;
}

input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator,
input[type="month"]::-webkit-calendar-picker-indicator,
input[type="week"]::-webkit-calendar-picker-indicator{
  opacity:1 !important;
  cursor:pointer;
  filter: invert(27%) sepia(93%) saturate(3605%) hue-rotate(351deg) brightness(98%) contrast(91%) !important;
}

select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  padding-right:2.6rem !important;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--a3da-control-icon-red) 50%),
    linear-gradient(135deg, var(--a3da-control-icon-red) 50%, transparent 50%) !important;
  background-position:
    calc(100% - 16px) 50%,
    calc(100% - 10px) 50% !important;
  background-size:6px 6px,6px 6px !important;
  background-repeat:no-repeat !important;
}

select:disabled,
input[type="date"]:disabled,
input[type="time"]:disabled,
input[type="datetime-local"]:disabled{
  opacity:.65;
}

#adminView select,
#adminView input[type="date"],
#adminView input[type="time"],
#resellerView select,
#resellerView input[type="date"],
#resellerView input[type="time"],
.view select,
.view input[type="date"],
.view input[type="time"],
.card select,
.card input[type="date"],
.card input[type="time"],
.modal select,
.modal input[type="date"],
.modal input[type="time"]{
  accent-color:var(--a3da-control-icon-red);
}

/* RC22 – Admin Google quick links */
.adminQuickLinks{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:14px 0 18px;
}
.adminQuickLink{
  display:flex !important;
  align-items:center;
  gap:12px;
  min-height:58px;
  text-align:left;
  text-decoration:none !important;
}
.adminQuickLink span:last-child{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.adminQuickLink strong{
  font-size:16px;
}
.adminQuickLink small{
  font-size:12px;
  opacity:.82;
}
.adminQuickIcon{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  flex:0 0 34px;
  border-radius:9px;
  background:rgba(255,255,255,.12);
  font-size:20px;
}
@media(max-width:700px){
  .adminQuickLinks{grid-template-columns:1fr 1fr;gap:9px}
  .adminQuickLink{min-height:62px;padding:11px 12px !important;gap:9px}
  .adminQuickLink strong{font-size:14px}
  .adminQuickLink small{font-size:11px}
}

/* v3.6.4 travel row alignment */
.travelCostGrid{align-items:start}
.travelCostGrid label{grid-template-rows:auto 46px auto;align-content:start}
.travelCostGrid input{height:46px!important;min-height:46px!important}
.travelCostGrid small{min-height:38px;line-height:1.35}
