:root{--bg: #0f1419;--bg-secondary: #1a1f26;--panel: #1a1f26;--panel-hover: #242b35;--text: #e7e9ea;--text-secondary: #8b98a5;--text-muted: #6e7a87;--border: #2f3943;--border-light: #38444d;--accent: #1d9bf0;--accent-hover: #1a8cd8;--accent-glow: rgba(29, 155, 240, .25);--success: #00c853;--warning: #ffb300;--danger: #f4212e;--gradient-primary: linear-gradient(135deg, #1d9bf0 0%, #7c3aed 100%);--gradient-card: linear-gradient(180deg, #1e252d 0%, #1a1f26 100%);--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow-md: 0 4px 16px rgba(0,0,0,.5);--shadow-lg: 0 10px 40px rgba(0,0,0,.6);--shadow-glow: 0 0 20px rgba(29, 155, 240, .2);--radius: 12px;--radius-lg: 16px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;font-size:14px;font-weight:500;color:var(--text);background:var(--panel);border:1px solid var(--border);padding:10px 16px;border-radius:var(--radius);cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:6px}button:hover{background:var(--panel-hover);border-color:var(--border-light)}button:active{transform:scale(.98)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow-glow)}button.primary:hover{background:var(--accent-hover)}.appShell{height:100vh;min-height:100vh;display:grid;grid-template-rows:auto 1fr}@supports (height: 100dvh){.appShell{height:100dvh;min-height:100dvh}}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#1a1f26f2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.brand{display:flex;flex-direction:column;gap:2px}.brandTitle{font-size:18px;font-weight:700;letter-spacing:-.3px;color:var(--text)}.brandSub{font-size:12px;color:var(--text-secondary)}.main{display:grid;grid-template-columns:420px 1fr;gap:0;height:100%;min-height:0}@media (max-width: 1024px){.main{grid-template-columns:1fr;grid-template-rows:minmax(280px,52vh) 1fr}.sidePanel{max-height:none;overflow-y:auto;border-right:none;border-bottom:1px solid var(--border)}.mapContainer{min-height:48vh}}@media (max-width: 640px){.topbar{flex-direction:column;align-items:stretch;gap:10px;padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top))}.brandTitle{font-size:16px}.brandSub{font-size:12px;line-height:1.25}.topbar .fieldRow{justify-content:stretch!important;width:100%;gap:10px}.topbar .fieldRow>a{flex:1}.topbar .fieldRow button{width:100%;justify-content:center}.fieldRow{flex-direction:column;gap:10px}.field{min-width:0}select,input{font-size:16px}.panelHeader,.panelBody{padding:16px}.mapControlBtns{flex-wrap:wrap}}.sidePanel{background:var(--panel);border-right:1px solid var(--border);overflow-y:auto}.panel{background:var(--panel)}.panelHeader{padding:20px;border-bottom:1px solid var(--border)}.panelTitle{font-size:18px;font-weight:700;color:var(--text)}.panelSub{font-size:13px;color:var(--text-secondary);margin-top:4px}.panelBody{padding:20px}.fieldRow{display:flex;gap:12px;flex-wrap:wrap}.field{flex:1;min-width:140px;display:flex;flex-direction:column;gap:6px}label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}select,input{width:100%;padding:12px 14px;font-size:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);transition:border-color .15s,box-shadow .15s}select:focus,input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}select option{background:var(--panel);color:var(--text)}.card{background:var(--gradient-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;margin-top:16px;box-shadow:var(--shadow-sm)}.cardHeader{display:flex;justify-content:space-between;align-items:flex-start}.cardTitle{font-size:16px;font-weight:700;margin-bottom:4px;color:var(--text)}.cardMeta{font-size:13px;color:var(--text-secondary);margin-bottom:8px}.cardDesc{font-size:14px;line-height:1.5;color:var(--text-secondary);margin-bottom:12px}.cardActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.locationCard{background:var(--gradient-card);border-color:var(--border-light)}.completeBtn{width:32px;height:32px;padding:0;border-radius:8px;font-size:16px;display:flex;align-items:center;justify-content:center}.completeBtn.completed{background:#00c85326;border-color:var(--success)}.infoGrid{display:grid;gap:10px;margin-top:12px}.infoItem{display:flex;align-items:flex-start;gap:10px;font-size:13px}.infoIcon{flex-shrink:0;width:20px;text-align:center}.infoText{color:var(--text-secondary);line-height:1.4}.trafficWarning{color:var(--warning);font-weight:500}.routeNote{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);font-size:12px;color:var(--text-muted)}.errorText{color:var(--danger);font-size:13px;margin-top:8px}.aiHint{margin-top:16px;padding:12px 16px;background:var(--accent-glow);border:1px solid rgba(29,155,240,.3);border-radius:var(--radius);font-size:13px;color:var(--text)}.mapControls{margin-top:16px;padding:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:12px}.mapControlGroup{display:flex;flex-direction:column;gap:6px}.mapControlLabel{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase}.mapControlBtns{display:flex;gap:6px}.mapControlBtn{width:40px;height:40px;padding:0;font-size:18px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--bg);border-color:var(--border)}.mapControlBtn.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:var(--shadow-glow)}.mapContainer{position:relative;height:100%;background:var(--bg-secondary)}.mapLoading,.mapError{height:100%;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--text-secondary);background:var(--bg-secondary)}.mapWrapper{position:relative;width:100%;height:100%;padding:12px}.mapWrapper .mapRouteBtns{position:absolute;top:16px;right:16px;display:flex;gap:10px;z-index:2}.mapWrapper .mapStartBtn{display:inline-flex;align-items:center;justify-content:center;padding:10px 12px;border-radius:12px;border:1px solid rgba(88,166,255,.35);background:#58a6ff2e;color:var(--text);text-decoration:none;font-weight:700;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mapWrapper .mapStartBtn:hover{background:#58a6ff40}.mapWrapper .mapRouteBtns .mapClearBtn{position:static;top:auto;right:auto}.mapClearBtn{position:absolute;top:18px;right:18px;z-index:900;padding:10px 14px;border-radius:999px;background:#1a1f26eb;color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-md)}.mapClearBtn:hover{border-color:#1d9bf080;box-shadow:var(--shadow-md),var(--shadow-glow)}.mapCalc{position:absolute;bottom:18px;left:18px;z-index:900;display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;background:#1a1f26eb;border:1px solid var(--border);color:var(--text);box-shadow:var(--shadow-md)}.loadingSpinner{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.18);border-top-color:var(--accent);animation:spin .8s linear infinite}.loadingSpinner.small{width:14px;height:14px}@keyframes spin{to{transform:rotate(360deg)}}.weatherOverlay{position:absolute;top:16px;left:16px;z-index:500}.weatherWidget{display:flex;align-items:center;gap:8px;background:#1a1f26f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:10px 14px;border-radius:var(--radius);box-shadow:var(--shadow-md);border:1px solid var(--border)}.weatherIcon{width:48px;height:48px}.weatherInfo{display:flex;flex-direction:column;gap:2px}.weatherTemp{font-size:20px;font-weight:700;color:var(--text)}.weatherDesc{font-size:12px;color:var(--text-secondary);text-transform:capitalize}.weatherHumidity{font-size:11px;color:var(--text-muted)}.aiToggle{position:absolute;bottom:24px;right:24px;width:60px;height:60px;border-radius:50%;background:var(--gradient-primary);color:#fff;font-size:28px;border:none;box-shadow:var(--shadow-lg),var(--shadow-glow);z-index:1000;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .2s,box-shadow .2s}.aiToggle:hover{transform:scale(1.08);box-shadow:0 12px 48px #1d9bf066}.aiChatOverlay{position:absolute;bottom:100px;right:24px;width:400px;max-width:calc(100vw - 48px);height:520px;max-height:calc(100vh - 200px);z-index:1000;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid var(--border)}.aiChat{display:flex;flex-direction:column;height:100%;background:var(--panel)}.aiChatHeader{padding:16px;background:var(--gradient-primary);color:#fff}.aiChatHeaderTop{display:flex;justify-content:space-between;align-items:center}.aiChatTitle{font-size:16px;font-weight:700}.aiChatStatus{font-size:12px}.aiChatSub{font-size:12px;opacity:.9;margin-top:4px}.aiQuickActions{display:flex;gap:6px;padding:12px;overflow-x:auto;background:var(--bg);border-bottom:1px solid var(--border)}.aiQuickBtn{flex-shrink:0;padding:8px 12px;font-size:12px;border-radius:20px;background:var(--panel);border-color:var(--border)}.aiQuickBtn:hover{background:var(--panel-hover);border-color:var(--accent)}.aiChatMessages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--bg)}.aiChatEmpty{text-align:center;color:var(--text-secondary);font-size:14px;padding:20px}.aiWelcome{font-size:24px;margin-bottom:8px}.aiMsg{max-width:85%;padding:12px 16px;border-radius:16px;font-size:14px;line-height:1.5;white-space:pre-wrap}.aiMsg--user{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:4px}.aiMsg--assistant{align-self:flex-start;background:var(--panel);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px}.typingDots span{animation:blink 1.4s infinite both}.typingDots span:nth-child(2){animation-delay:.2s}.typingDots span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:0}40%{opacity:1}}.aiChatInput{display:flex;gap:8px;padding:12px;border-top:1px solid var(--border);background:var(--panel)}.aiChatInput input{flex:1;padding:12px 16px;background:var(--bg)}.aiSendBtn{width:48px;padding:0;font-size:18px;background:var(--accent);border-color:var(--accent);color:#fff}.aiSendBtn:hover{background:var(--accent-hover)}.list{display:flex;flex-direction:column;gap:12px}.kv{display:grid;grid-template-columns:120px 1fr;gap:8px 12px;margin-top:12px}.kvKey{font-size:12px;color:var(--text-muted);font-weight:600}.kvVal{font-size:13px;color:var(--text)}.editorOverlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1200;display:flex;align-items:center;justify-content:center;padding:20px}.editorModal{width:640px;max-width:100%;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden}.editorHeader{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.editorHeader h2{font-size:16px;font-weight:800;letter-spacing:-.2px;color:var(--text)}.editorClose{width:36px;height:36px;padding:0;border-radius:10px}.editorForm{padding:18px;display:flex;flex-direction:column;gap:12px}.editorRow{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 640px){.editorRow{grid-template-columns:1fr}}.editorField{display:flex;flex-direction:column;gap:6px}.editorField textarea{width:100%;padding:12px 14px;font-size:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);resize:vertical}.editorField textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.editorTip{font-size:12px;color:var(--text-secondary);background:var(--bg);border:1px solid var(--border);padding:10px 12px;border-radius:var(--radius)}.editorActions{display:flex;gap:10px;align-items:center;margin-top:6px}button.danger{background:#f4212e1a;color:var(--danger);border-color:#f4212e59}button.danger:hover{background:#f4212e2e;border-color:#f4212e8c}.gm-style{background:var(--bg-secondary)!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
