:root{
  font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#162538;background:#0d1929;font-synthesis:none;
  --night:#0d1929;--night2:#12253b;--paper:#fffefa;--text:#17283a;
  --muted:#6f8090;--ink-border:#dae3e8;--warm:#ffbb78;--tint:#e9fbf4;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{min-height:100vh;margin:0;background:radial-gradient(ellipse 60% 46% at 11% 24%,#184c5f77,transparent 68%),radial-gradient(ellipse 50% 54% at 95% 10%,#715b9c3c,transparent 67%),linear-gradient(145deg,#0b1727 0%,#112038 54%,#12283d 100%)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background-image:radial-gradient(#d0e9e219 .65px,transparent .8px);background-size:23px 23px;mask-image:linear-gradient(#0007,transparent 65%)}
button,input,select{font:inherit}
button{cursor:pointer;transition:transform .15s ease,background .15s ease,box-shadow .15s ease;border:0}
button:hover:not(:disabled){transform:translateY(-1px)}
button:disabled{opacity:.47;cursor:not-allowed;transform:none}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #4fcbb4;outline-offset:2px}
input,select{width:100%;padding:12px 14px;background:#f8fafb;border:1px solid #d9e3e8;border-radius:12px;color:var(--text);font-size:14px;outline:none;transition:border .15s,box-shadow .15s}
input:focus,select:focus{border-color:#3baf9a;box-shadow:0 0 0 3px #3baf9a23}
input::placeholder{color:#94a2ae}
input[type=range]{accent-color:#158b84;padding:8px 0}
input[type=checkbox]{width:19px;height:19px;accent-color:#159b91}
label{font-size:12px;font-weight:750;display:block;color:#4e6471;margin:14px 0 7px}
.hidden{display:none!important}.full{width:100%}.grow{flex:1}.row{display:flex;align-items:center;gap:9px}.stack{display:grid;gap:10px}
button.primary{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:linear-gradient(105deg,#1ba998,#107e89);color:#fff;font-size:14px;font-weight:800;border-radius:12px;padding:13px 17px;box-shadow:0 5px 15px #169f991f}
button.primary:hover:not(:disabled){background:linear-gradient(105deg,#138c84,#146976);box-shadow:0 7px 17px #169f992d}
button.secondary{background:#eaf3f4;border:1px solid #d7e6e9;color:#285764;font-size:13px;font-weight:700;padding:12px 14px;border-radius:11px}
button.secondary:hover:not(:disabled){background:#dcecf0}
button.subtle{background:#ffffff16;border:1px solid #ffffff27;color:#e0eaf2;padding:9px 15px;border-radius:12px;font-weight:700}
button.tiny{padding:7px 10px;font-size:11px}button.danger{background:#fff0f0;border-color:#f7d9d9;color:#b44a52}
.topbar{max-width:1540px;margin:auto;min-height:92px;padding:19px 34px;display:flex;justify-content:space-between;align-items:center;color:#fff;border-bottom:1px solid #ffffff17}
.identity{display:flex;align-items:center;gap:15px}
.logo{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border:1px solid #d6f4e63c;border-radius:15px;background:linear-gradient(145deg,#3de0cb45,#0d506d22);box-shadow:inset 0 1px #ffffff26,0 8px 24px #0002}
.logo-mark{font-size:29px;color:#a5ffe7;text-shadow:0 0 17px #8cffdb6d}
.identity h1{margin:0;font-weight:850;letter-spacing:-.05em;font-size:21px;line-height:1.1}
.identity h1 span{font-weight:500;color:#66e0cb}
.identity p{margin:5px 0 0;color:#a6b9c9;font-size:11px;letter-spacing:.02em}
.topright{display:flex;align-items:center;gap:14px}
.beta{font-size:10px;letter-spacing:.13em;font-weight:800;color:#bceade;border:1px solid #84eecb3c;background:#84eecb14;border-radius:50px;padding:8px 12px}
.page{max-width:1540px;margin:0 auto;padding:36px 34px 65px}
/* Login editorial hero */
.auth-layout{min-height:min(720px,calc(100vh - 172px));display:grid;grid-template-columns:minmax(0,1.06fr) minmax(380px,.80fr);align-items:center;gap:clamp(36px,7vw,125px)}
.auth-hero{color:#f6f9ff;min-height:520px;position:relative;display:flex;justify-content:center;align-items:flex-start;flex-direction:column;overflow:hidden;padding:20px 0 170px 10px}
.eyebrow{display:flex;align-items:center;gap:9px;font-size:10px;letter-spacing:.18em;font-weight:850;color:#1a958b;text-transform:uppercase}
.auth-hero .eyebrow{color:#92e8d3}
.eyebrow-dot{background:#52ead1;border-radius:50%;height:6px;width:6px;box-shadow:0 0 0 4px #52ead12a}
.auth-hero h2{max-width:760px;font-size:clamp(47px,4.9vw,82px);font-weight:860;letter-spacing:-.078em;line-height:1.045;margin:24px 0 18px}
.auth-hero h2 em{font-style:normal;background:linear-gradient(100deg,#82efcd 0%,#9feae5 44%,#d4c7ff 100%);color:transparent;background-clip:text}
.auth-hero p{font-size:16px;line-height:1.7;color:#b3c9d7;max-width:515px;margin:0}
.hero-steps{display:flex;gap:10px;margin:36px 0 0;flex-wrap:wrap}
.hero-steps span{border:1px solid #b9e4e437;background:#ffffff09;backdrop-filter:blur(6px);color:#e0f1f0;padding:12px 14px;border-radius:10px;font-size:11px;font-weight:600}
.hero-steps b{font-size:10px;color:#80e1d1;margin-right:7px}
.auth-art{position:absolute;bottom:-206px;left:15%;width:560px;height:350px;pointer-events:none;opacity:.75}
.art-ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-21deg);border-radius:50%;border:1px solid #90fae47b}
.art-ring.a{width:480px;height:280px}.art-ring.b{width:355px;height:207px;border-style:dashed;border-color:#a8baff9e}.art-ring.c{width:220px;height:130px;border-color:#b3fdad6f}
.art-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:45px;height:45px;border-radius:50%;background:#90f2d0;color:#113a43;box-shadow:0 0 35px #9fffe886;font-size:26px}
.art-node{width:13px;height:13px;border-radius:50%;border:3px solid #aafee4;background:#247086;position:absolute;box-shadow:0 0 20px #00ffe36c}
.art-node.n1{left:13%;top:39%}.art-node.n2{left:75%;top:9%}.art-node.n3{left:78%;top:61%}
.login-card{background:var(--paper);padding:clamp(27px,3.5vw,48px);border-radius:25px;box-shadow:0 24px 70px #050f1b80;position:relative;overflow:hidden;isolation:isolate;border:1px solid #ffffffa5;max-width:550px;width:100%;justify-self:end}
.login-card:before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,#77eac9,#9bd6f7,#c1a8ff)}
.login-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.login-secure{color:#4a9284;font-size:10px;font-weight:750;white-space:nowrap}
.login-card h3{font-size:32px;letter-spacing:-.065em;margin:26px 0 10px;line-height:1.12;color:#182b3c}
.login-card>p{font-size:13px;line-height:1.7;color:#71818e;margin:0 0 26px}
.login-card form label{margin-top:20px}.login-card form input{height:48px}.login-card form button{margin-top:27px;height:52px;justify-content:space-between;padding-left:21px;padding-right:20px}
.login-card form button span{font-size:20px;font-weight:400}
.login-error{background:#fff1ee;border:1px solid #ffc8bd;color:#934335;font-size:12px;line-height:1.55;padding:11px 12px;border-radius:10px;margin:14px 0 -10px}
.login-foot{display:flex;align-items:flex-start;gap:11px;border-top:1px solid #e6ebee;margin-top:30px;padding-top:22px}
.login-foot .foot-icon{width:20px;height:20px;display:grid;place-items:center;flex:none;border:1px solid #c3d6db;border-radius:50%;color:#437282;font-weight:850;font-size:11px}
.login-foot p{margin:0;font-size:11px;line-height:1.6;color:#7c8c98}
.login-foot b{color:#30546c}
/* Editor: vivid but professional */
.heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:7px 0 26px;color:#eef6fc}
.heading h2{font-size:clamp(27px,3vw,38px);line-height:1.08;letter-spacing:-.055em;margin:12px 0 8px}
.heading p{margin:0;color:#a8bed0;font-size:13px;line-height:1.5}
.heading .eyebrow{color:#86e0c7}
.heading button{flex-shrink:0;padding:15px 22px}
.workspace{display:grid;grid-template-columns:minmax(292px,340px) minmax(0,1fr);gap:21px;align-items:start}
.left-column,.center-column{display:grid;gap:18px;min-width:0}
.panel{background:#fffefa;border:1px solid #e0eaf0;border-radius:19px;padding:20px;box-shadow:0 8px 32px #03121e22}
.panel h3{font-size:15px;letter-spacing:-.025em;margin:0;color:#183045}
.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px}
.mini{display:inline-flex;font-size:10px;font-weight:800;border-radius:50px;padding:7px 10px;background:#e9f4f1;color:#277e79;max-width:135px;overflow:hidden;text-overflow:ellipsis}
.muted{font-size:12px;color:#80909b;line-height:1.6}.small{font-size:11px!important;color:#81939e;line-height:1.6}.micro{font-size:11px;color:#8496a1;line-height:1.6}
.game-list{display:grid;gap:8px;max-height:240px;overflow:auto}
.game-choice{background:#f8faf9;border:1px solid #e0e9eb;text-align:left;width:100%;padding:13px;border-radius:12px}
.game-choice.active{background:linear-gradient(100deg,#e3faf2,#f3fcff);border-color:#6ac8af;box-shadow:inset 4px 0 #25a893}
.game-choice strong{display:block;font-size:12px;color:#193749}.game-choice span{display:block;font-size:11px;color:#758996;margin-top:4px}
.disabled-wrap.disabled{opacity:.45;pointer-events:none}
.formrow{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.range-caption{display:flex;justify-content:space-between;color:#8da0aa;font-size:10px}
.toggle{display:flex;align-items:center;gap:11px;background:#f1f8f7;padding:13px;border:1px solid #e3f0ec;border-radius:12px}
.toggle span{font-size:12px;color:#38556a}
.monster-selector{display:block}.monster-selector select{width:100%}
.pending-box{background:#effcf7;padding:15px;border:1px solid #b4e8d8;border-radius:12px;margin-top:13px;display:grid;gap:8px}
.pending-box strong{font-size:12px}.coords{font-family:ui-monospace,monospace;font-size:12px;font-weight:750;color:#147e76}
.text-link{border:0;background:transparent;color:#577082;text-decoration:underline;padding:5px;font-size:12px}
.map-panel{padding:18px;border:1px solid #f7f8f5;box-shadow:0 15px 36px #06172733}
.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}
.map-toolbar h3{font-size:20px;letter-spacing:-.04em;margin:2px 0 6px}
.map-toolbar p{font-size:12px;color:#7a8e9b;line-height:1.5;margin:0}
.marker-count{background:#e2faf2;border:1px solid #b7e8d8;color:#217f77;border-radius:50px;font-size:11px;font-weight:850;padding:9px 13px;white-space:nowrap}
.searchline{display:flex;gap:9px;margin:19px 0 14px}.searchline input{flex:1;min-width:0}
.location-icon{font-size:20px!important;padding:7px 14px!important}
.search-results{border:1px solid #d6e4e8;border-radius:11px;margin:-7px 0 10px;max-height:190px;overflow:auto;box-shadow:0 5px 14px #0000000d}
.search-results button{text-align:left;width:100%;white-space:normal;background:#fff;border:0;border-bottom:1px solid #f1f5f7;padding:12px;color:#36576d;font-size:12px}
.map-wrap{position:relative}
#map{width:100%;height:565px;border:1px solid #d7e4e7;border-radius:14px;background:#dfeee9;z-index:0}
.map-notice{position:absolute;z-index:401;bottom:14px;left:14px;max-width:calc(100% - 28px);padding:12px 16px;border-radius:11px;color:#fff;background:#102c3eea;font-size:12px;line-height:1.5;box-shadow:0 5px 24px #0004;pointer-events:none}
.map-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:10px;color:#8195a0;margin-top:12px}.map-foot a{color:#257f85}
.points-list{display:grid;gap:9px;max-height:440px;overflow:auto}
.point-entry{display:flex;align-items:center;gap:13px;padding:12px 13px;border:1px solid #e2ebee;background:#fbfdfd;border-radius:13px}
.point-number{width:39px;height:39px;display:grid;place-items:center;flex:none;border-radius:12px;background:#e7f5f0;color:#1c837b;font-size:13px;font-weight:850}
.point-entry .details{flex:1;min-width:0}.point-entry strong{font-size:12px;display:block;color:#274657}.point-entry small{display:block;color:#718995;font-size:10px;line-height:1.5;margin-top:5px}
.point-entry .actions{display:flex;gap:6px}
.last-note{text-align:center;color:#829bab;font-size:11px;margin:26px 0}
.toast{position:fixed;z-index:5100;top:100px;right:20px;background:#16364c;color:#fff;max-width:460px;padding:14px 19px;border-radius:12px;font-size:13px;box-shadow:0 14px 40px #06121c64;line-height:1.5}
.toast.error{background:#953f45}
.monster-pin{display:grid;place-items:center;width:36px;height:36px;background:#117f7a;border:3px solid white;border-radius:50%;color:#fff;font-size:12px;font-weight:850;box-shadow:0 2px 12px #0006}
.monster-pin.pending{background:#f1a753}.leaflet-div-icon{background:transparent;border:0}
dialog{padding:0;max-width:min(470px,calc(100% - 28px));border-radius:23px;border:1px solid #dfe8eb;box-shadow:0 38px 110px #02091693}
dialog::backdrop{background:#0b1e32b3;backdrop-filter:blur(3px)}
.dialog-content{padding:30px}.dialog-content h2{color:#183249;letter-spacing:-.045em;font-size:27px;margin:13px 0}.dialog-content p{line-height:1.6}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:21px}
@media(max-width:1050px){.auth-layout{grid-template-columns:1fr 1fr;gap:25px}.auth-hero h2{font-size:clamp(38px,5.3vw,60px)}.workspace{grid-template-columns:305px minmax(0,1fr)}.point-entry{flex-wrap:wrap}.point-entry .actions{width:100%;justify-content:flex-end}}
@media(max-width:860px){.auth-layout{grid-template-columns:1fr;gap:10px}.auth-hero{min-height:0;padding:28px 0 35px}.auth-art{display:none}.auth-hero h2{max-width:660px;margin:18px 0;font-size:clamp(38px,8vw,57px)}.hero-steps{margin-top:24px}.login-card{max-width:100%;justify-self:stretch}.workspace{grid-template-columns:1fr}.left-column{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.left-column>:last-child{grid-column:1/-1}#map{height:480px}}
@media(max-width:590px){.topbar{padding:14px 17px;min-height:76px}.identity{gap:9px}.logo{width:41px;height:41px;flex-basis:41px;border-radius:12px}.identity h1{font-size:16px}.identity p{font-size:10px}.beta{display:none}.page{padding:20px 13px 40px}.auth-hero{padding:16px 3px 24px}.auth-hero h2{font-size:clamp(38px,10vw,51px)}.auth-hero p{font-size:13px}.hero-steps{gap:6px}.hero-steps span{font-size:10px;padding:9px 10px}.login-card{padding:25px 20px;border-radius:20px}.login-card h3{font-size:28px}.login-top{flex-wrap:wrap}.heading{align-items:flex-start;flex-direction:column}.heading h2{font-size:27px}.heading button{width:100%}.left-column{grid-template-columns:1fr}.left-column>:last-child{grid-column:auto}.panel{padding:16px}.map-panel{padding:10px}.map-toolbar{gap:6px}.map-toolbar h3{font-size:17px}.marker-count{font-size:10px;padding:7px 9px}.searchline{gap:5px}.searchline input{font-size:12px}#map{height:57vh;min-height:390px}.point-entry .actions{width:auto}.toast{top:80px;left:12px;right:12px;max-width:unset}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
