@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url('./fonts/Inter-400.ttf') format('truetype')}
@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url('./fonts/Inter-500.ttf') format('truetype')}
@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url('./fonts/Inter-600.ttf') format('truetype')}
@font-face{font-family:Kanit;font-style:normal;font-weight:400;font-display:swap;src:url('./fonts/Kanit-400.ttf') format('truetype')}
@font-face{font-family:Kanit;font-style:normal;font-weight:500;font-display:swap;src:url('./fonts/Kanit-500.ttf') format('truetype')}
:root{--primary:#6f91c8;--form:#f7f9fd;--text:#243247;--border:#ccd9ea;--muted:#526475;--error:#c43d4b;--shadow:0 4px 12px rgba(36,50,71,.12)}
*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--form);color:var(--text);font:400 14px/20px Inter,Arial,sans-serif;overflow:hidden}.selector{height:100dvh;display:flex;flex-direction:column;min-height:0}.corporate-density{zoom:.9}.page-header{flex:none;padding:16px 24px;background:white;border-bottom:1px solid var(--border)}.brand{font:500 12px/18px Inter,Arial,sans-serif;color:var(--muted)}h1{font:500 24px/32px Kanit,Arial,sans-serif;margin:0}.page-header p{margin:8px 0 0;line-height:20px}.workspace{min-height:0;flex:1;display:grid;grid-template-columns:minmax(300px,340px) minmax(0,1fr);gap:21.6px;padding:14.4px 21.6px 21.6px}.controls,.map-panel{min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--form)}.controls{overflow-y:auto;padding:16px}.map-panel{display:flex;flex-direction:column;min-height:0;background:white;padding:16px}.map{min-height:260px;flex:1;border-radius:8px;background:#e9f0fb}.status-panel{margin-top:16px}.map-hint{margin:0;font:400 14px/20px Inter,Arial,sans-serif}.field{position:relative;min-width:0;margin-bottom:8px}.field label{display:block;margin:0 0 4px;font:600 12px/16px Inter,Arial,sans-serif}.input-shell{position:relative}input,textarea,select,button{font-family:Inter,Arial,sans-serif;color:var(--text);box-sizing:border-box;border-radius:6px}input,textarea,select{display:block;width:100%;height:32px;padding:5px 10px;border:1px solid var(--border);font-size:14px;font-weight:400;line-height:20px;background:white;min-width:0}textarea{min-height:80px;height:auto;resize:vertical}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(111,145,200,.22)}input[readonly]{background:#e9edf3;color:var(--muted);cursor:text;user-select:text}textarea[readonly]{cursor:text;user-select:text}input[type=number]{appearance:textfield}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.numeric,input[type=number]{font-variant-numeric:tabular-nums;letter-spacing:normal}select{appearance:auto}.input-shell.required>input{padding-right:36px}.input-shell.invalid>input{padding-right:40px;border-color:var(--error)}.input-shell.required.invalid>input{padding-right:64px}.input-shell.invalid>input:focus{box-shadow:0 0 0 3px rgba(196,61,75,.22)}.icon{display:inline-block;flex:none;width:20px;height:20px;background:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain}.required-flag{position:absolute;top:6px;right:10px;width:16px;height:16px;color:var(--error);mask-image:url('./icons/flag.svg');pointer-events:none}.invalid .required-flag{right:38px}.circle-alert{mask-image:url('./icons/circle-alert.svg')}.close-icon{mask-image:url('./icons/x.svg')}.circle-x{mask-image:url('./icons/circle-x.svg')}.info-icon{mask-image:url('./icons/info.svg')}.field-error{position:absolute;right:0;top:2px;width:28px;height:28px;min-height:28px;padding:4px;border:0;background:transparent;color:var(--error);display:grid;place-items:center}.field-error:hover{background:transparent;color:var(--error)}.field-popup{position:absolute;z-index:10;top:calc(100% + 8px);left:0;right:0;background:#f9e6e9;color:#000;border:2px solid #e8bcc3;border-radius:8px;padding:16px;box-shadow:var(--shadow)}.field-popup p{margin:0;padding-right:24px;font:400 14px/1.55 Inter,Arial,sans-serif}.dismiss-error{position:absolute;top:4px;right:4px;width:28px;height:28px;min-height:28px;padding:4px;border:0;background:transparent;display:grid;place-items:center}.dismiss-error:hover{background:#e9f0fb;color:var(--text)}button{min-height:32px;padding:5px 12px;border:1px solid var(--primary);background:var(--primary);color:white;font-size:14px;font-weight:500;line-height:20px;cursor:pointer}button:hover{background:#5f80b8;border-color:#5f80b8}button.neutral{background:white;color:var(--text);border-color:var(--border)}button.neutral:hover{background:#e9f0fb;border-color:var(--primary)}button:focus-visible{outline:3px solid rgba(111,145,200,.4);outline-offset:2px}button:disabled,select:disabled{background:#e9edf3;color:var(--muted);border-color:var(--border);opacity:1;cursor:default}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;justify-content:flex-start}.search-results{margin-top:16px;display:flex;flex-direction:column;gap:8px}.result{text-align:left;overflow-wrap:anywhere}.coordinate-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}fieldset{min-width:0;margin:24px 0 0;padding:16px 0 0;border:0;border-top:1px solid var(--border)}legend{font:500 20px/28px Kanit,Arial,sans-serif;padding:0;margin-bottom:16px;color:var(--text)}.section-help{margin:0 0 16px}.address{margin:16px 0 0;white-space:pre-wrap}.route-summary{display:inline-block;margin:16px 0 0;min-height:24px;padding:1px 8px;border:1px solid #b6d8c6;border-radius:6px;background:#e8f2ed;color:#000;font:500 12px/18px Inter,Arial,sans-serif}.status-message{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:start;gap:16px;padding:20px;border:2px solid #bfcfeb;border-radius:8px;background:#e9f0fb;color:#000;box-shadow:var(--shadow)}.status-message.error{grid-template-columns:40px minmax(0,1fr) 40px;background:#f9e6e9;border-color:#e8bcc3}.message-icon-box{width:40px;height:40px;margin-top:3px;display:grid;place-items:center;color:#365d91;background:transparent}.error .message-icon-box{color:var(--error)}.message-icon-box .icon{width:28px;height:28px}.message-title{margin:0;font:500 20px/1.3 Kanit,Arial,sans-serif;color:#000}.message-description{margin:6px 0 0;font:400 14px/1.55 Inter,Arial,sans-serif;color:#000}.error .message-content{text-align:center}.retry-actions{display:flex;justify-content:center;margin-top:16px}.retry-actions button{font-size:12px;line-height:18px}.point-label{padding:10.8px;max-width:270px;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);font:400 12.6px/18px Inter,Arial,sans-serif}#blazor-error-ui{display:none}
@media(max-width:767px){.workspace{display:flex;flex-direction:column;overflow-y:auto;padding:12px;gap:16px}.map-panel{order:-1;min-height:340px;flex:none;padding:12px}.map{height:42dvh;min-height:260px;flex:none}.controls{overflow:visible;flex:none}.coordinate-pair{grid-template-columns:1fr;gap:0}.page-header{padding:12px 16px}.page-header h1{font-size:22px}.actions{flex-direction:column;align-items:stretch}.status-message{padding:16px;gap:12px;grid-template-columns:32px minmax(0,1fr)}.status-message.error{grid-template-columns:32px minmax(0,1fr) 32px}.message-icon-box{width:32px;height:32px}.message-balance{width:32px}}
@media(max-width:767px),(pointer:coarse){input,select,button{min-height:48.8889px}input,select{font-size:16px}.required-flag{top:16px}.invalid .required-flag{right:54px}.input-shell.invalid>input{padding-right:56px}.input-shell.required.invalid>input{padding-right:80px}.field-error,.dismiss-error{width:48.8889px;height:48.8889px;min-height:48.8889px;top:0;padding:12px}.invalid .field-error{right:0}.field-popup p{padding-right:44px}.dismiss-error{top:2px;right:2px}.field-error .icon,.dismiss-error .icon{width:20px;height:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.retry-icon{width:16px;height:16px;mask-image:url('icons/rotate-cw.svg')}.retry-actions button{display:flex;align-items:center;gap:8px}textarea{resize:vertical;min-height:64px}
