:root{--bg:var(--mp-bg,#070b12);--text:var(--mp-text,#eef2f7);--muted:var(--mp-text-muted,#94a3b8);--teal:var(--mp-accent,#a78bfa);--accent:var(--mp-accent,#a78bfa);--accent-rgb:var(--mp-accent-rgb,167, 139, 250);--amber:var(--mp-amber,#fbbf24);--border:var(--mp-border,#94a3b833);--font:var(--mp-font,"Segoe UI", system-ui, sans-serif);--map-w:2560;--map-h:1429}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body.is-map-page{height:100%;min-height:100%;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}body.is-map-loading{background:var(--bg)}.chrome{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);pointer-events:none;background:#060d18e0;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 1rem;display:flex;position:absolute;top:0;left:0;right:0}.chrome>*{pointer-events:auto}.chrome-brand-row{flex-shrink:1;align-items:center;gap:.55rem;min-width:0;display:flex}.chrome .chrome-brand{pointer-events:auto;min-width:0}.chrome .btn-voltar{border:1px solid rgba(var(--accent-rgb), .45);color:#e8eef8;letter-spacing:.02em;cursor:pointer;background:#060c16b8;border-radius:9px;flex-shrink:0;align-items:center;gap:.35rem;padding:.42rem .7rem .42rem .5rem;font-family:inherit;font-size:.78rem;font-weight:700;transition:border-color .15s,background .15s,box-shadow .15s;display:inline-flex}.chrome .btn-voltar svg{width:16px;height:16px;stroke:var(--accent);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;fill:none}.chrome .btn-voltar:hover{border-color:rgba(var(--accent-rgb), .85);background:rgba(var(--accent-rgb), .14)}.chrome-user{cursor:pointer;background:#0e182a99;border:1px solid #0000;border-radius:8px;align-items:center;gap:.45rem;max-width:min(220px,38vw);margin:0;padding:.2rem .45rem;font-family:inherit;transition:border-color .2s,background .2s;display:flex}.chrome-user:hover{border-color:var(--border);background:#0e182af2}.chrome-user.is-hidden{display:none}.chrome-user img{object-fit:cover;border:1px solid var(--border);border-radius:50%;flex-shrink:0;width:30px;height:30px}.chrome-user img.is-hidden{display:none}.chrome-user span{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.chrome-auth{align-items:center;gap:.35rem;display:flex}.chrome-auth.is-hidden,.ctrl-btn--editor.is-hidden{display:none}.controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem;display:flex}.ctrl-btn{box-sizing:border-box;border:1px solid var(--border);height:34px;min-height:34px;max-height:34px;color:var(--text);letter-spacing:.01em;cursor:pointer;text-align:center;white-space:nowrap;vertical-align:middle;appearance:none;background:#0e182ae6;border-radius:8px;justify-content:center;align-items:center;margin:0;padding:0 .85rem;font-family:inherit;font-size:.8rem;font-weight:600;line-height:1;transition:border-color .2s,background .2s,color .2s,transform .15s,filter .15s;display:inline-flex;text-decoration:none!important}.ctrl-btn:hover{border-color:var(--teal)}.ctrl-btn.is-active{border-color:var(--amber);color:var(--amber);background:#fbbf241f}.ctrl-btn--icon{width:34px;padding:0;font-size:1.1rem}.ctrl-btn.ctrl-btn--simular{color:#fbbf24;border-color:#fbbf2473;font-weight:700}.ctrl-btn.ctrl-btn--simular:hover{color:#fcd34d;background:#fbbf241f;border-color:#fbbf24d9}.ctrl-btn.ctrl-btn--auth{border-color:rgba(var(--accent-rgb), .45);color:var(--accent);gap:.35rem;font-weight:600}.ctrl-btn.ctrl-btn--auth:hover{border-color:rgba(var(--accent-rgb), .85);background:rgba(var(--accent-rgb), .12);color:#c4b5fd}.ctrl-btn.ctrl-btn--auth .btn-login-ico{flex-shrink:0;width:14px;height:14px}.ctrl-btn.is-hidden{display:none}.ctrl-btn.ctrl-btn--subscribe{background:var(--mp-gradient,linear-gradient(90deg, #c026ff 0%, #9333ea 38%, #6366f1 68%, #2563eb 100%));color:#fff;border:none;gap:.35rem;font-weight:700;box-shadow:0 6px 22px #c026ff40}.ctrl-btn.ctrl-btn--subscribe:hover{filter:brightness(1.06)}.ctrl-btn.ctrl-btn--subscribe .btn-star{flex-shrink:0;width:13px;height:13px}.ctrl-btn.ctrl-btn--subscribe:hover{color:#fff;filter:brightness(1.12);border:none;transform:translateY(-1px)}.ctrl-btn.ctrl-btn--subscribe:active{filter:brightness(.96);transform:translateY(0)}.ctrl-btn--fit .fit-icon{width:18px;height:18px;display:block}@media (max-width:768px){.ctrl-btn--editor{display:none!important}}@media (max-width:960px){.chrome .controls{flex-wrap:nowrap;flex-shrink:0}.chrome .ctrl-btn.ctrl-btn--subscribe{left:max(.85rem, env(safe-area-inset-left,0px));top:calc(4.45rem + env(safe-area-inset-top,0px));z-index:90;pointer-events:auto;gap:.45rem;height:44px;min-height:44px;max-height:44px;padding:0 1.15rem;font-size:.92rem;position:fixed;box-shadow:0 8px 26px #c026ff66}.chrome .ctrl-btn.ctrl-btn--subscribe .btn-star{width:16px;height:16px}}.viewport{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:var(--bg);position:absolute;inset:0;overflow:hidden}.viewport.is-dragging{cursor:grabbing}.viewport.is-dragging .pin{pointer-events:none}.viewport.is-editing .pin,.viewport.is-editing.is-dragging-pin{cursor:move}.world{width:calc(var(--map-w) * 1px);height:calc(var(--map-h) * 1px);transform-origin:0 0;-webkit-user-select:none;user-select:none;position:absolute;top:0;left:0;transform:scale(.001)}.terrain{pointer-events:none;-webkit-user-select:none;user-select:none;user-drag:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.pin{cursor:default;z-index:10;pointer-events:none;background:0 0;border:none;flex-direction:column;align-items:center;padding:0;font-family:inherit;display:flex;position:absolute;transform:translate(-50%,-100%)}.pin-visual{transform-origin:bottom;transform:scale(var(--pin-counter,1));pointer-events:auto;cursor:pointer;position:relative}.pin-lift{transition:transform .15s}@keyframes pin-wiggle{0%,90%,to{transform:rotate(0)}1.2%{transform:rotate(-.7deg)}2.4%{transform:rotate(.7deg)}3.6%{transform:rotate(-.45deg)}4.8%{transform:rotate(.45deg)}6%{transform:rotate(-.2deg)}7.2%{transform:rotate(0)}}body.is-pins-ready:not(.is-editing):not(.is-map-help-open) .viewport:not(.is-interacting):not(.is-dragging) .pin:not(.is-hovered):not(.is-selected):not(.is-img-pending):not(.is-img-missing):not(.is-img-fail) .pin-lift{transform-origin:bottom;animation:4s ease-in-out 5 forwards pin-wiggle}.pin.is-hovered .pin-lift{transform:translateY(-3px)scale(1.03);animation:none!important}.viewport.is-interacting .pin-lift,.viewport.is-dragging .pin-lift{transition:none!important;animation:none!important;transform:none!important}.viewport.is-interacting .pin-visual,.viewport.is-dragging .pin-visual{pointer-events:none;cursor:default}.pin.is-selected{z-index:30}.pin.is-selected .pin-img{outline:2px dashed var(--amber);outline-offset:4px}.pin-anchor{background:var(--teal);width:8px;height:8px;box-shadow:0 0 8px var(--teal);opacity:0;pointer-events:none;border-radius:50%;margin-left:-4px;position:absolute;bottom:0;left:50%}.viewport.is-editing .pin-anchor{opacity:1}.pin.is-selected .pin-anchor{background:var(--amber);box-shadow:0 0 10px var(--amber)}.pin-shadow{pointer-events:none;background:radial-gradient(#0006 0%,#0000 70%);width:50%;height:8px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.pin-img{width:var(--pin-w,100px);pointer-events:none;-webkit-user-select:none;user-select:none;user-drag:none;-webkit-user-drag:none;image-rendering:auto;filter:none;height:auto;display:block}.pin.is-hovered:not(.is-selected) .pin-img{filter:drop-shadow(0 0 1px #fffffff2)drop-shadow(0 0 3px #ffffff59)drop-shadow(0 -1px #ffffff73)drop-shadow(0 1px #ffffff73)drop-shadow(-1px 0 #ffffff73)drop-shadow(1px 0 #ffffff73)}.viewport.is-editing .pin.is-hovered .pin-img,.viewport.is-interacting .pin.is-hovered .pin-img,.viewport.is-dragging .pin.is-hovered .pin-img{filter:none}@media (prefers-reduced-motion:reduce){.pin.is-hovered:not(.is-selected) .pin-img{filter:drop-shadow(0 0 3px #fff6)}.pin-lift{animation:none!important}}.pin-label{border:1px solid var(--border);white-space:nowrap;pointer-events:none;opacity:0;background:#060d18e6;border-radius:5px;margin-top:3px;padding:.15rem .45rem;font-size:.68rem;font-weight:700;transition:opacity .15s}.pin.is-selected .pin-label{opacity:1}.viewport.is-interacting .pin-label,.viewport.is-dragging .pin-label{transition:none;opacity:0!important}.minimap{z-index:100;border:1px solid var(--border);background:#060d18e6;border-radius:10px;width:160px;position:absolute;bottom:1rem;right:1rem;overflow:hidden;box-shadow:0 8px 28px #0006}.minimap img{opacity:.8;-webkit-user-select:none;user-select:none;user-drag:none;-webkit-user-drag:none;width:100%;display:block}.minimap-viewport{border:2px solid var(--teal);background:rgba(var(--accent-rgb), .1);pointer-events:none;position:absolute}.minimap.is-tappable{cursor:pointer;touch-action:manipulation}.editor{z-index:110;border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0a1220f5;border-radius:12px;width:min(300px,100vw - 2rem);padding:.85rem 1rem;display:none;position:absolute;bottom:1rem;left:1rem;box-shadow:0 12px 40px #00000073}.editor.is-open{display:block}.editor h4{text-transform:uppercase;letter-spacing:.06em;color:var(--amber);margin-bottom:.5rem;font-size:.72rem}.editor p{color:var(--muted);margin-bottom:.65rem;font-size:.75rem;line-height:1.45}.editor-field{grid-template-columns:1fr 1fr 1fr;gap:.4rem;margin-bottom:.65rem;display:grid}.editor-field label{color:var(--muted);flex-direction:column;gap:.2rem;font-size:.68rem;display:flex}.editor-field input{border:1px solid var(--border);width:100%;color:var(--text);-webkit-user-select:text;user-select:text;background:#060d18cc;border-radius:6px;padding:.35rem .45rem;font-family:inherit;font-size:.8rem}.editor-name{margin-bottom:.5rem;font-size:.85rem;font-weight:600}.editor-actions{flex-wrap:wrap;gap:.4rem;display:flex}.editor-actions button{border:1px solid var(--border);min-width:0;color:var(--text);cursor:pointer;background:#0e182ae6;border-radius:7px;flex:calc(50% - .2rem);padding:.45rem;font-family:inherit;font-size:.75rem}.editor-actions button:hover{border-color:var(--teal)}.editor-save-note{color:var(--muted);border-top:1px solid var(--border);margin-top:.65rem;padding-top:.55rem;font-size:.68rem;line-height:1.4}.editor-actions button.is-primary{border-color:var(--teal);background:rgba(var(--accent-rgb), .15);color:var(--teal);font-weight:600}.period-badge,.pins-status-badge{color:var(--muted);border:1px solid var(--border);background:#0e182a99;border-radius:999px;padding:.2rem .55rem;font-size:.72rem}.pins-status-badge.is-ok{color:#4ade80;border-color:#4ade8059}.pins-status-badge.is-warn{color:#fbbf24;border-color:#fbbf2459}.pins-status-badge.is-bad{color:#f87171;border-color:#f8717159}.pin-img-status{z-index:6;pointer-events:none;border:1px solid #ffffff73;border-radius:50%;width:10px;height:10px;display:none;position:absolute;top:6px;right:6px}.viewport.is-editing .pin-img-status{display:block}.pin.is-img-ok .pin-img-status{background:#4ade80}.pin.is-img-fail .pin-img-status{background:#f87171}.pin.is-img-missing .pin-img-status{background:#64748b}.pin.is-img-loading .pin-img-status{background:#fbbf24;animation:.9s ease-in-out infinite pin-status-pulse}@keyframes pin-status-pulse{0%,to{opacity:1}50%{opacity:.35}}.pin.is-img-missing .pin-visual,.pin.is-img-fail .pin-visual{outline-offset:2px;border-radius:8px;outline:2px dashed #f87171d9}.pin.is-img-missing .pin-img,.pin.is-img-fail .pin-img{opacity:.15}.editor-img-status{min-height:1.1rem;margin:-.35rem 0 .55rem;font-size:.68rem}.editor-img-status.is-ok{color:#4ade80}.editor-img-status.is-fail{color:#f87171}.editor-img-status.is-missing{color:#94a3b8}.editor-img-status.is-loading{color:#fbbf24}.pins-cdn-panel{border-top:1px solid var(--border);max-height:180px;margin-top:.75rem;padding-top:.65rem;overflow:auto}.pins-cdn-panel--top{border-top:none;margin-top:0;margin-bottom:.65rem;padding-top:0}.pins-cdn-panel h5{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:.4rem;font-size:.65rem}.pins-cdn-list{flex-direction:column;gap:.25rem;list-style:none;display:flex}.pins-cdn-list button{width:100%;color:var(--text);text-align:left;cursor:pointer;background:#060d188c;border:1px solid #0000;border-radius:6px;align-items:center;gap:.45rem;padding:.3rem .4rem;font-family:inherit;font-size:.68rem;display:flex}.pins-cdn-list button.is-selected{border-color:rgba(var(--accent-rgb), .45);background:rgba(var(--accent-rgb), .1)}.pins-cdn-list .dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.pins-cdn-list .dot.is-ok{background:#4ade80}.pins-cdn-list .dot.is-fail{background:#f87171}.pins-cdn-list .dot.is-missing{background:#64748b}.pins-cdn-list .dot.is-loading{background:#fbbf24}body.is-bubble-mode [data-local-only],body.is-bubble-mode .editor-draft{display:none!important}.mp-debug{z-index:120;color:#e2e8f0;pointer-events:none;background:#060d18f0;border:1px solid #f8717173;border-radius:8px;max-width:min(420px,100vw - 1.5rem);padding:.55rem .7rem;font-family:ui-monospace,monospace;font-size:.68rem;line-height:1.45;display:none;position:absolute;bottom:.75rem;left:.75rem}.mp-debug.is-visible{display:block}.mp-debug.is-ok{color:#bbf7d0;border-color:#4ade8073}.version-tag{background:rgba(var(--accent-rgb), .15);color:var(--teal);border:1px solid rgba(var(--accent-rgb), .35);border-radius:5px;padding:.15rem .45rem;font-size:.65rem;font-weight:600}.editor-draft{color:var(--amber);margin-top:.4rem;font-size:.65rem;display:none}.editor-draft.is-visible{display:block}#ed-import{display:none}.toast{z-index:105;border:1px solid var(--border);color:var(--muted);opacity:0;visibility:hidden;background:#0a1220f2;border-radius:999px;padding:.55rem 1rem;font-size:.78rem;transition:opacity .2s,transform .2s,visibility .2s;position:absolute;bottom:1rem;left:50%;transform:translate(-50%)translateY(12px)}.toast.is-open{opacity:1;visibility:visible;transform:translate(-50%)translateY(0)}.map-help{z-index:2147483645;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;visibility:hidden;pointer-events:none;background:#02060eb8;justify-content:center;align-items:center;padding:1rem;transition:opacity .28s,visibility .28s;display:flex;position:fixed;inset:0}.map-help.is-open{opacity:1;visibility:visible;pointer-events:auto}.map-help__card{border:1px solid rgba(var(--accent-rgb), .28);background:#0a1220f7;border-radius:16px;width:min(420px,100%);padding:1.25rem 1.25rem 1.1rem;position:relative;box-shadow:0 24px 60px #0000008c}.map-help__card--wide{width:min(560px,100%)}.map-help__card--aula{width:min(720px,100%);padding-bottom:1.15rem}.map-help__video{aspect-ratio:16/9;background:#000;border:1px solid #ffffff14;border-radius:12px;width:100%;margin:0 0 1rem;position:relative;overflow:hidden}.map-help__video iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.map-help__close{border:1px solid var(--border);width:32px;height:32px;color:var(--muted);cursor:pointer;background:#0e182ae6;border-radius:8px;place-items:center;font-family:inherit;font-size:1.2rem;line-height:1;display:grid;position:absolute;top:.65rem;right:.65rem}.map-help__close:hover{color:var(--text);border-color:var(--teal)}.map-help__title{color:var(--text);margin:0 2rem .85rem 0;font-size:1.05rem;font-weight:700}.map-help__title--nowrap{white-space:nowrap;font-size:clamp(.95rem,2.4vw,1.1rem)}@media (max-width:420px){.map-help__title--nowrap{white-space:normal}}.map-help__title em{color:var(--teal);font-style:normal}.map-help__list strong{color:var(--text);font-weight:700}.map-help__list{flex-direction:column;gap:.85rem;margin:0 0 1.1rem;list-style:none;display:flex}.map-help__list li{color:var(--muted);align-items:flex-start;gap:.6rem;font-size:.84rem;line-height:1.55;display:flex}.map-help__icon{text-align:center;flex-shrink:0;width:1.5rem;font-size:1rem;line-height:1.35}.map-help__hint{color:var(--muted);margin:-.35rem 0 .9rem;font-size:.72rem;line-height:1.4}.map-help__body{color:var(--muted);margin:0 0 1.15rem;font-size:.9rem;line-height:1.55}.map-help__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.map-help__btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#0e182ae6;border-radius:9px;padding:.5rem .85rem;font-family:inherit;font-size:.8rem}.map-help__btn:hover{border-color:var(--teal)}.map-help__btn--primary{border-color:rgba(var(--accent-rgb), .45);background:rgba(var(--accent-rgb), .14);color:var(--teal);font-weight:600}.map-help__btn--ghost{color:var(--muted)}body.is-mobile-map .map-help__desk,body:not(.is-mobile-map) .map-help__mobile{display:none}body.is-map-loading:not(.is-pins-reload) .viewport,body.is-map-loading:not(.is-pins-reload) .minimap{visibility:hidden;opacity:0;pointer-events:none}body.is-map-loading .world{opacity:0;visibility:hidden}body.is-bubble-embed{width:100%;min-height:100vh}.map-loader{z-index:2147483646;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;transition:opacity .35s,visibility .35s;display:flex;position:fixed;inset:0}body:not(.is-map-loading) .map-loader:not(.is-pins-only){opacity:0;visibility:hidden;pointer-events:none}.map-loader.is-pins-only{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:200;background:#060d18b8;position:absolute}.pin.is-img-pending .pin-img{opacity:0}@media (max-width:768px){.minimap{width:112px;bottom:1rem;right:.75rem}}body.is-map-page{-webkit-user-select:none;user-select:none;height:100%!important;min-height:100%!important;display:block!important;overflow:hidden!important}html:has(body.is-map-page){height:100%;overflow:hidden}.mapa-root{background:#060d18;position:fixed;inset:0}.mapa-toast{z-index:200;color:#e2e8f0;background:#0e182af2;border:1px solid #94a3b838;border-radius:10px;max-width:min(420px,92vw);padding:.85rem 1rem;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);box-shadow:0 12px 40px #00000073}.mapa-toast strong{font-size:.95rem;display:block}.mapa-toast p{color:#94a3b8;margin:.4rem 0 .7rem;font-size:.82rem;line-height:1.4}.mapa-toast button{color:#e2e8f0;cursor:pointer;font:inherit;background:0 0;border:1px solid #94a3b840;border-radius:8px;padding:.35rem .7rem;font-size:.8rem;font-weight:600}
