/* v1.4: compact mobile workflow, legible touch targets and stable layout */
:root{--ui-radius:14px}
*,*::before,*::after{box-sizing:border-box}
html,body{max-width:100%;overflow-x:clip}
button,input,textarea,select{font-family:inherit}
button{touch-action:manipulation}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #83edd3;outline-offset:2px}
.quick-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px 0 14px;max-width:100%;align-items:stretch}
.quick-flow button{display:flex;gap:8px;justify-content:center;align-items:center;min-width:0;text-align:center;padding:12px 8px;border:1px solid #2b4554;border-radius:12px;color:#bdcfdf;background:#132438;font-size:13px;font-weight:680;white-space:nowrap}
.quick-flow button span{display:inline-flex;width:25px;height:25px;border-radius:50%;align-items:center;justify-content:center;background:#264251;color:#98ddc8;font-size:11px;flex-shrink:0}
.quick-flow button.flow-active{border-color:#56bda2;background:#1c3d37;color:#e3fff6}
.quick-flow button.flow-active span{background:#387c6b;color:white}
.ai-callout{margin:7px 0 6px!important}
.ai-callout button{min-height:42px;border:1px solid #375a6b;background:#1b3444;color:#b8eee1;font-weight:700}
.catalog-pane .pane-header{padding-bottom:11px}
.service.is-selected{box-shadow:inset 3px 0 #5eccad}
.service .service-name{overflow-wrap:anywhere;line-height:1.3}
.service .service-price{white-space:nowrap;letter-spacing:-.02em}
.job-entry{min-height:46px}
.quote-pane .btnrow button{min-height:43px}
.quote-item .price-input input{min-width:0}
.internal .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.summary-grid .num{overflow-wrap:anywhere;font-size:clamp(15px,3.5vw,24px)}
.npd-dialog,.job-modal,.ai-dialog{overscroll-behavior:contain}
.npd-dialog button,.job-modal button,.ai-dialog button{line-height:1.25}
.npd-dialog input,.job-modal input,.ai-dialog input{font-size:16px}
@media (max-width:840px) {
 .layout{padding:0 0 calc(156px + env(safe-area-inset-bottom))}
 .top{padding:11px 12px;gap:9px;align-items:center}
 .top .brand{gap:9px;min-width:0;flex:1}
 .top .brand .symbol{width:38px;height:38px;flex-shrink:0;font-size:18px}
 .top .brand h1{font-size:17px;line-height:1.14;letter-spacing:-.015em}
 .top .eyebrow{font-size:9px}
 .top .intro{display:none}
 .top .top-actions{gap:4px;flex-shrink:0}
 .top .top-actions button{width:36px;height:36px;min-width:36px;padding:5px;display:grid;place-items:center;font-size:17px}
 .top .top-actions .settings-label{display:none}
 .quick-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0 10px;padding:10px 0}
 .quick-flow button{font-size:11px;gap:3px;flex-direction:column;padding:8px 2px;min-height:54px;white-space:normal;line-height:1.1;border-radius:10px}
 .quick-flow button span{width:20px;height:20px;font-size:9px}
 .catalog-pane .pane-header{padding:13px 10px 9px}
 .catalog-pane .pane-header .row{align-items:center}
 .catalog-pane .pane-header h2,.quote-pane .pane-header h2{font-size:16px}
 .catalog-pane .countpill{font-size:10px}
 .catalog-pane .search input{min-height:46px;font-size:16px}
 .catalog-shortcuts{gap:7px}
 .catalog-shortcuts .subtle{font-size:11px}
 .service{gap:7px}
 .service-info{min-width:0}
 .service-action{flex-shrink:0}
 .service .service-price{font-size:14px}
 .service .add{min-height:40px}
 .quote-pane .pane-header{gap:8px;padding:13px 12px}
 .quote-pane .pane-header button{min-height:38px;font-size:12px}
 .quote-pane .btnrow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .quote-pane .btnrow button{min-width:0;white-space:normal;padding:9px}
 .internal .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .summary-grid .num{font-size:clamp(15px,4.2vw,23px)}
 .mobilenav{grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
 .mobilenav button{padding:10px 3px;min-width:0;font-size:11px}
 .mini-summary:not(.hidden){bottom:calc(70px + env(safe-area-inset-bottom))}
 .npd-shortcut{min-height:46px}
 .npd-dialog,.job-modal,.ai-dialog{height:100dvh;max-height:100dvh;max-width:100vw;width:100vw;border-radius:0;margin:0}
 .job-body,.npd-body,.ai-body{overflow-x:hidden}
 .job-warranty-row{align-items:start}
 .job-warranty-row strong{overflow-wrap:anywhere}
}
@media (max-width:360px){
 .top .brand .symbol{display:none}
 .top .brand h1{font-size:16px}
 .quick-flow button{font-size:10px}
 .service .service-price{font-size:13px}
 .summary-grid .num{font-size:15px}
}
