:root{font-family:system-ui,-apple-system,"Segoe UI","Noto Sans Thai",Tahoma,sans-serif;color:#172033;background:#eaf0f6}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer}header{background:#10253f;color:#fff;padding:12px 16px;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}header h1{font-size:1.08rem;margin:0}header p{font-size:.82rem;opacity:.82;margin:3px 0 0}.status{font-size:.8rem;background:#163c62;padding:6px 9px;border-radius:999px}main{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(320px,.75fr);height:calc(100vh - 66px)}.map-wrap{position:relative;min-width:0}#map{height:100%;min-height:620px;background:#dbe4ec}.map-fatal{position:absolute;inset:20px;z-index:900;background:#fff7dd;border:1px solid #e6cc80;border-radius:14px;padding:18px;height:max-content}.hidden{display:none!important}aside{padding:14px;overflow:auto;background:#fff;border-left:1px solid #dbe3ec}.card{border:1px solid #d9e2ec;border-radius:14px;padding:13px;margin-bottom:12px;background:#fff;box-shadow:0 2px 10px #1720330d}.card h2{font-size:1rem;margin:0 0 9px}.shop-card{background:#eef9f1;border-color:#b9dfc3}.small{font-size:.77rem;color:#66768a;line-height:1.45;margin-top:4px}.hint{font-size:.84rem;color:#596b80;line-height:1.5}.vehicle-switch,.actions,.input-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.vehicle-switch button,.actions button,.input-actions button,.full,.copy{border:1px solid #c7d3df;background:#f3f7fa;padding:10px;border-radius:10px;font-weight:750}.vehicle-switch button.active{background:#10253f;color:#fff;border-color:#10253f}.actions button:first-child,.input-actions button,.copy{background:#145f9c;color:#fff;border-color:#145f9c}.secondary{background:#fff!important;color:#42566d!important}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px}.metrics>div{background:#f4f7fa;border-radius:10px;padding:10px}.metrics span{font-size:.76rem;color:#66768a;display:block}.metrics strong{display:block;font-size:1.06rem;margin-top:3px}.price-result{font-size:1.42rem;font-weight:850;color:#0d4f80;margin-top:13px;line-height:1.25}.detail{font-size:.82rem;color:#4c6076;line-height:1.55;margin-top:7px}.copy{margin-top:10px;width:100%}.row{display:flex;justify-content:space-between;gap:10px;border-top:1px dashed #d9e1e8;padding:8px 0;font-size:.85rem}.row:first-of-type{border-top:0}label{display:block;font-weight:750;font-size:.83rem;margin:8px 0 6px}.input-actions{grid-template-columns:1fr auto}.input-actions input{width:100%;border:1px solid #bac8d6;border-radius:9px;padding:10px}.full{width:100%;margin-top:7px}.warning{background:#fff7dd;border-color:#ead184;color:#684f00}.warning p,.network-note p{font-size:.8rem;line-height:1.5;margin:6px 0 0}.network-note{background:#f6f8fa}.leaflet-control-attribution{font-size:10px}.shop-pin,.customer-pin{width:20px;height:20px;border:3px solid #fff;border-radius:50%;box-shadow:0 1px 8px #0005}.shop-pin{background:#10253f}.customer-pin{background:#d23d32}@media(max-width:900px){header{padding:9px 12px}main{display:block;height:auto}#map{height:55vh;min-height:350px}aside{border-left:0;border-top:1px solid #dbe3ec;padding-bottom:80px}.metrics{grid-template-columns:1fr 1fr}}
.search-panel{position:absolute;z-index:700;top:12px;left:12px;width:min(390px,calc(100% - 24px));max-height:calc(100% - 24px);overflow:auto;background:#ffffffee;border:1px solid #cbd8e5;border-radius:16px;padding:12px;box-shadow:0 10px 30px #10253f2b;backdrop-filter:blur(7px)}
.search-title h2{font-size:1rem;margin:0}.search-title p{font-size:.78rem;color:#607286;margin:3px 0 10px;line-height:1.35}
.area-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.area-grid label:first-child{grid-column:1/-1}
.search-panel label{font-size:.76rem;font-weight:750;color:#42566d;margin:0}
.search-panel select,.search-panel input{display:block;width:100%;margin-top:5px;border:1px solid #bac8d6;border-radius:10px;padding:9px 10px;background:#fff;color:#172033;min-height:41px}
.search-panel select:disabled{background:#eef2f5;color:#8593a3}.quick-label{display:block!important;margin-top:9px!important}
.search-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}.search-actions button{border:1px solid #c7d3df;padding:10px;border-radius:10px;font-weight:800}
.search-primary{background:#145f9c;color:#fff;border-color:#145f9c!important}.search-primary:disabled{opacity:.6;cursor:wait}
.search-meta{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:9px;font-size:.73rem;color:#607286}.search-meta #areaSearchStatus{text-align:right}
.search-results{display:grid;gap:6px;margin-top:8px;max-height:225px;overflow:auto}.search-result-item{width:100%;text-align:left;border:1px solid #d4dee8;background:#fff;border-radius:10px;padding:9px;display:block;color:#172033}.search-result-item:hover,.search-result-item.active{border-color:#145f9c;background:#eef6fc}.search-result-item strong{display:block;font-size:.84rem}.search-result-item span{display:block;font-size:.7rem;color:#6b7b8d;line-height:1.35;margin-top:2px}
.search-source{font-size:.66rem;color:#7c8a99;margin:8px 0 0;line-height:1.35}.search-pin{width:22px;height:22px;border:3px solid #fff;border-radius:50%;background:#1685c7;box-shadow:0 1px 9px #0006}
@media(max-width:900px){.map-wrap{display:flex;flex-direction:column}.search-panel{position:relative;top:auto;left:auto;width:auto;max-height:none;margin:10px;order:0;z-index:1;box-shadow:0 3px 14px #10253f1d}.map-wrap #map{order:1}.search-results{max-height:190px}}
@media(max-width:520px){.area-grid{grid-template-columns:1fr}.area-grid label:first-child{grid-column:auto}.search-panel{margin:8px;padding:11px}.search-actions{grid-template-columns:1fr 1fr}}
/* Staff-simple mode */
.step-kicker{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;background:#e8f1fa;color:#145f9c;font-size:.68rem;font-weight:850;letter-spacing:.02em;margin-bottom:6px}
.staff-step-card{border-color:#c6d9ea;box-shadow:0 4px 16px #10253f12}
.staff-step-card h2,.staff-result-card h2{margin-bottom:10px}
.simple-hint{margin:10px 0;color:#51657a}
.staff-result-card{border:2px solid #b7d1e6;background:linear-gradient(180deg,#fff 0%,#f8fbfd 100%);box-shadow:0 6px 20px #10253f12}
.staff-result-card .price-result{font-size:1.7rem;margin:4px 0 12px;color:#0c5b90}
.staff-result-card .metrics{margin-top:4px}
.price-details{margin-top:10px;border-top:1px dashed #d6e0e9;padding-top:8px}
.price-details summary{cursor:pointer;color:#355b77;font-size:.8rem;font-weight:800;list-style:none}
.price-details summary::-webkit-details-marker{display:none}
.price-details summary::before{content:'▸ ';display:inline-block;transition:transform .15s ease}
.price-details[open] summary::before{transform:rotate(90deg)}
.settings-panel{border:1px solid #d8e1e9;border-radius:14px;background:#f8fafc;margin-bottom:12px;overflow:hidden}
.settings-panel>summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 14px;font-weight:850;color:#34495e;list-style:none}
.settings-panel>summary::-webkit-details-marker{display:none}
.settings-panel>summary::after{content:'▾';font-size:.9rem;color:#718196;transition:transform .15s ease}
.settings-panel[open]>summary::after{transform:rotate(180deg)}
.settings-panel>summary span{display:block}
.settings-panel>summary small{display:block;font-size:.67rem;font-weight:650;color:#8090a0;text-align:right}
.settings-content{padding:0 10px 10px}
.setting-card{box-shadow:none;margin-bottom:9px}
.search-title .step-kicker{margin-bottom:4px}
@media(max-width:900px){
  aside{padding-top:10px}
  .staff-step-card,.staff-result-card,.settings-panel{max-width:760px;margin-left:auto;margin-right:auto}
  .staff-result-card .price-result{font-size:1.55rem}
}
@media(max-width:520px){
  header h1{font-size:1rem}
  header p{font-size:.76rem}
  .staff-result-card .price-result{font-size:1.45rem}
  .settings-panel>summary{align-items:flex-start}
  .settings-panel>summary small{max-width:145px}
}
/* PWA staging: device-local Manager Lock */
.manager-lockbar{border:1px solid #cfdce8;border-radius:12px;background:#f4f8fb;padding:11px;margin-bottom:10px}
.manager-lockbar>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}
.manager-lockbar b{font-size:.86rem}.manager-lockbar span{font-size:.72rem;color:#66768a;font-weight:800}
.manager-lock-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:9px}
.manager-lock-actions button{border:1px solid #c7d3df;padding:8px 9px;border-radius:9px;font-size:.76rem;font-weight:800}
.manager-lockbar p{font-size:.68rem;color:#758598;line-height:1.4;margin:8px 0 0}
.manager-dialog{border:0;border-radius:16px;padding:0;width:min(430px,calc(100vw - 28px));box-shadow:0 24px 80px #10253f55}
.manager-dialog::backdrop{background:#07182b99;backdrop-filter:blur(2px)}
.manager-dialog form{padding:18px;background:#fff}
.manager-dialog-head{display:flex;gap:11px;align-items:flex-start;margin-bottom:14px}
.manager-dialog-icon{font-size:1.7rem;line-height:1}
.manager-dialog h2{font-size:1.08rem;margin:0;color:#172033}
.manager-dialog-head p{font-size:.78rem;color:#65768a;margin:4px 0 0;line-height:1.4}
.manager-dialog label{font-size:.8rem;font-weight:800;color:#42566d;margin:9px 0 0}
.manager-dialog input{display:block;width:100%;margin-top:5px;border:1px solid #bac8d6;border-radius:10px;padding:11px;font:inherit;letter-spacing:.15em}
.manager-error{min-height:19px;color:#a52822;font-size:.73rem;font-weight:750;margin-top:8px}
.manager-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
.manager-dialog-actions button{border:1px solid #c7d3df;border-radius:10px;padding:10px;font-weight:850}
.manager-dialog-actions button[type=submit]{background:#145f9c;color:#fff;border-color:#145f9c}
.manager-security-note{font-size:.65rem;color:#7b8897;line-height:1.4;margin:11px 0 0}
.settings-panel.locked>summary{background:#fafbfd}
.settings-panel.locked>summary span::after{content:'  🔒';font-size:.78rem}
@media(max-width:520px){.manager-lock-actions{grid-template-columns:1fr}.manager-dialog form{padding:15px}}
