:root{--bg:#0b1220;--panel:rgba(11,18,32,.82);--panel-solid:#0f172a;--border:rgba(148,163,184,.16);--border-strong:rgba(148,163,184,.3);--text:#e2e8f0;--text-dim:#94a3b8;--accent:#38bdf8;--accent-strong:#0ea5e9;--accent-2:#2dd4bf;--danger:#f87171;--radius:12px;--shadow:0 10px 32px rgba(2,6,23,.5);--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}#windy{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:0}#windy .leaflet-container{background:var(--bg)}#windy .route-end-icon,#windy .ship-icon,#windy .waypoint-icon{background:transparent!important;border:none!important;pointer-events:none!important}#windy .waypoint-icon.draft-waypoint-icon{pointer-events:auto!important;cursor:grab;width:170px!important;height:22px!important}#windy .waypoint-icon.draft-waypoint-icon .wp-delete{position:absolute;left:120px;top:50%;transform:translateY(-50%);display:none;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:1px solid hsla(0,0%,100%,.5);border-radius:50%;background:#dc2626;color:#fff;cursor:pointer;box-shadow:0 2px 6px #0206178c}#windy .waypoint-icon.draft-waypoint-icon:hover .wp-delete{display:flex}#windy .waypoint-icon.draft-waypoint-icon .wp-delete:hover{background:#ef4444}#windy .route-end-icon svg,#windy .ship-icon svg{display:block}#windy .route-end-icon{filter:drop-shadow(0 1px 2px rgba(2,6,23,.6))}#windy .waypoint-dot{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--c,var(--accent));border:2px solid hsla(0,0%,100%,.95);box-shadow:0 0 0 2px #0206178c,0 2px 8px #02061780;color:#fff;font-size:11px;font-weight:700;line-height:1;text-shadow:0 1px 2px rgba(2,6,23,.6)}#windy .route-flow{stroke-dasharray:14 10!important;animation:route-flow 1.1s linear infinite}@keyframes route-flow{to{stroke-dashoffset:-24}}#windy .leg-bubble-icon{background:transparent!important;border:none!important;pointer-events:none!important;position:relative;display:block;width:0;height:0}#windy .leg-bubble{position:absolute;left:13px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:5px;padding:2px 8px;border-radius:6px;background:#0b1220f0;border:1px solid rgba(148,163,184,.35);color:var(--text-dim);font-size:10px;font-weight:600;line-height:1.3;letter-spacing:.02em;white-space:nowrap;width:-moz-max-content;width:max-content;box-shadow:0 3px 10px #02061773}#windy .leg-bubble b{color:#fff;font-size:11px;font-weight:700;line-height:1.3}#windy .leg-bubble .leg-sep{color:#94a3b8bf;font-size:10px;line-height:1.3}#windy .leg-bubble i{font-style:normal;color:var(--accent);font-size:10px;font-weight:600;line-height:1.3}#windy .ship-icon{filter:drop-shadow(0 2px 4px rgba(2,6,23,.65))}#windy.picker-hidden .leaflet-marker-icon.picker,#windy.picker-hidden .picker{display:none!important}#windy .ship-flag-icon{background:transparent!important;border:none!important;pointer-events:none!important}#windy .ship-flag{position:relative;display:block;width:140px;height:48px}#windy .ship-flag-pole{position:absolute;left:12px;top:0;width:2px;height:48px;background:linear-gradient(180deg,#fffffff2,#94a3b8d9);border-radius:1px;box-shadow:0 0 4px #0206178c}#windy .ship-flag-banner{position:absolute;top:0;left:15px;padding:2px 12px 2px 6px;background:#dc2626!important;border:1px solid hsla(0,0%,100%,.4);border-left:none!important;color:#fff!important;font-size:11px!important;font-weight:700;line-height:1.3;letter-spacing:.03em;white-space:pre-line;max-width:220px;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,0 100%);box-shadow:0 3px 10px #02061780}button{cursor:pointer}button,input,select{font-family:inherit;color:inherit}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;border:1px solid var(--border-strong);background:#94a3b814;color:var(--text);font-size:13px;font-weight:600;line-height:1;white-space:nowrap;transition:background .15s,border-color .15s,opacity .15s}.btn:hover{background:#94a3b829}.btn.primary{background:var(--accent-strong);border-color:transparent;color:#062033}.btn.primary:hover{background:var(--accent)}.btn.ghost{background:transparent}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.full{width:100%}.btn.full,.icon-btn{justify-content:center}.icon-btn{display:inline-flex;align-items:center;width:30px;height:30px;border-radius:8px;border:none;background:transparent;color:var(--text-dim);flex:none;transition:background .15s,color .15s}.icon-btn:hover{background:#94a3b824;color:var(--text)}.icon-btn.danger:hover{background:#f8717124;color:var(--danger)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field>label{font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.input{width:100%;padding:8px 10px;border-radius:10px;border:1px solid var(--border-strong);background:#02061766;color:var(--text);font-size:13px;outline:none;transition:border-color .15s}.input:focus{border-color:var(--accent)}.input.sm{padding:6px 8px;font-size:12px}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;font-size:13px}.switch-label{color:var(--text)}.dim{color:var(--text-dim)}.tiny{font-size:12px;line-height:1.5}.group{padding-top:2px}.group h3{margin:0 0 10px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}*{scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.3) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#94a3b847;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#94a3b873}.rx-tooltip{z-index:120;padding:7px 11px;border-radius:8px;background:#0f172af5;border:1px solid var(--border-strong);color:var(--text);font-size:12px;font-weight:600;letter-spacing:.01em;box-shadow:var(--shadow);animation:rx-in .12s ease}.rx-tooltip-arrow{fill:#0f172af5}.rx-panel{z-index:90;width:360px;max-width:calc(100vw - 120px);max-height:min(640px,calc(100vh - 48px));display:flex;flex-direction:column;overflow:hidden;border-radius:18px;background:linear-gradient(180deg,#0f172aeb,#0b1220f5);backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%);border:1px solid rgba(148,163,184,.14);box-shadow:0 24px 64px #02061799,inset 0 1px #ffffff0d;animation:rx-pop-in .18s cubic-bezier(.16,1,.3,1)}.rx-scroll-root{flex:1 1 0%;min-height:0;display:flex;flex-direction:column}.rx-scroll-viewport{flex:1 1 0%;min-height:0;width:100%}.rx-scrollbar{display:flex;width:10px;padding:2px;background:transparent}.rx-scroll-thumb{background:#94a3b859;border-radius:999px}.rx-scroll-thumb:hover{background:#94a3b88c}.rx-scroll-corner{background:transparent}.rx-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:8px 10px;border-radius:10px;border:1px solid var(--border-strong);background:#02061766;color:var(--text);font-size:13px;text-align:left;cursor:pointer;outline:none;transition:border-color .15s,box-shadow .15s}.rx-select-trigger:hover{border-color:#94a3b873}.rx-select-trigger:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px #38bdf82e}.rx-select-trigger .rx-chevron{color:var(--text-dim);transition:transform .18s ease}.rx-select-trigger[data-state=open] .rx-chevron{transform:rotate(180deg)}.rx-select-content{z-index:120;max-height:320px;padding:6px;border-radius:12px;background:#0f172afa;border:1px solid var(--border-strong);box-shadow:var(--shadow);overflow:hidden;animation:rx-pop-in .14s ease}.rx-select-viewport{padding:2px}.rx-select-item{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;font-size:13px;color:var(--text);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;outline:none}.rx-select-item[data-highlighted]{background:#38bdf824}.rx-select-item[data-state=checked]{color:var(--accent);font-weight:600}.rx-select-item-indicator{display:inline-flex;color:var(--accent)}.rx-select-scroll{display:flex;align-items:center;justify-content:center;padding:4px 0;color:var(--text-dim)}.rx-switch{position:relative;width:38px;height:22px;flex:none;border-radius:999px;border:1px solid rgba(148,163,184,.3);background:#94a3b833;cursor:pointer;outline:none;transition:background .18s ease,border-color .18s ease}.rx-switch:focus-visible{box-shadow:0 0 0 3px #38bdf833}.rx-switch[data-state=checked]{background:var(--accent-strong);border-color:transparent}.rx-switch-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000059;transition:transform .18s cubic-bezier(.34,1.56,.64,1)}.rx-switch[data-state=checked] .rx-switch-thumb{transform:translate(16px)}.rx-separator{height:1px;margin:2px 0 16px;background:var(--border)}@keyframes rx-in{0%{opacity:0;transform:translateY(-3px) scale(.98)}to{opacity:1;transform:none}}@keyframes rx-pop-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}@media(max-width:640px){.rx-panel{width:calc(100vw - 24px);max-width:none}}.app-icon[data-v-ee462751]{width:20px;height:20px;flex:none}.auth-gate[data-v-c11c5efb]{position:fixed;inset:0;z-index:200;justify-content:center;padding:24px;background:#020617b8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.auth-card[data-v-c11c5efb],.auth-gate[data-v-c11c5efb]{display:flex;align-items:center}.auth-card[data-v-c11c5efb]{width:320px;max-width:100%;flex-direction:column;gap:10px;padding:28px 24px;border-radius:18px;background:var(--panel-solid);border:1px solid var(--border-strong);box-shadow:var(--shadow)}.auth-brand[data-v-c11c5efb]{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:14px;color:#fff;background:linear-gradient(135deg,#0ea5e9,#2dd4bf)}.auth-brand[data-v-c11c5efb] .app-icon{width:22px;height:22px}.auth-card h1[data-v-c11c5efb]{margin:0;font-size:18px;font-weight:700}.auth-card .dim[data-v-c11c5efb]{margin:0;font-size:12px}.auth-card .input[data-v-c11c5efb]{margin-top:6px;text-align:center}.auth-error[data-v-c11c5efb]{margin:0;color:var(--danger);font-size:12px}.auth-enter-active[data-v-c11c5efb],.auth-leave-active[data-v-c11c5efb]{transition:opacity .2s ease}.auth-enter-from[data-v-c11c5efb],.auth-leave-to[data-v-c11c5efb]{opacity:0}
