
:root{--bg:#0f0f13;--surface:#1a1a24;--surface2:#22222f;--border:#2a2a38;--text:#f1f1f5;--muted:#a1a1b7;--primary:#8b5cf6;--purple:#b79afc;--pink:#ec4899;--good:#79d3b0;--rail:64px;--panel:360px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);color-scheme:dark;scrollbar-color:#484052 #17151f;scrollbar-width:thin;font:14px/1.5 Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow:hidden}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;background:none;border:0}button:disabled{cursor:not-allowed;color:var(--muted)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--purple);outline-offset:4px}button:hover{filter:brightness(1.13)}button:active{transform:translateY(1px)}a{color:inherit}svg.icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1{font-size:18px;font-weight:650;letter-spacing:-.5px}h2{font-size:20px;letter-spacing:-.5px}h3{font-size:15px}small,.meta{font-size:12px;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;color:var(--muted)}.icon-btn:hover{color:var(--text);background:var(--surface2)}.primary{background:var(--primary);color:#fff;border:1px solid var(--primary);border-radius:10px;padding:10px 16px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px}.secondary{border:1px solid var(--border);background:var(--surface2);border-radius:10px;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px}.text-btn{color:var(--purple);padding:8px 0;font-size:13px}.logo{width:34px;height:34px;flex:none}.rail{position:fixed;inset:0 auto 0 0;width:var(--rail);display:flex;flex-direction:column;align-items:center;padding:18px 0 16px;border-right:1px solid var(--border);z-index:15;background:var(--bg)}.rail-logo{padding:0;display:grid;place-items:center;margin-bottom:42px}.rail-nav{display:flex;flex-direction:column;gap:12px}.rail .icon-btn{height:44px;width:44px;position:relative}.rail .active{color:var(--purple);background:#1e192c}.rail [data-tip]:hover:after{content:attr(data-tip);position:absolute;left:50px;background:var(--surface2);border:1px solid var(--border);padding:6px 10px;border-radius:6px;font-size:12px;color:var(--text);white-space:nowrap;z-index:99}.rail-bottom{margin-top:auto;display:grid;gap:10px;justify-items:center}.avatar{width:32px;height:32px;border-radius:50%;background:#382853;color:#e0d1ff;display:grid;place-items:center;font-size:12px;font-weight:700}.app{margin-left:var(--rail);height:100dvh;display:flex;flex-direction:column}.header{height:72px;padding:0 24px;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--border);flex:none}.brand{display:flex;align-items:center;gap:12px;white-space:nowrap}.wordmark{font-size:22px;font-weight:800;letter-spacing:-1px}.brand-sub{font-size:12px;color:var(--muted);border-left:1px solid var(--border);padding-left:14px}.search{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:0 12px;height:40px;max-width:330px;flex:1;margin-left:auto;color:var(--muted)}.search input{background:none;border:0;outline:none;color:var(--text);min-width:0;width:100%;font-size:13px}.search input::placeholder{color:var(--muted)}.search:focus-within{border-color:var(--primary)}.search .icon{width:17px;height:17px}.keyboard{font-size:11px;border:1px solid #434351;border-radius:4px;padding:0 5px}.header-actions{display:flex;gap:8px;align-items:center}.demo-label{font-size:11px;color:var(--muted);border:1px solid var(--border);padding:3px 7px;border-radius:5px;white-space:nowrap}.register-top{font-size:13px}.toolbar{height:78px;display:flex;align-items:center;padding:0 24px;gap:20px;flex:none;border-bottom:1px solid var(--border)}.title-group{min-width:175px}.title-group p{font-size:12px;color:var(--muted);margin-top:2px}.location-btn{display:flex;gap:10px;align-items:center;border:1px solid var(--border);background:var(--surface);border-radius:10px;height:42px;padding:0 12px;font-size:13px}.location-btn .icon{width:16px;height:16px;color:var(--purple)}.location-btn strong{font-weight:600}.radius{font-size:12px;color:var(--purple);border-left:1px solid #424050;padding-left:10px}.filters{margin-left:auto;display:flex;align-items:center;gap:16px}.switch-label{display:flex;gap:9px;align-items:center;font-size:13px;white-space:nowrap;cursor:pointer}.switch-label input{appearance:none;width:30px;height:18px;border:1px solid #575768;border-radius:20px;background:#30303d;position:relative;margin:0;cursor:pointer}.switch-label input:after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:#c2c2cd;left:2px;top:2px;transition:transform .15s}.switch-label input:checked{background:var(--primary);border-color:var(--primary)}.switch-label input:checked:after{transform:translateX(12px);background:white}.save-filter{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.save-filter .icon{width:16px;height:16px}.save-filter.active{color:var(--purple)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) var(--panel);flex:1;min-height:0}.map-stage{position:relative;min-width:0;overflow:hidden;background:#14141b}.map-canvas{position:absolute;inset:0}.map-stage:after{content:"";position:absolute;inset:0;pointer-events:none;border:1px solid #ffffff04}.maplibregl-map{font-family:inherit}.maplibregl-ctrl-attrib{font-size:10px!important;background:#15151be8!important;color:#aaa!important;max-width:100%}.maplibregl-ctrl-attrib a{color:#ccc!important}.maplibregl-ctrl-bottom-right{bottom:0;right:0;max-width:100%}.map-top{position:absolute;top:20px;left:20px;z-index:2;pointer-events:none}.scope-label{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:12px 15px;display:flex;gap:12px;align-items:center;box-shadow:0 3px 15px #0002}.scope-mark{width:26px;height:26px;border:1px solid var(--primary);border-radius:50%;display:grid;place-items:center}.scope-mark:after{content:"";width:6px;height:6px;background:var(--purple);border-radius:50%}.scope-label strong{font-size:13px;font-weight:600}.scope-label p{font-size:11px;color:var(--muted);margin-top:2px}.scope-n{color:var(--purple)}.north{position:absolute;top:22px;right:23px;color:var(--muted);font-size:11px;display:grid;justify-items:center;gap:3px;pointer-events:none}.north svg{width:16px;height:20px}.map-controls{position:absolute;bottom:65px;right:20px;z-index:3;display:grid;gap:10px}.zoom-controls{display:grid;background:var(--surface);border:1px solid #454454;border-radius:10px;overflow:hidden}.zoom-controls .icon-btn{border-radius:0;color:var(--text)}.zoom-controls .icon-btn+.icon-btn{border-top:1px solid var(--border)}.recenter{background:var(--surface);border:1px solid #454454;color:var(--text)}.map-bottom{position:absolute;left:20px;bottom:29px;z-index:2;display:flex;gap:12px;align-items:center}.map-note{font-size:11px;color:#c2c0ce;background:#121219e8;padding:6px 10px;border-radius:6px}.map-note span{display:inline-block;width:6px;height:6px;background:var(--purple);border-radius:50%;margin-right:6px}.map-failure{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:#14141b;color:var(--muted);padding:30px;gap:8px;z-index:1}.map-failure strong{color:var(--text);font-size:17px}.map-failure button{justify-self:center;margin-top:12px}.map-loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:13px;color:var(--muted);background:var(--surface);padding:12px 18px;border-radius:10px;z-index:1}.marker{display:flex;align-items:center;gap:6px;padding:4px;background:#191820;border:1px solid #777086;border-radius:8px;color:#eeeefa;box-shadow:0 2px 7px #0005;cursor:pointer;white-space:nowrap;font:600 12px/1.3 Pretendard,sans-serif}.marker .marker-dot{background:#32264b;color:#d2baff;width:23px;height:23px;border-radius:5px;display:grid;place-items:center}.marker .icon{width:14px;height:14px}.marker .marker-name{padding-right:5px}.marker.closed{color:#c1becb}.marker.closed .marker-dot{background:#30303b;color:#c0bbcc}.marker.selected{border-color:#c6a9ff;background:var(--primary);color:white;z-index:6!important}.marker.selected .marker-dot{background:#ffffff20;color:white}.marker:hover{z-index:8!important;border-color:var(--purple)}.center-marker{width:16px;height:16px;border:3px solid #fff;background:var(--primary);border-radius:50%;box-shadow:0 0 0 8px #8b5cf62b;pointer-events:none}.center-caption{position:absolute;top:23px;left:50%;transform:translateX(-50%);color:#dfd3ff;background:#211a30e8;padding:3px 7px;border-radius:5px;white-space:nowrap;font-size:10px}.panel{display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--border);background:var(--bg);z-index:5}.panel-handle{display:none}.panel-head{padding:22px 20px 17px;border-bottom:1px solid var(--border)}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:8px}.panel-title h2{font-size:16px;letter-spacing:-.3px}.count{color:var(--purple);font-weight:600;margin-left:6px}.sort{font-size:12px;border:0;background:var(--bg);color:var(--muted);padding:6px 0;max-width:95px}.panel-head p{font-size:11px;color:var(--muted);margin-top:6px}.place-list{overflow:auto;flex:1;padding:8px 12px}.place-row{width:100%;display:flex;gap:12px;align-items:center;text-align:left;padding:16px 8px;border-bottom:1px solid #25252f;border-radius:0;position:relative}.place-row:hover{background:var(--surface);border-radius:10px}.place-row.selected{background:#1e192b;border-radius:10px;border-bottom-color:transparent}.place-initial{width:54px;height:58px;border-radius:9px;background:#272333;color:#bfa8e9;display:grid;place-items:center;font-size:22px;font-weight:500;flex:none;position:relative;overflow:hidden}.place-initial:after{content:"";width:35px;height:35px;border:1px solid currentColor;border-radius:50%;position:absolute;right:-13px;bottom:-12px;opacity:.25}.place-initial.slate{background:#222630;color:#a4afc6}.place-initial.rose{background:#30212b;color:#d3a7c1}.place-initial.olive{background:#262b29;color:#a6bcb2}.row-info{flex:1;min-width:0}.row-title{display:flex;justify-content:space-between;align-items:center;gap:4px}.row-title strong{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.distance{font-size:12px;color:#c8bedb;font-variant-numeric:tabular-nums;flex:none}.row-info p{font-size:12px;color:var(--muted);margin-top:3px}.status{color:var(--good);font-size:11px}.status.closed{color:#b4b1c2}.row-foot{display:flex;gap:6px;align-items:center;margin-top:7px;color:var(--muted);font-size:11px}.row-arrow{width:14px!important;height:14px!important;color:var(--muted);margin-left:4px}.panel-footer{padding:13px 20px;border-top:1px solid var(--border);color:var(--muted);font-size:11px;flex:none}.panel-footer button{font-size:11px;color:var(--purple);padding:0}.empty{padding:48px 15px;text-align:center;color:var(--muted);font-size:13px}.empty .icon{width:27px;height:27px;margin-bottom:14px;color:#bfa4ef}.empty strong{display:block;font-size:15px;color:var(--text);margin-bottom:5px}.empty button{margin-top:18px}.detail{overflow:auto;padding:0 20px 24px;flex:1}.detail-top{display:flex;justify-content:space-between;align-items:center;padding:12px 0}.back-button{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:12px;min-height:40px}.back-button .icon{width:16px;height:16px}.place-cover{height:138px;background:#272130;border-radius:12px;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden;position:relative;color:#d5bfed}.cover-word{font-size:33px;font-weight:700;letter-spacing:-1px;text-align:center;line-height:1.05;max-width:80%;z-index:1}.cover-small{font-size:11px;margin-top:8px;color:#b6a6c8}.cover-shape{position:absolute;width:150px;height:150px;right:-40px;bottom:-90px;border:22px solid #bda4dd15;border-radius:50%}.detail-name{display:flex;align-items:flex-start;justify-content:space-between;margin-top:21px;gap:8px}.detail-name h2{font-size:23px}.detail-name p{color:var(--muted);font-size:12px;margin-top:3px}.save-place{border:1px solid var(--border);background:var(--surface);flex:none}.save-place.active{color:var(--purple);border-color:#68528a}.detail-status{margin-top:14px;display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted)}.detail-description{font-size:13px;line-height:1.75;color:#ccc9d7;margin-top:16px}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.detail-actions button{font-size:12px;padding:9px 10px}.detail-actions .icon{width:16px;height:16px}.detail-facts{border-top:1px solid var(--border);padding-top:7px}.fact{display:flex;gap:12px;align-items:flex-start;padding:12px 0;color:var(--muted);font-size:12px}.fact .icon{width:17px;height:17px;margin-top:1px}.fact strong{display:block;color:#e3dfed;font-weight:500}.fact p{margin-top:2px}.tags{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 18px}.tag{border:1px solid var(--border);border-radius:6px;padding:4px 8px;font-size:11px;color:#c9c1d7}.sample-warning{padding:12px;background:var(--surface);border-radius:9px;color:var(--muted);font-size:11px;line-height:1.7}.detail-report{display:block;margin:15px auto 0;color:var(--muted);font-size:11px}.popover{position:fixed;left:72px;bottom:16px;z-index:30;background:var(--surface2);border:1px solid #464052;border-radius:12px;padding:7px;width:220px;box-shadow:0 8px 32px #0005}.popover-title{padding:10px 10px 13px;border-bottom:1px solid #373344;margin-bottom:5px;font-weight:600}.popover-title p{font-size:11px;color:var(--muted);font-weight:400;margin-top:2px}.popover button{display:flex;gap:9px;align-items:center;width:100%;text-align:left;padding:10px;border-radius:7px;font-size:13px}.popover button:hover{background:#ffffff08}.popover .icon{width:16px;height:16px;color:var(--muted)}dialog{color:var(--text);background:var(--surface);border:1px solid #474152;border-radius:18px;padding:0;width:min(460px,calc(100% - 32px));max-height:calc(100dvh - 40px);box-shadow:0 25px 80px #0006}dialog::backdrop{background:#08080dcc}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 24px 14px;gap:12px}.dialog-head h2{font-size:19px}.dialog-head p{color:var(--muted);font-size:12px;margin-top:4px}.dialog-head .icon-btn{margin:-8px -10px 0 0}.dialog-body{padding:0 24px 24px}.dialog-body>p{color:var(--muted);font-size:13px;line-height:1.8}.location-option{display:flex;align-items:center;gap:12px;width:100%;padding:14px 12px;border-radius:10px;border:1px solid var(--border);margin-bottom:8px;text-align:left}.location-option:hover{background:var(--surface2)}.location-option.current{border-color:#7856b3;background:#241d34}.location-option .icon{color:var(--purple);width:19px;height:19px}.location-option span{flex:1}.location-option strong{font-size:13px}.location-option small{display:block;font-size:11px;margin-top:1px}.location-option .check{color:var(--purple);font-size:14px;flex:0}.dialog-note{font-size:11px;color:var(--muted);background:var(--surface2);border-radius:8px;padding:12px;margin-top:16px;line-height:1.8}.form{display:grid;gap:14px}.field{display:grid;gap:6px;font-size:12px;color:#c7c3d2}.field input,.field textarea,.field select{width:100%;border:1px solid #484151;background:var(--bg);border-radius:8px;color:var(--text);padding:10px 12px;min-height:42px}.field textarea{resize:vertical;min-height:70px}.field input::placeholder,.field textarea::placeholder{color:var(--muted)}.checkbox-row{display:flex;align-items:flex-start;gap:8px;font-size:11px;color:var(--muted)}.checkbox-row input{accent-color:var(--primary);margin-top:3px}.login{position:fixed;inset:0;background:#101015;z-index:50;display:grid;grid-template-columns:1fr 1fr;overflow:auto}.login-visual{display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:#15131d}.login-radar{width:min(470px,80%);aspect-ratio:1;position:relative;border:1px solid #655078;border-radius:50%;display:flex;align-items:center;justify-content:center}.login-radar:before,.login-radar:after{content:"";position:absolute;border:1px solid #30273f;border-radius:50%;inset:16%}.login-radar:after{inset:33%}.login-radar .logo{width:94px;height:94px}.login-dot{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 5px #8b5cf614}.login-dot.one{top:28%;left:22%}.login-dot.two{top:63%;right:19%}.login-dot.three{bottom:10%;left:40%}.radar-label{position:absolute;bottom:23px;font-size:12px;color:#b6a4cd}.login-visual-caption{position:absolute;bottom:40px;color:#8e839e;font-size:12px}.login-right{display:flex;align-items:center;justify-content:center;padding:32px}.login-card{width:330px;max-width:100%}.login-brand{display:flex;align-items:center;gap:8px;margin-bottom:38px}.login-brand .wordmark{font-size:27px}.login-card h2{font-size:29px;line-height:1.4;letter-spacing:-1px;margin-bottom:12px;font-weight:650}.login-card>p{color:var(--muted);font-size:14px;line-height:1.8}.login-card .primary{width:100%;margin-top:30px}.login-card .demo-label{display:inline-block;margin-top:18px}.login-footnote{font-size:11px!important;margin-top:18px;line-height:1.8!important}.login-scope{display:flex;align-items:center;gap:8px;font-size:12px;color:#c5b4dd;margin-top:24px}.login-scope .icon{width:15px;height:15px}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:#30283f;color:#f1eaff;border:1px solid #75608c;border-radius:10px;box-shadow:0 8px 25px #0004;padding:11px 18px;font-size:13px;z-index:100;width:max-content;max-width:calc(100% - 32px);text-align:center}.mobile-view{display:none}.about-list{margin:15px 0;color:#cdc6da;padding-left:18px;font-size:13px;line-height:2}.register-success{text-align:center;padding:16px 0}.register-success .icon{width:36px;height:36px;color:var(--purple);margin-bottom:15px}.register-success p{color:var(--muted);font-size:13px;line-height:1.8;margin:12px 0 20px}
@media(min-width:1800px){:root{--panel:400px}.panel-head,.detail{padding-left:24px;padding-right:24px}.place-row{padding:19px 12px}.place-initial{width:60px;height:64px}}
@media(max-width:1100px){:root{--panel:320px}.brand-sub{display:none}.header{gap:18px}.toolbar{gap:12px;padding:0 18px}.title-group{min-width:145px}.filters{gap:10px}.scope-label{padding:10px}.map-top{left:16px;top:16px}.marker{font-size:11px}.marker .marker-dot{width:19px;height:19px}.panel-head{padding:18px 18px 14px}.place-initial{width:43px;height:51px}.place-row{gap:10px}.header .register-top{padding:8px 10px}}
@media(max-width:850px){:root{--rail:0px;--panel:300px}.rail{display:none}.header{height:60px;padding:0 16px;gap:12px}.header .brand .wordmark{font-size:21px}.header .register-top{display:none}.header .demo-label{display:none}.header-actions .avatar{width:30px;height:30px}.search{max-width:320px;height:36px}.keyboard{display:none}.toolbar{height:100px;flex-wrap:wrap;align-content:center;gap:8px 12px;padding:12px 16px}.title-group{min-width:0;flex:1}.title-group p{font-size:11px}.location-btn{height:36px;font-size:12px}.filters{width:100%;justify-content:flex-start;margin:0;gap:18px}.filters button,.switch-label{font-size:12px}.popover{left:auto;right:14px;bottom:auto;top:68px}.map-note{max-width:230px;font-size:10px}.map-top{top:12px;left:12px}.scope-label{padding:9px 11px;gap:9px}.scope-label p{font-size:10px}.scope-mark{width:22px;height:22px}.north{right:15px;top:17px}.map-controls{right:12px}.map-bottom{left:12px}}
@media(max-width:620px){body{font-size:13px}.header{height:58px;gap:12px}.header .brand{gap:0}.brand-sub{display:none}.header .search{flex:1;max-width:none;padding:0 10px}.search input{font-size:12px}.header-actions{gap:0}.toolbar{height:99px;padding:10px 16px;gap:8px}.toolbar h1{font-size:17px}.title-group p{display:none}.location-btn{padding:0 10px;gap:7px}.radius{font-size:11px;padding-left:8px}.location-btn>.icon{display:none}.filters{gap:18px}.workspace{display:block;position:relative}.map-stage{position:absolute;inset:0 0 205px}.panel{position:absolute;inset:auto 0 0;height:205px;border-left:0;border-top:1px solid #51455f;border-radius:18px 18px 0 0;overflow:hidden;background:var(--bg);transition:height .2s ease}.panel.expanded{height:68%;box-shadow:0 -10px 40px #0003}.panel.is-detail{height:72%}.panel-handle{display:flex;align-items:center;justify-content:center;width:100%;height:19px;flex:none;padding:0}.panel-handle:after{content:"";width:30px;height:3px;border-radius:4px;background:#5c5667}.panel-head{padding:0 16px 10px}.panel-title h2{font-size:14px}.panel-head p{font-size:10px;margin-top:1px}.panel-footer{display:none}.place-list{padding:0 10px 12px}.place-row{padding:12px 6px}.place-initial{width:43px;height:47px}.row-info p{font-size:11px}.row-foot{margin-top:4px}.row-title strong{font-size:13px}.panel:not(.expanded):not(.is-detail) .place-list{display:flex;overflow:auto;flex:none;gap:10px;padding:0 16px 12px}.panel:not(.expanded):not(.is-detail) .place-row{flex:none;width:270px;border:1px solid var(--border);padding:12px;border-radius:10px}.panel:not(.expanded):not(.is-detail) .place-row .row-arrow{display:none}.map-controls{bottom:44px;right:12px;gap:8px}.icon-btn{width:36px;height:36px}.map-top{left:12px;top:12px}.scope-label{padding:9px 10px;border-radius:9px;gap:8px}.scope-label strong{font-size:11px}.scope-label p{font-size:10px}.scope-mark{display:none}.north{right:20px;top:13px}.map-bottom{left:12px;bottom:25px}.map-note{font-size:10px;padding:5px 8px}.maplibregl-ctrl-attrib{font-size:10px!important}.mobile-view{display:flex;gap:5px;align-items:center;color:var(--purple);font-size:11px;margin-left:auto;padding:4px 0;min-height:29px}.mobile-view .icon{width:13px;height:13px}.sort{margin-left:auto;font-size:11px;max-width:77px}.detail{padding:0 18px 30px}.detail-top{padding:0}.place-cover{height:115px}.cover-word{font-size:29px}.detail-name{margin-top:16px}.detail-name h2{font-size:21px}.detail-status{margin-top:10px}.detail-description{margin-top:12px}.detail-actions{margin:16px 0}.panel.is-detail .panel-head{display:none}.marker{font-size:10px;border-radius:6px;padding:3px;gap:4px}.marker .marker-dot{width:16px;height:16px;border-radius:3px}.marker .icon{width:11px;height:11px}.marker .marker-name{padding-right:2px}.center-marker{width:13px;height:13px;border-width:2px}.center-caption{display:none}.login{grid-template-columns:1fr}.login-visual{display:none}.login-right{padding:28px}.login-card h2{font-size:29px}.login-brand{margin-bottom:44px}.dialog-head{padding:20px 20px 12px}.dialog-body{padding:0 20px 20px}dialog{max-height:calc(100dvh - 24px)}.toast{bottom:18px;font-size:12px}.north{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

/* Gayder application states. Existing dark/violet brand and map composition retained. */
button:disabled{opacity:.65;filter:none}.local-login{width:100%;margin-top:10px}.browse-button{display:block;margin:12px auto 0}.login-card .inline-error{font-size:12px;color:#ffbfc8;margin-top:12px}.inline-error{border:1px solid #794958;background:#351e2b;color:#ffd1d7;padding:10px 12px;border-radius:8px;font-size:12px;line-height:1.7}.list-status{padding:38px 16px;color:var(--muted);font-size:13px;display:flex;align-items:center;gap:10px;line-height:1.8}.list-status .icon{color:var(--purple);width:18px;height:18px}.empty-register{display:block;margin:8px auto 0!important}.row-foot{flex-wrap:wrap;gap:4px}.row-foot>span:last-child{font-size:10px}.row-title strong{max-width:190px}.week-hours{margin:8px 0 0;min-width:170px;font-size:11px}.week-hours>div{display:flex;justify-content:space-between;gap:18px;line-height:2}.week-hours dt,.week-hours dd{margin:0}.week-hours .today{color:#d9c4ff}.official-link{display:flex;align-items:center;gap:5px;color:var(--purple);text-decoration:none}.official-link .icon{width:13px;height:13px}.field-heading{font-size:12px;color:var(--muted);margin:16px 0 8px!important}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-grid label{display:grid;gap:5px;font-size:11px;color:var(--muted);min-width:0}.field-grid input{min-width:0;width:100%}.field>small,.hours-input>small{font-size:11px;color:var(--muted);line-height:1.7}.pick-position{width:100%;font-size:12px}.pick-position .icon{width:16px;height:16px}.hours-input{border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:12px}.hours-input summary{cursor:pointer;color:#ded3ef;min-height:24px}.hours-input[open] summary{margin-bottom:10px}.day-choices{display:flex;gap:10px;flex-wrap:wrap;margin:4px 0 12px}.day-choices label{display:flex;gap:4px;align-items:center;font-size:12px}.day-choices input{accent-color:var(--primary);margin:0}.hours-input>small{display:block;margin-top:10px}.request-id{display:block;color:var(--muted);font-size:10px;overflow-wrap:anywhere;margin-bottom:18px}.register-success .primary{width:100%}.submission-row{border-bottom:1px solid var(--border);padding:14px 0;display:grid;grid-template-columns:1fr auto;gap:8px}.submission-row h3{font-size:14px}.submission-row p{font-size:12px;color:var(--muted);margin-top:3px}.submission-row small{font-size:11px;color:var(--muted);grid-column:1/-1}.submission-status{align-self:start;padding:3px 7px;background:var(--surface2);border-radius:5px;font-size:11px;color:var(--purple)}.submission-status.approved{color:var(--good)}.submission-status.rejected{color:#e9b3bf}.picker-banner{position:absolute;z-index:12;top:16px;left:16px;right:16px;background:var(--surface);border:1px solid #8a68b8;border-radius:12px;padding:14px 16px;display:flex;justify-content:space-between;gap:16px;align-items:center;box-shadow:0 7px 24px #0004}.picker-banner strong{font-size:14px}.picker-banner p{font-size:11px;color:var(--muted);margin-top:3px}.picker-banner>div:last-child{display:flex;gap:8px;flex:none}.picker-banner button{font-size:12px;min-height:38px;padding:7px 12px}.picking .map-top,.picking .map-note,.picking .panel{display:none}.picking.workspace{grid-template-columns:1fr}.picking .map-stage{bottom:0}.picked-marker{width:22px;height:22px;border-radius:50%;border:4px solid #fff;background:var(--primary);box-shadow:0 0 0 8px #8b5cf63d}.picking .maplibregl-canvas-container{cursor:crosshair}.map-loading{font-size:12px}.row-foot span{font-variant-numeric:tabular-nums}
@media(max-width:620px){.picker-banner{top:10px;left:10px;right:10px;padding:12px;display:block}.picker-banner strong{font-size:12px}.picker-banner>div:last-child{margin-top:10px;justify-content:flex-end}.picker-banner p{font-size:10px}.row-title strong{max-width:160px}.panel:not(.expanded):not(.is-detail) .empty{width:100%;min-width:300px;padding:20px 12px}.panel:not(.expanded):not(.is-detail) .empty .icon{display:none}.panel:not(.expanded):not(.is-detail) .empty button{margin-top:8px}.panel:not(.expanded):not(.is-detail) .empty p{font-size:11px}.panel:not(.expanded):not(.is-detail) .empty strong{font-size:13px}.day-choices{gap:9px}.field-grid{gap:8px}.local-login{min-height:44px}.login-card .primary{margin-top:26px}.submission-row{grid-template-columns:1fr auto}.week-hours{min-width:200px}}

@media(max-width:620px){.panel:not(.expanded):not(.is-detail) .empty{padding:14px 12px}.panel:not(.expanded):not(.is-detail) .empty-register{display:none}.panel:not(.expanded):not(.is-detail) .empty p{line-height:1.5}.panel:not(.expanded):not(.is-detail) .empty strong{margin-bottom:3px}}

/* v2: translated client UI, ratings, verified reviews, fixed advertising. */
body{font-family:Pretendard,'Yu Gothic UI',Meiryo,-apple-system,BlinkMacSystemFont,sans-serif}.language-control select{height:34px;max-width:85px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);padding:0 9px;font-size:12px}.login-language{display:flex;gap:15px;margin:-12px 0 22px}.login-language button{padding:4px 0;color:var(--muted);font-size:13px}.login-language button:hover{color:var(--purple)}#login-title,#login-intro{white-space:pre-line}.login-scope{align-items:flex-start}.login-scope span{max-width:280px}.login-card h2{font-size:29px;line-height:1.3}.header-actions{gap:12px}.place-list,.detail{min-height:0}.panel-head{flex-shrink:0}.panel-title{flex-wrap:wrap}.panel-title h2{font-size:15px}.count{font-size:13px}.sort{max-width:110px}.row-info{min-width:0}.row-title{gap:6px}.place-name-rating{display:flex;gap:7px;min-width:0;align-items:center}.place-name-rating strong{max-width:140px}.rating-inline{display:inline-flex;align-items:center;gap:3px;color:#d7c3ff;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.rating-inline .icon{width:12px;height:12px;stroke-width:1.7;fill:#b795f340}.rating-inline.large{font-size:13px}.rating-inline.large .icon{width:14px;height:14px}.rating-inline small{font-size:11px;color:var(--muted)}.detail-name-rating{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.detail-name h2{font-size:22px;max-width:240px}.partner-placement{flex:none;min-height:144px;max-height:168px;padding:13px 20px 14px;border-top:1px solid #4a3b60;background:#19151f;overflow:hidden}.placement-label{display:flex;justify-content:space-between;gap:12px;font-size:10px;line-height:1.5;color:#b5a9c5;margin-bottom:9px}.placement-label span{color:#988ba9}.placement-empty strong,.placement-campaign strong{font-size:15px;font-weight:600;display:block;color:#ece4f5;line-height:1.4}.placement-empty p,.placement-campaign p{font-size:12px;line-height:1.5;color:#b6a8c7;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.placement-empty>span{display:block;font-size:10px;color:#9989af;margin-top:8px}.placement-campaign{display:flex;gap:9px;text-decoration:none;color:inherit}.placement-campaign img{width:64px;height:64px;object-fit:cover;border-radius:6px}.placement-cta{display:flex;align-items:center;gap:4px;font-size:11px;color:#d5b8fc;margin-top:8px}.placement-cta .icon{width:12px;height:12px}.panel-footer{padding-top:10px;padding-bottom:10px;font-size:10px}.reviews-section{margin:22px 0;border-top:1px solid var(--border);padding-top:18px}.reviews-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.reviews-heading h3{font-size:17px}.reviews-heading>span{font-size:11px;color:var(--muted)}.verified-summary{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--good);margin-top:9px}.verified-summary .icon{width:13px;height:13px}.write-review{width:100%;font-size:12px;margin-top:15px;min-height:43px}.write-review .icon{width:16px;height:16px}.review-language-note{font-size:10px;color:var(--muted);margin-top:8px}.review-state{font-size:12px;color:var(--muted);line-height:1.8;padding:20px 0}.review-card{padding:18px 0;border-bottom:1px solid var(--border)}.review-meta{display:flex;gap:10px;align-items:center;justify-content:space-between}.review-meta strong{font-size:12px;font-weight:500}.review-stars{display:flex;gap:2px;color:#d6bbff}.review-stars .icon{width:12px;height:12px}.review-stars .filled{fill:currentColor}.review-verified{display:flex;align-items:center;gap:4px;color:var(--good);font-size:10px;margin-top:5px}.review-verified .icon{width:11px;height:11px}.review-verified time{margin-left:auto;color:var(--muted)}.review-copy{font-size:13px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:10px;color:#d4ccdf}.review-photos{display:flex;gap:6px;margin-top:10px}.review-photos a{display:block;flex:1;max-width:100px;aspect-ratio:1}.review-photos img{width:100%;height:100%;object-fit:cover;border-radius:7px}.more-reviews{font-size:12px;width:100%;margin-top:16px}.visit-check{padding:14px;border:1px solid #645178;border-radius:10px;background:#241d2f}.visit-check.verified{border-color:#38654e;background:#19271f}.visit-check-title{display:flex;gap:7px;align-items:center;color:#d8c4f7}.visit-check.verified .visit-check-title{color:var(--good)}.visit-check-title h3{font-size:14px}.visit-check-title .icon{width:18px;height:18px}.visit-check p{font-size:12px;line-height:1.75;color:#c6bad5;margin-top:8px}.visit-check small{display:block;color:var(--muted);font-size:10px;line-height:1.7;margin-top:10px}.visit-check .secondary{margin-top:11px;font-size:12px;width:100%;background:#30263f;border-color:#6c5089}.review-form{margin-top:18px}.rating-field{padding:0;border:0;margin:0}.rating-field legend{font-size:12px;color:#c7c3d2;margin-bottom:6px}.star-picker{display:flex;gap:4px}.star-choice{width:43px;height:43px;display:grid;place-items:center;color:#81748c;border-radius:7px}.star-choice .icon{width:28px;height:28px}.star-choice.filled{color:#c3a0fb}.star-choice.filled .icon{fill:currentColor}.star-choice:hover{background:var(--surface2)}.photo-select{position:relative;overflow:hidden;cursor:pointer;width:100%;font-size:12px}.photo-select input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.photo-select .icon{width:16px;height:16px}.photo-drafts{display:flex;gap:8px}.photo-draft{width:calc((100% - 16px)/3);aspect-ratio:1;position:relative;margin-top:4px}.photo-draft img{width:100%;height:100%;object-fit:cover;border-radius:8px}.photo-draft button{position:absolute;top:4px;right:4px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#0f0f13df;color:white}.photo-draft button .icon{width:14px;height:14px}.photo-draft span{position:absolute;bottom:4px;left:4px;font-size:9px;background:#0f0f13ca;color:#fff;padding:2px 4px;border-radius:4px}.own-review-body{grid-column:1/-1;white-space:pre-wrap;overflow-wrap:anywhere}.credits{font-size:11px!important;color:var(--muted);margin-top:18px!important;line-height:1.8!important}.review-form textarea{min-height:110px}.review-form .checkbox-row{font-size:11px}.review-form small{line-height:1.7}
@media(max-width:1100px){.place-name-rating strong{max-width:110px}.partner-placement{padding-left:16px;padding-right:16px}.brand-sub{display:none}.header{gap:15px}}
@media(max-width:620px){.header{padding:0 12px;gap:9px}.header-actions{gap:7px}.language-control select{max-width:74px;padding:0 7px;font-size:11px}.header .brand .wordmark{font-size:20px}.search{padding:0 8px!important}.search input{font-size:11px}.search .icon{width:15px;height:15px}.toolbar{height:104px}.title-group h1{font-size:16px}.location-btn{font-size:11px}.radius{font-size:10px}.location-btn .icon{width:12px}.filters{gap:18px}.map-stage{bottom:295px}.panel{height:295px}.panel.expanded,.panel.is-detail{height:80%}.partner-placement{min-height:96px;max-height:96px;padding:8px 16px 9px}.placement-label{font-size:9px;margin-bottom:4px}.placement-empty strong,.placement-campaign strong{font-size:13px}.placement-empty p,.placement-campaign p{font-size:10px;margin-top:2px;-webkit-line-clamp:1}.placement-empty>span{font-size:9px;margin-top:4px}.placement-cta{font-size:10px;margin-top:3px}.placement-campaign img{width:47px;height:47px}.panel-head{padding-bottom:8px}.panel-title h2{font-size:13px}.count{font-size:11px}.sort{max-width:99px;font-size:10px}.mobile-view{font-size:10px}.panel:not(.expanded):not(.is-detail) .place-list{flex:1;min-height:0;padding-bottom:9px}.panel:not(.expanded):not(.is-detail) .place-row{width:280px;max-height:88px;align-self:flex-start}.place-name-rating strong{max-width:130px}.detail-name h2{font-size:21px}.reviews-heading h3{font-size:16px}.visit-check small{font-size:10px}.login-card h2{font-size:30px}.login-language{margin-bottom:20px}.login-scope{font-size:11px}.login-card>p{font-size:13px}.review-copy{font-size:13px}.panel:not(.expanded):not(.is-detail) .empty{padding:6px 10px}.panel:not(.expanded):not(.is-detail) .empty p{font-size:10px}.panel:not(.expanded):not(.is-detail) .empty .secondary{min-height:32px;padding:5px 10px;font-size:11px}}

/* Map categories: one violet family, distinct silhouettes. */
.map-category-bar{position:absolute;inset:0 0 auto;height:66px;z-index:6;background:#101015;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 20px;min-width:0}.category-filters{display:flex;align-items:center;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;width:100%;padding:4px 2px}.category-filters::-webkit-scrollbar{display:none}.category-chip{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #393043;border-radius:10px;background:#1a1721;color:#b7a9cb;padding:9px 12px;min-height:40px;flex:none;font-size:12px;font-weight:550;white-space:nowrap;transition:background .12s,border-color .12s,color .12s}.category-chip .icon{width:18px;height:18px;color:#b695ed}.category-chip.active{background:#322249;border-color:#9b73d8;color:#f3eaff}.category-chip.active .icon{color:#dbbaff}.category-chip:hover{background:#2b2039;border-color:#76529e;filter:none}.category-chip:focus-visible{outline-offset:-2px}.category-chip.gayder-chip{padding-left:8px}.category-chip.gayder-chip .icon{width:23px;height:23px;stroke:none}.map-stage .map-canvas{top:66px}.map-stage .map-top{top:84px}.map-stage .north{top:88px}.map-stage .map-failure{top:66px}.picking .map-category-bar{display:none}.picking .map-canvas{top:0}.category-initial{background:#211a2d!important;color:#bc9be9!important}.category-initial:after{display:none}.category-initial .venue-pin{width:31px;height:39px}.venue-pin{display:block;width:36px;height:44px;flex:none;overflow:visible;color:#9460db;filter:drop-shadow(0 2px 2px #0006)}.marker.venue-marker{border:0!important;background:none!important;border-radius:0;box-shadow:none!important;padding:0;gap:0;display:flex;align-items:center;min-height:44px;font-weight:600;color:#9460db}.marker.venue-marker .marker-name{padding:5px 9px 5px 7px;line-height:1.35;margin-left:-4px;background:#231a30f5;border:1px solid #6c4d90;border-left:0;border-radius:0 7px 7px 0;color:#e9d9ff;font-size:11px;max-width:150px;text-overflow:ellipsis;overflow:hidden}.marker.venue-marker .venue-pin{position:relative;z-index:1}.marker.venue-marker.closed .venue-pin{color:#855bb7}.marker.venue-marker.closed .marker-name{color:#c7b4dd;border-color:#574168}.marker.venue-marker.selected .venue-pin{color:#bb8aff;filter:drop-shadow(0 0 3px #b789ed99)}.marker.venue-marker.selected .marker-name{background:#60358d;border-color:#dbbaff;color:white}.marker.venue-marker:hover{z-index:8!important;filter:brightness(1.12)}
@media(max-width:1100px){.map-category-bar{padding:0 14px}.category-filters{gap:6px}.category-chip{padding:8px 10px;font-size:11px}.category-chip .icon{width:16px;height:16px}}
@media(max-width:620px){.map-category-bar{height:58px;padding:0 10px}.category-filters{gap:6px}.category-chip{min-height:36px;padding:7px 10px;font-size:11px;border-radius:8px}.category-chip.gayder-chip .icon{width:20px;height:20px}.map-stage .map-canvas{top:58px}.map-stage .map-top{top:70px}.map-stage .north{top:75px}.map-stage .map-failure{top:58px}.marker.venue-marker .venue-pin{width:30px;height:38px}.marker.venue-marker{min-height:38px}.marker.venue-marker .marker-name{font-size:10px;padding:4px 6px;max-width:112px}.category-initial .venue-pin{width:28px;height:35px}.picking .map-canvas{top:0}}

/* Keep the overview readable; names remain in the list and reveal on focus/hover/selection. */


/* Pin revision: transparent line icons and untouched original Gayder gradient. */
.venue-pin,.marker.venue-marker .venue-pin,.category-initial .venue-pin{width:36px;height:36px;min-width:36px;max-width:36px;flex:0 0 36px;filter:none!important}
.category-venue-pin{fill:none!important;stroke:#b695ed;color:#b695ed;background:transparent!important}
.category-initial{background:transparent!important}
.gayder-brand-mark{stroke:none!important;opacity:1!important;filter:none!important}
.marker.venue-marker,.marker.venue-marker:hover,.marker.venue-marker.selected,.marker.venue-marker.closed{filter:none!important;opacity:1}
.marker.venue-marker{min-height:44px}
.marker.venue-marker.closed .category-venue-pin,.marker.venue-marker.selected .category-venue-pin{stroke:#b695ed;color:#b695ed}
.category-chip .icon,.category-chip.gayder-chip .icon{width:20px;height:20px;flex:0 0 20px}
@media(max-width:620px){.venue-pin,.marker.venue-marker .venue-pin,.category-initial .venue-pin{width:36px;height:36px;min-width:36px;max-width:36px;flex-basis:36px}.marker.venue-marker{min-height:44px}.category-chip .icon,.category-chip.gayder-chip .icon{width:20px;height:20px}}

.place-row:hover{filter:none}

/* Persistent boxed map labels: only the leading icon varies by venue/category. */
.marker.venue-marker{height:32px;min-height:32px;padding:3px 7px 3px 4px;gap:5px;border:1px solid #62596f!important;border-radius:7px;background:#191820f5!important;box-shadow:0 2px 6px #0004!important;color:#eee9f4;align-items:center}
.marker.venue-marker .venue-pin{width:24px;height:24px;min-width:24px;max-width:24px;flex:0 0 24px}
.marker.venue-marker .marker-name,.marker.venue-marker.closed .marker-name,.marker.venue-marker.selected .marker-name{display:block!important;margin:0;padding:0;border:0;background:none;border-radius:0;color:#eee9f4;line-height:1.3;font-size:11px;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.marker.venue-marker.selected{background:#8b5cf6!important;border-color:#d5baff!important}
.marker.venue-marker.selected .marker-name{color:white}
.marker.venue-marker:hover{border-color:#c6a9ee!important}
.marker.venue-marker.closed{border-color:#55505e!important}
@media(max-width:620px){.marker.venue-marker{height:32px;min-height:32px;padding:3px 6px 3px 4px;gap:4px}.marker.venue-marker .venue-pin{width:24px;height:24px;min-width:24px;max-width:24px;flex-basis:24px}.marker.venue-marker .marker-name{font-size:10px;max-width:112px}}
