.ed{--f-display:var(--font-jakarta), system-ui, sans-serif;--f-body:var(--font-inter), system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono:var(--font-jbmono), ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--r:8px;height:100%;font:14px/1.45 var(--f-body)}.ed button,.ed input,.ed select,.ed textarea{font:inherit;color:inherit}.ed a{color:var(--link)}.ed *{box-sizing:border-box}.ed .mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}.ed .app{grid-template-rows:auto 1fr;height:100%;min-height:0;display:grid}.ed header.top{padding:10px max(16px, env(safe-area-inset-right,0px)) 10px max(16px, env(safe-area-inset-left,0px));background:var(--surface);border-bottom:1px solid var(--line);z-index:1100;flex-wrap:wrap;align-items:center;gap:14px;display:flex;position:relative}.ed .brand{align-items:center;gap:10px;margin-inline-end:auto;display:flex}.ed .brand svg{flex:none}.ed .brand h1{font:800 21px/1 var(--f-display);letter-spacing:-.01em;margin:0}.ed .brand small{font:500 10.5px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:4px;display:block}.ed .toolbar{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ed .btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:7px;height:34px;padding:0 12px;font-weight:500;text-decoration:none;transition:background .12s,border-color .12s;display:inline-flex}.ed .btn:hover{background:var(--surface-2);border-color:var(--faint)}.ed .btn:disabled{opacity:.45;cursor:not-allowed}.ed .btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.ed .btn.primary:hover{filter:brightness(1.05)}.ed .btn.ghost{background:0 0;border-color:#0000}.ed .btn.ghost:hover{background:var(--surface-2)}.ed .btn.sm{height:28px;padding:0 9px;font-size:12.5px}.ed .btn.icon{justify-content:center;width:34px;padding:0}.ed .btn svg{flex:none;width:16px;height:16px}.ed .privacy{font:500 11.5px/1 var(--f-mono);color:var(--ok);background:var(--ok-soft);border-radius:999px;align-items:center;gap:6px;padding:6px 9px;display:flex}.ed main.desk{grid-template-columns:300px minmax(0,1fr) 400px;min-height:0;display:grid}.ed .pane{background:var(--surface);flex-direction:column;min-height:0;display:flex}.ed .pane.left{border-inline-end:1px solid var(--line)}.ed .pane.right{border-inline-start:1px solid var(--line)}.ed .pane-head{border-bottom:1px solid var(--line-2);align-items:center;gap:8px;padding:12px 14px;display:flex}.ed .pane-head h2{font:700 13px/1 var(--f-display);letter-spacing:.06em;text-transform:uppercase;margin:0;font-stretch:90%}.ed .pane-head .count{font:500 12px var(--f-mono);color:var(--muted)}.ed .scroll{flex:1;min-height:0;overflow:auto}.ed .drop{border:1.5px dashed var(--line);border-radius:var(--r);text-align:center;cursor:pointer;color:var(--muted);margin:12px;padding:18px 14px;transition:border-color .12s,background .12s}.ed .drop:hover,.ed .drop.over{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.ed .drop b{color:var(--ink);font:700 15px/1.2 var(--f-display);margin-bottom:4px;display:block}.ed .drop .fmts{font:500 11px var(--f-mono);letter-spacing:.06em}.ed .selbar{color:var(--muted);align-items:center;gap:6px;padding:4px 14px 8px;font-size:12.5px;display:flex}.ed .selbar label{cursor:pointer;align-items:center;gap:6px;display:flex}.ed .roll{margin:0;padding:0 8px 12px;list-style:none}.ed .item{cursor:pointer;border:1px solid #0000;border-radius:7px;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px;display:grid}.ed .item:has(>input[type=checkbox]:not([hidden])){grid-template-columns:auto 52px minmax(0,1fr) auto}.ed .item:hover{background:var(--surface-2)}.ed .item.active{background:var(--accent-soft);border-color:var(--accent)}.ed .item img{object-fit:cover;background:var(--surface-2);border-radius:5px;width:52px;height:52px;display:block}.ed .item .nm{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.ed .item .sub{font:12px var(--f-mono);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ed .chip{white-space:nowrap;font:600 10.5px/1 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;text-overflow:ellipsis;vertical-align:top;border-radius:4px;max-width:100%;margin-top:4px;padding:3px 6px;display:inline-block;overflow:hidden}.ed .chip.none{background:var(--surface-2);color:var(--muted)}.ed .chip.has{background:var(--accent-soft);color:var(--warn)}.ed .chip.done{background:var(--ok-soft);color:var(--ok)}.ed .chip.err{background:var(--bad-soft);color:var(--bad)}.ed .chip.busy{background:var(--surface-2);color:var(--link)}.ed .item .acts{flex-direction:column;gap:2px;display:flex}.ed .item .acts button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:4px;place-items:center;width:26px;height:24px;display:grid}.ed .item .acts button:hover{background:var(--line-2);color:var(--ink)}.ed .item .acts svg{width:15px;height:15px}.ed .roll-foot{border-top:1px solid var(--line-2);grid-template-columns:1fr 1fr;gap:6px;padding:10px 12px;display:grid}.ed .roll-foot .btn{justify-content:center}.ed .empty-roll{color:var(--muted);padding:6px 16px 16px;font-size:13px}.ed .empty-roll .btn{margin-top:10px}.ed .mapwrap{background:var(--surface-2);flex-direction:column;min-height:0;display:flex;position:relative}.ed .search{z-index:500;top:12px;max-width:560px;margin:0 auto;position:absolute;inset-inline:12px}.ed .searchbox{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:9px;display:flex;overflow:hidden}.ed .searchbox:focus-within{border-color:var(--link);box-shadow:0 0 0 3px color-mix(in srgb, var(--link) 28%, transparent), var(--shadow)}.ed .searchbox .mode{border-inline-end:1px solid var(--line-2);display:flex}.ed .searchbox .mode button{cursor:pointer;font:600 11.5px var(--f-mono);letter-spacing:.04em;color:var(--muted);text-transform:uppercase;background:0 0;border:0;padding:0 11px}.ed .searchbox .mode button[aria-pressed=true]{color:var(--ink);background:var(--accent-soft)}.ed .searchbox input{background:0 0;border:0;outline:none;flex:1;min-width:0;padding:11px 12px}.ed .searchbox .go{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:0 12px}.ed .results{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:9px;max-height:46vh;margin-top:6px;overflow:auto}.ed .results h3{font:600 10.5px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);justify-content:space-between;margin:0;padding:9px 12px 4px;display:flex}.ed .results h3 button{color:var(--link);cursor:pointer;font:inherit;text-transform:none;letter-spacing:0;background:0 0;border:0}.ed .res{text-align:start;cursor:pointer;border:0;border-top:1px solid var(--line-2);background:0 0;width:100%;padding:8px 12px;display:block}.ed .res:hover,.ed .res.kb{background:var(--surface-2)}.ed .res .t{font-weight:500}.ed .res .d{color:var(--muted);font-size:12px}.ed .mapcanvas{z-index:1;direction:ltr;flex:1;min-height:0}.ed .readout{padding:7px max(12px, env(safe-area-inset-right,0px)) 7px 12px;background:var(--surface);border-top:1px solid var(--line);font:12px var(--f-mono);color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;display:flex}.ed .readout b{color:var(--ink);font-weight:500}.ed .readout .sp{margin-inline-start:auto}.ed .mapbtns{z-index:500;inset-inline-end:12px;flex-direction:column;gap:6px;display:flex;position:absolute;bottom:52px}.ed .mapbtns .btn{box-shadow:var(--shadow)}.ed .leaflet-top.leaflet-left{top:62px}.ed .leaflet-container{font:inherit;background:var(--surface-2)}.ed .leaflet-control-layers,.ed .leaflet-bar a{background:var(--surface)!important;color:var(--ink)!important;border-color:var(--line)!important}.ed .leaflet-control-layers{border:1px solid var(--line)!important;border-radius:8px!important}.ed .leaflet-control-attribution{background:color-mix(in srgb, var(--surface) 80%, transparent)!important;color:var(--muted)!important}.ed .leaflet-control-scale-line{background:color-mix(in srgb, var(--surface) 80%, transparent);color:var(--ink);border-color:var(--ink)}.ed .pin{position:relative}.ed .pin svg{filter:drop-shadow(0 2px 3px #00000059)}.ed .leaflet-tooltip{font:12px var(--f-body)}.ed .sheet{flex-direction:column;gap:16px;padding:4px 16px 16px;display:flex}.ed .target{border-bottom:1px solid var(--line-2);background:var(--surface-2);align-items:center;gap:10px;padding:12px 16px;display:flex}.ed .target img{object-fit:cover;background:var(--line-2);border-radius:5px;width:46px;height:46px}.ed .target .nm{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.ed .target .sub{font:12px var(--f-mono);color:var(--muted)}.ed .target>div{flex:1;min-width:0}.ed fieldset{border:0;grid-template-columns:1fr 1fr;gap:10px;min-width:0;margin:0;padding:0;display:grid}.ed legend{font:700 12px/1 var(--f-display);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;width:100%;margin-bottom:10px;padding:0;font-stretch:90%;display:flex}.ed legend .rule{background:var(--line-2);flex:1;height:1px}.ed .fld{flex-direction:column;gap:4px;min-width:0;display:flex}.ed .fld.full{grid-column:1/-1}.ed .fld label{color:var(--muted);justify-content:space-between;gap:6px;font-size:12px;font-weight:500;display:flex}.ed .fld label .cnt{font:11px var(--f-mono);color:var(--faint)}.ed .fld label .cnt.over{color:var(--bad)}.ed .fld input,.ed .fld textarea,.ed .fld select,.ed .inp{border:1px solid var(--line);background:var(--surface);border-radius:6px;outline:none;width:100%;min-width:0;padding:7px 9px}.ed .fld textarea{resize:vertical;min-height:62px}.ed .fld input:focus,.ed .fld textarea:focus,.ed .fld select:focus,.ed .inp:focus{border-color:var(--link);box-shadow:0 0 0 3px color-mix(in srgb, var(--link) 18%, transparent)}.ed .fld .mono,.ed .fld input.mono{font-family:var(--f-mono)}.ed .coordline{font:12px var(--f-mono);color:var(--muted);flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:6px;display:flex}.ed .coordline .dms{margin-inline-end:auto}.ed .hint{color:var(--muted);grid-column:1/-1;margin:-2px 0 0;font-size:12px}.ed .kwchips{flex-wrap:wrap;grid-column:1/-1;gap:4px;display:flex}.ed .kwchips span{background:var(--surface-2);border:1px solid var(--line-2);border-radius:999px;padding:2px 7px;font-size:11.5px}.ed .stars{gap:2px;display:flex}.ed .stars button{cursor:pointer;color:var(--line);background:0 0;border:0;padding:2px}.ed .stars button.on{color:var(--accent)}.ed .stars svg{width:18px;height:18px}.ed details.more summary{cursor:pointer;font:700 12px var(--f-display);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;font-stretch:90%;list-style:none;display:flex}.ed details.more summary:after{content:"";background:var(--line-2);flex:1;height:1px}.ed details.more summary::-webkit-details-marker{display:none}.ed details.more[open] summary{margin-bottom:10px}.ed .presetrow{gap:6px;display:flex}.ed .presetrow select{flex:1}.ed .write{border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:var(--surface);flex-direction:column;gap:10px;display:flex}.ed .scope{border:1px solid var(--line);border-radius:7px;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.ed .scope button{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:7px 4px;font-size:12.5px;font-weight:500}.ed .scope button+button{border-inline-start:1px solid var(--line)}.ed .scope button[aria-pressed=true]{background:var(--ink);color:var(--surface)}.ed .scope button:disabled{opacity:.4;cursor:not-allowed}.ed .batchopts{grid-template-columns:1fr 1fr;gap:6px 12px;font-size:12.5px;display:grid}.ed .batchopts label{cursor:pointer;align-items:center;gap:6px;display:flex}.ed .batchopts .jit{grid-column:1/-1;align-items:center;gap:8px;display:flex}.ed .batchopts .jit input[type=range]{flex:1}.ed .writebtns{grid-template-columns:1fr auto;gap:6px;display:grid}.ed .writebtns .btn.primary{justify-content:center;height:40px;font-size:14.5px}.ed .writebtns .btn{height:40px}.ed .btn.ai{height:26px;font:600 12px var(--f-body);letter-spacing:0;text-transform:none;border-color:var(--link);color:var(--link)}.ed .btn.ai:hover{background:color-mix(in srgb, var(--link) 10%, transparent)}.ed .aires{flex-direction:column;gap:10px;display:flex}.ed .aires .row{grid-template-columns:auto 1fr;align-items:start;gap:8px;display:grid}.ed .aires .row input[type=checkbox]{margin-top:30px}.ed .accrow{align-items:center;gap:10px;display:flex}.ed .accrow input{accent-color:var(--link);flex:1}.ed .accrow b{text-align:end;min-width:52px}.ed .batchopts .jit input{accent-color:var(--accent)}.ed .fmtwarn{background:var(--warn-soft);color:var(--ink);border-radius:7px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;font-size:12.5px;display:flex}.ed .fmtwarn .btn{margin-inline-start:auto}.ed .progress{background:var(--line-2);border-radius:2px;height:3px;overflow:hidden}.ed .progress i{background:var(--accent);width:0;height:100%;transition:width .2s;display:block}.ed kbd{font:11px var(--f-mono);border:1px solid var(--line);color:var(--muted);border-bottom-width:2px;border-radius:4px;padding:0 4px}.ed dialog{border:1px solid var(--line);background:var(--surface);color:var(--ink);width:min(640px,100vw - 32px);max-height:calc(100vh - 48px);box-shadow:var(--shadow);border-radius:12px;padding:0}.ed dialog::backdrop{background:#080e1473}.ed .dlg-head{border-bottom:1px solid var(--line-2);align-items:center;gap:10px;padding:14px 18px;display:flex}.ed .dlg-head h2{font:800 18px var(--f-display);margin:0;margin-inline-end:auto;font-stretch:88%}.ed .dlg-body{flex-direction:column;gap:14px;max-height:calc(100vh - 170px);padding:16px 18px;display:flex;overflow:auto}.ed .dlg-body p{color:var(--muted);max-width:62ch;margin:0}.ed .dlg-foot{border-top:1px solid var(--line-2);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.ed .grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ed .tbl{border:1px solid var(--line-2);border-radius:8px;max-height:55vh;overflow:auto}.ed .tbl table{border-collapse:collapse;width:100%;font-size:12.5px}.ed .tbl td,.ed .tbl th{border-bottom:1px solid var(--line-2);text-align:start;vertical-align:top;padding:6px 10px}.ed .tbl th{font:600 11px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--surface);position:sticky;top:0}.ed .tbl td:first-child{font-family:var(--f-mono);color:var(--muted);white-space:nowrap}.ed .tbl td:last-child{word-break:break-word;font-family:var(--f-mono)}.ed .check{cursor:pointer;align-items:flex-start;gap:8px;display:flex}.ed .check input{margin-top:3px}.ed .check small{color:var(--muted);display:block}.ed .code{font:12px var(--f-mono);background:var(--surface-2);border:1px solid var(--line-2);white-space:pre;border-radius:6px;padding:8px 10px;overflow:auto}.ed .toasts{z-index:9999;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));pointer-events:none;flex-direction:column;align-items:center;gap:6px;width:max-content;max-width:calc(100vw - 32px);display:flex;position:fixed;transform:translate(-50%)}.ed .toast{background:var(--ink);color:var(--surface);box-shadow:var(--shadow);border-radius:8px;padding:9px 14px;font-size:13px;animation:.18s ease-out ed-tin}.ed .toast.bad{background:var(--bad);color:#fff}.ed .dragmask{z-index:9000;background:color-mix(in srgb, var(--accent) 22%, transparent);border:3px dashed var(--accent);font:800 28px var(--f-display);color:var(--ink);pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}@media (max-width:1180px){.ed main.desk{grid-template-columns:260px minmax(0,1fr) 360px}}@media (max-width:980px){.ed{height:auto}.ed .app{height:auto}.ed main.desk{grid-template-rows:auto;grid-template-columns:1fr}.ed .mapwrap{order:1;height:62vh}.ed .pane.left{border-inline-end:0;border-top:1px solid var(--line);order:2}.ed .pane.right{border-inline-start:0;border-top:1px solid var(--line);order:3}.ed .scroll{overflow:visible}.ed .write{z-index:600;position:sticky;bottom:0;box-shadow:0 -6px 16px #00000014}.ed .privacy{display:none}}@media (max-width:520px){.ed .toolbar .lbl{display:none}.ed .toolbar .btn{justify-content:center;width:34px;padding:0}.ed fieldset,.ed .grid2{grid-template-columns:1fr}.ed .search{inset-inline:10px}}@keyframes ed-tin{0%{opacity:0;transform:translateY(6px)}}
.ed .upg-table{border-collapse:collapse;width:100%;font-size:13px}.ed .upg-table th,.ed .upg-table td{border-bottom:1px solid var(--line-2);text-align:left;padding:7px 8px}.ed .upg-table thead th{font:700 12px var(--f-display);color:var(--muted)}.ed .upg-table tbody th{font-weight:500}.ed .upg-table .upg-next{background:var(--accent-soft);font-weight:600}.ed .upg-actions{flex-wrap:wrap;gap:8px;display:flex}.ed .upg-actions a.btn{text-decoration:none}.ed .upg-note{color:var(--muted)}.ed .quota-soft{background:var(--accent-soft);border-radius:7px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;font-size:12.5px;display:flex}.ed .quota-soft .btn{margin-left:auto}.ed .lockmark{vertical-align:-2px;color:var(--muted);margin-left:4px;display:inline-flex}.ed .sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}
