:root{color:#1d252d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f6f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}.app-shell{width:min(1180px,100% - 32px);min-height:100vh;margin:0 auto;padding:32px 0}.app-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.eyebrow{color:#587184;letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;font-size:.78rem;font-weight:700}h1,h2{margin:0}h1{font-size:clamp(2rem,5vw,3.2rem);line-height:1}.tab-bar{border-bottom:1px solid #ccd5dc;flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.tab-button{color:#4c5f6e;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;justify-content:center;align-items:center;min-height:44px;padding:0 14px;display:inline-flex}.tab-button:hover,.tab-button:focus-visible{color:#0d5f73;background:#e6eef2;outline:none}.tab-button[aria-selected=true]{color:#0a4f60;background:#fff;border-bottom-color:#0a8cad}.tab-button span{white-space:nowrap;margin-left:8px}.tab-content{min-height:520px}.placeholder-panel{background:#fff;border:1px solid #d7dee3;border-radius:8px;min-height:520px;padding:28px}.placeholder-panel h2,.panel h2{font-size:1.35rem}.panel{background:#fff;border:1px solid #d7dee3;border-radius:8px;min-height:520px;padding:28px}.panel-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.panel-header p{color:#587184;margin:8px 0 0;font-size:.92rem}.booking-form{gap:18px;display:grid}fieldset{border:1px solid #d7dee3;border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0;padding:18px;display:grid}legend{color:#344955;padding:0 6px;font-weight:700}.form-section{background:#fff;border:1px solid #d7dee3;border-radius:8px;overflow:hidden}.form-section summary{color:#344955;cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:0 18px;font-weight:700;list-style:none;display:flex}.form-section summary::-webkit-details-marker{display:none}.form-section summary svg{flex:none;transition:transform .16s}.form-section[open] summary svg{transform:rotate(180deg)}.form-section-body{border-top:1px solid #d7dee3;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:18px;display:grid}label{color:#344955;gap:7px;font-size:.9rem;font-weight:700;display:grid}input,textarea,select{color:#1d252d;background:#fff;border:1px solid #bdc9d1;border-radius:6px;width:100%}input,select{min-height:42px;padding:0 12px}textarea{resize:vertical;min-height:96px;padding:10px 12px}input:focus,textarea:focus,select:focus{border-color:#0a8cad;outline:3px solid #ccecf3}.field-wide{grid-column:1/-1}.field-hint{color:#647887;font-size:.8rem;font-weight:500}.form-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.primary-button,.secondary-button,.icon-button{cursor:pointer;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.primary-button,.secondary-button{min-height:42px;padding:0 16px}.primary-button{color:#fff;background:#0a718a;border:1px solid #087d99}.primary-button:hover,.primary-button:focus-visible{background:#085d72;outline:none}.primary-button:disabled{cursor:not-allowed;background:#98a8b2;border-color:#98a8b2}.secondary-button{color:#29404d;background:#fff;border:1px solid #bdc9d1}.secondary-button:hover,.secondary-button:focus-visible{color:#0a4f60;border-color:#0a8cad;outline:none}.secondary-button:disabled{color:#90a0aa;cursor:not-allowed;background:#f3f6f8;border-color:#d7dee3}.icon-button{color:#516675;background:#fff;border:1px solid #bdc9d1;align-self:end;width:42px;height:42px}.icon-button:hover,.icon-button:focus-visible{color:#8d2b2b;border-color:#d48787;outline:none}.icon-button:disabled{color:#aeb9c0;cursor:not-allowed;background:#f3f6f8}.primary-button span,.secondary-button span{margin-left:8px}.status-message{border-radius:8px;padding:14px 16px;font-size:.92rem}.status-error{color:#7a2424;background:#fff1f1;border:1px solid #e6b6b6}.status-success{color:#1f5c37;background:#effaf3;border:1px solid #a9d9be}.status-success pre{color:#1d252d;white-space:pre-wrap;margin:10px 0 0;overflow:auto}.spin{animation:.8s linear infinite spin}.simulator-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:20px;display:grid}.socket-toolbar{background:#f8fafb;border:1px solid #d7dee3;border-radius:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:16px;margin-bottom:18px;padding:18px;display:grid}.token-toolbar{background:#fff;border:1px solid #d7dee3;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px;margin-top:-8px;margin-bottom:18px;padding:18px;display:grid}.driver-list{gap:18px;display:grid}.driver-card{background:#fff;border:1px solid #d7dee3;border-radius:8px;padding:18px}.driver-card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.driver-card-header h3{color:#344955;margin:0;font-size:1.05rem}.result-map-section{background:#fff;border:1px solid #d7dee3;border-radius:8px;margin-bottom:18px;padding:18px}.map-frame{background:#eef3f6;border:1px solid #d7dee3;border-radius:8px;width:100%;height:280px;overflow:hidden}.map-frame-large{height:360px}.driver-marker{color:#fff;white-space:nowrap;background:#0a718a;border:1px solid #0a718a;border-radius:999px;align-items:center;gap:4px;max-width:150px;padding:5px 8px;font-size:.78rem;font-weight:700;display:inline-flex;position:absolute;transform:translate(-50%,-100%);box-shadow:0 6px 16px #1d252d2e}.driver-marker svg{flex:none}.driver-marker span{text-overflow:ellipsis;overflow:hidden}.marker-active{background:#15804a;border-color:#0e7c44}.coordinate-list{grid-column:1/-1;gap:12px;display:grid}.coordinate-row{grid-template-columns:36px minmax(0,1fr) minmax(0,1fr) 42px;align-items:end;gap:10px;display:grid}.coordinate-index{color:#587184;background:#f6f8fa;border:1px solid #d7dee3;border-radius:6px;justify-content:center;align-items:center;width:36px;height:42px;font-weight:700;display:inline-flex}.split-actions{justify-content:flex-start}.socket-log{background:#f8fafb;border:1px solid #d7dee3;border-radius:8px;min-height:220px;padding:18px}.socket-log h3{color:#344955;margin:0 0 12px;font-size:1rem}.socket-log p{color:#647887;margin:0}.socket-log ol{gap:8px;max-height:480px;margin:0;padding-left:20px;display:grid;overflow:auto}.socket-log li{overflow-wrap:anywhere;color:#344955;font-size:.86rem}.socket-log .log-error{color:#8d2b2b}.socket-log .log-receive{color:#0a5d72}.table-wrap{border:1px solid #d7dee3;border-radius:8px;overflow-x:auto}.data-table{border-collapse:collapse;background:#fff;width:100%}.data-table th,.data-table td{text-align:left;vertical-align:middle;white-space:nowrap;border-bottom:1px solid #e3e8ec;padding:12px 14px}.data-table th{color:#344955;background:#f6f8fa;font-size:.86rem}.data-table tr:last-child td{border-bottom:0}.table-actions{flex-wrap:wrap;gap:8px;display:flex}.table-actions .secondary-button{min-height:36px;padding:0 12px}.offer-log{margin-top:18px}.offer-group-list{gap:18px;display:grid}.offer-group{background:#fff;border:1px solid #d7dee3;border-radius:8px;padding:18px}.offer-token-field{width:min(360px,100%)}.vehicle-list{gap:12px;display:grid}.empty-state{color:#647887;background:#f8fafb;border:1px dashed #bdc9d1;border-radius:6px;padding:14px;font-size:.9rem}.vehicle-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px;align-items:end;gap:10px;display:grid}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=640px){.app-shell{width:min(100% - 20px,1180px);padding:20px 0}.tab-bar{border-bottom:0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.tab-button{background:#fff;border:1px solid #ccd5dc;border-radius:8px}.tab-button[aria-selected=true]{border-color:#0a8cad}.panel,.placeholder-panel{padding:18px}fieldset{grid-template-columns:1fr;padding:14px}.form-section summary{padding:0 14px}.form-section-body{grid-template-columns:1fr;padding:14px}.simulator-layout{grid-template-columns:1fr}.socket-toolbar,.token-toolbar{grid-template-columns:1fr;padding:14px}.coordinate-row{grid-template-columns:32px minmax(0,1fr) minmax(0,1fr) 42px}.vehicle-row{grid-template-columns:1fr}.form-actions{justify-content:stretch}.primary-button,.secondary-button{width:100%}}
