
:root{
  --navy:#102a43;
  --navy-deep:#081c2b;
  --blue:#176b9c;
  --sky:#eaf4fa;
  --green:#14936f;
  --red:#d95151;
  --ink:#17212b;
  --muted:#6d7a85;
  --line:#dce3e8;
  --soft:#f4f6f7;
  --white:#fff;
  --shadow:0 12px 35px rgba(10,35,52,.14);
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0}
body{font-family:Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR",sans-serif;color:var(--ink);background:#eef2f4;overflow:hidden}
button,input,select{font:inherit}
button,a{color:inherit}
button{cursor:pointer}
.map-page{display:grid;grid-template-rows:64px 92px minmax(0,1fr)}
.map-topbar{position:relative;z-index:1000;display:grid;grid-template-columns:245px minmax(320px,680px) 1fr;align-items:center;gap:24px;padding:0 22px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 8px rgba(13,40,58,.05)}
.map-brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.map-brand-symbol{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--navy);color:#fff;font-size:12px;font-weight:900;letter-spacing:.05em}
.map-brand strong,.map-brand small{display:block}
.map-brand strong{font-size:17px}
.map-brand small{margin-top:2px;color:#8b98a2;font-size:9px;letter-spacing:.15em}
.map-search{position:relative;height:42px;display:flex;align-items:center;border:1px solid #cdd7dd;border-radius:10px;background:#f8fafb;overflow:visible}
.map-search:focus-within{border-color:#2a789f;box-shadow:0 0 0 3px rgba(42,120,159,.1)}
.map-search .search-icon{width:42px;text-align:center;color:#73838e;font-size:23px}
.map-search input{min-width:0;flex:1;height:40px;border:0;outline:0;background:transparent;color:#18232c}
.map-search button{height:34px;margin-right:4px;padding:0 17px;border:0;border-radius:8px;background:var(--navy);color:#fff;font-weight:800}
.search-suggestions{display:none;position:absolute;top:48px;left:0;right:0;z-index:2000;padding:7px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}
.search-suggestions.open{display:block}
.search-suggestions button{display:block;width:100%;height:auto;margin:0;padding:10px 12px;text-align:left;background:#fff;color:var(--ink)}
.search-suggestions button:hover{background:#f0f6f9}
.search-suggestions strong,.search-suggestions span{display:block}
.search-suggestions span{margin-top:3px;color:var(--muted);font-size:12px}
.map-top-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px}
.map-top-actions a{padding:9px 12px;border-radius:8px;text-decoration:none;font-size:13px;font-weight:750}
.map-top-actions a:hover{background:#f1f5f7}
.map-top-actions .admin-link{border:1px solid var(--navy);color:var(--navy)}
.map-filter-shell{position:relative;z-index:900;background:#fff;border-bottom:1px solid var(--line)}
.island-tabs{height:44px;display:flex;align-items:end;gap:3px;padding:0 20px;border-bottom:1px solid #e8edef;overflow-x:auto;scrollbar-width:none}
.island-tabs::-webkit-scrollbar{display:none}
.island-tabs button{height:44px;flex:0 0 auto;padding:0 15px;border:0;border-bottom:3px solid transparent;background:#fff;color:#66757f;font-size:13px;font-weight:750}
.island-tabs button.active{color:var(--navy);border-color:var(--navy)}
.filter-row{height:48px;display:flex;align-items:center;gap:7px;padding:7px 20px;overflow-x:auto;scrollbar-width:none}
.filter-row::-webkit-scrollbar{display:none}
.filter-row select,.detail-filter-btn,.reset-filter-btn{height:34px;flex:0 0 auto;padding:0 12px;border:1px solid #d2dce1;border-radius:8px;background:#fff;color:#34434e;font-size:13px;font-weight:700}
.segmented{height:34px;display:flex;flex:0 0 auto;border:1px solid #d2dce1;border-radius:8px;overflow:hidden}
.segmented button{min-width:52px;border:0;background:#fff;color:#677680;font-size:13px}
.segmented button+button{border-left:1px solid #e1e7ea}
.segmented button.active{background:var(--navy);color:#fff;font-weight:800}
.detail-filter-btn span{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:5px;padding:0 4px;border-radius:9px;background:#dfeaf0;color:#24485f;font-size:10px}
.detail-filter-btn.active{border-color:#2e769d;color:#1b628a}
.reset-filter-btn{border-color:transparent;color:#87939b}
.reset-filter-btn:hover{background:#f1f4f6}
.move-search-toggle{display:flex;align-items:center;gap:7px;flex:0 0 auto;margin-left:auto;color:#61717b;font-size:12px;white-space:nowrap}
.move-search-toggle input{accent-color:var(--navy)}
.map-workspace{position:relative;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 420px}
.map-stage{position:relative;min-width:0;min-height:0;background:#dce6eb}
.leaflet-map{width:100%;height:100%;background:linear-gradient(135deg,#dce9ef,#edf3f5)}
.map-loading{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:#50636f}
.map-loading strong,.map-loading span{display:block}
.map-loading span{margin-top:7px;font-size:12px}
.leaflet-container{font-family:inherit}
.leaflet-control-attribution{font-size:9px!important}
.map-layer-control{position:absolute;top:14px;right:14px;z-index:500;display:flex;padding:4px;border-radius:10px;background:rgba(255,255,255,.96);box-shadow:0 6px 20px rgba(23,53,69,.16)}
.map-layer-control button{height:31px;padding:0 11px;border:0;border-radius:7px;background:transparent;color:#657580;font-size:12px}
.map-layer-control button.active{background:var(--navy);color:#fff;font-weight:800}
.map-layer-control button[data-layer=parcel]{color:#9a682a}
.map-floating-tools{position:absolute;left:14px;bottom:52px;z-index:500;display:flex;align-items:center;gap:8px}
.map-floating-tools button{height:40px;border:1px solid rgba(22,55,74,.16);border-radius:10px;background:#fff;color:var(--navy);box-shadow:0 5px 18px rgba(15,42,58,.18);font-size:13px;font-weight:850}
#fitAllButton{width:40px;font-size:19px}
#currentAreaButton{padding:0 15px}
.provider-note{position:absolute;left:50%;bottom:13px;z-index:450;transform:translateX(-50%);padding:7px 11px;border-radius:7px;background:rgba(13,40,57,.78);color:#fff;font-size:10px;white-space:nowrap}
.map-list-panel{min-width:0;min-height:0;display:flex;flex-direction:column;background:#fff;border-left:1px solid var(--line);box-shadow:-6px 0 18px rgba(22,47,62,.06);z-index:600}
.list-panel-handle{display:none}
.list-panel-head{display:flex;align-items:end;justify-content:space-between;gap:15px;padding:18px 18px 13px;border-bottom:1px solid #e7ecef}
.list-panel-head p{margin:0 0 4px;color:#71808a;font-size:12px}
.list-panel-head h1{margin:0;font-size:20px}
.list-panel-head h1 b{color:#176b9c}
.list-panel-head select{height:32px;padding:0 7px;border:1px solid #d9e1e5;border-radius:7px;background:#fff;font-size:12px}
.list-panel-status{padding:9px 18px;background:#f6f9fa;color:#78858d;font-size:11px;border-bottom:1px solid #e9edef}
.map-property-list{min-height:0;flex:1;overflow-y:auto;padding:10px}
.map-property-card{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr);gap:12px;padding:10px;border:1px solid transparent;border-radius:12px;background:#fff;transition:.18s ease}
.map-property-card+.map-property-card{margin-top:4px}
.map-property-card:hover,.map-property-card.active{border-color:#c7d9e3;background:#f7fbfd;box-shadow:0 8px 22px rgba(21,60,82,.08)}
.map-card-image{position:relative;height:95px;border-radius:9px;overflow:hidden;background:#dce6ea}
.map-card-image img{width:100%;height:100%;object-fit:cover}
.map-card-image span{position:absolute;left:7px;top:7px;padding:4px 6px;border-radius:5px;background:rgba(9,32,46,.78);color:#fff;font-size:9px;font-weight:800}
.map-card-body{min-width:0}
.map-card-top{display:flex;justify-content:space-between;gap:6px}
.map-card-code{color:#1a6d99;font-size:10px;font-weight:900;letter-spacing:.08em}
.map-card-favorite{width:25px;height:25px;border:0;background:transparent;color:#a8b2b8;font-size:18px}
.map-card-favorite.on{color:#e56464}
.map-card-body h2{display:-webkit-box;overflow:hidden;margin:4px 0 5px;font-size:14px;line-height:1.35;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.map-card-price{color:var(--navy);font-size:15px;font-weight:900}
.map-card-meta{display:flex;gap:5px;margin-top:8px;overflow:hidden}
.map-card-meta span{padding:4px 6px;border-radius:5px;background:#eef3f5;color:#60717c;font-size:9px;white-space:nowrap}
.empty-map-list{padding:70px 24px;text-align:center;color:#82919a}
.empty-map-list strong{display:block;color:#4b5d67}
.empty-map-list span{display:block;margin-top:6px;font-size:12px}
.price-marker-wrap{background:transparent;border:0}
.price-marker{position:relative;display:flex;align-items:center;gap:5px;min-width:76px;height:34px;padding:0 10px;border:2px solid #fff;border-radius:18px;background:var(--navy);color:#fff;box-shadow:0 5px 14px rgba(5,29,44,.28);font-size:11px;font-weight:900;white-space:nowrap}
.price-marker:after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid var(--navy)}
.price-marker.sale{background:#176b9c}.price-marker.sale:after{border-top-color:#176b9c}
.price-marker.rent{background:#158b70}.price-marker.rent:after{border-top-color:#158b70}
.price-marker.selected{transform:scale(1.12);background:#d95151;z-index:10}.price-marker.selected:after{border-top-color:#d95151}
.island-cluster{display:grid;place-items:center;width:56px;height:56px;border:3px solid #fff;border-radius:50%;background:rgba(16,42,67,.91);color:#fff;box-shadow:0 6px 20px rgba(8,31,45,.25);text-align:center}
.island-cluster strong,.island-cluster span{display:block}
.island-cluster strong{font-size:12px}.island-cluster span{font-size:10px}
.map-detail{position:fixed;top:64px;right:-470px;bottom:0;z-index:1600;width:450px;background:#fff;box-shadow:-18px 0 50px rgba(9,32,48,.18);transition:right .24s ease;overflow-y:auto}
.map-detail.open{right:0}
.detail-close{position:absolute;right:14px;top:14px;z-index:5;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.92);font-size:25px}
.detail-gallery{display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:160px 160px;gap:3px;background:#102a43}
.detail-gallery img{width:100%;height:100%;object-fit:cover}
.detail-gallery img:first-child{grid-row:1/3}
.detail-body{padding:22px}
.detail-body .eyebrow{margin:0;color:#176b9c;font-size:10px;font-weight:900;letter-spacing:.12em}
.detail-body h2{margin:7px 0 8px;font-size:24px;line-height:1.35}
.detail-price{font-size:21px;font-weight:950;color:var(--navy)}
.detail-summary{margin:14px 0;color:#63727c;line-height:1.7;font-size:13px}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.detail-grid div{padding:11px;border-radius:9px;background:#f4f6f7}
.detail-grid span,.detail-grid strong{display:block}
.detail-grid span{color:#87939a;font-size:10px}
.detail-grid strong{margin-top:5px;font-size:12px}
.detail-actions{display:grid;grid-template-columns:1fr 1.3fr;gap:8px;margin-top:18px}
.detail-actions a{display:grid;place-items:center;height:44px;border-radius:9px;text-decoration:none;font-size:13px;font-weight:850}
.detail-actions a:first-child{border:1px solid var(--navy);color:var(--navy)}
.detail-actions a:last-child{background:var(--navy);color:#fff}
.filter-drawer{position:fixed;inset:0;z-index:1700;pointer-events:none}
.filter-drawer.open{pointer-events:auto}
.drawer-backdrop{position:absolute;inset:0;background:rgba(4,20,29,.42);opacity:0;transition:opacity .2s}
.filter-drawer.open .drawer-backdrop{opacity:1}
.drawer-panel{position:absolute;top:0;right:-420px;width:400px;height:100%;display:flex;flex-direction:column;background:#fff;transition:right .22s ease}
.filter-drawer.open .drawer-panel{right:0}
.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:22px;border-bottom:1px solid var(--line)}
.drawer-head small{color:#72818a;font-size:9px;letter-spacing:.13em}
.drawer-head h2{margin:3px 0 0}
.drawer-head button{width:36px;height:36px;border:0;border-radius:50%;background:#eef2f4;font-size:23px}
.drawer-content{flex:1;padding:22px;overflow-y:auto}
.drawer-content>label{display:block;margin-bottom:18px}
.drawer-content label>span{display:block;margin-bottom:7px;color:#556771;font-size:12px;font-weight:750}
.drawer-content select,.drawer-content input{width:100%;height:42px;padding:0 12px;border:1px solid #d4dee3;border-radius:9px;outline:0}
.drawer-checks{padding:12px 0;border-top:1px solid #edf0f2;border-bottom:1px solid #edf0f2}
.drawer-checks label{display:flex;align-items:center;gap:9px;padding:9px 0}
.drawer-checks label span{margin:0;font-size:13px}
.drawer-checks input{width:auto;height:auto;accent-color:var(--navy)}
.future-tools{margin-top:22px;padding:16px;border-radius:12px;background:#f4f7f8}
.future-tools strong{font-size:13px}
.future-tools p{margin:7px 0 12px;color:#70808a;font-size:11px;line-height:1.6}
.future-tools div{display:flex;gap:5px;flex-wrap:wrap}
.future-tools button{padding:7px 8px;border:1px solid #dbe2e5;border-radius:6px;background:#fff;color:#9ca7ad;font-size:10px}
.drawer-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:8px;padding:16px 22px;border-top:1px solid var(--line)}
.drawer-actions button{height:44px;border-radius:9px;font-weight:850}
.drawer-actions .outline{border:1px solid var(--navy);background:#fff;color:var(--navy)}
.drawer-actions .primary{border:1px solid var(--navy);background:var(--navy);color:#fff}
.map-toast{position:fixed;left:50%;bottom:-70px;z-index:3000;transform:translateX(-50%);padding:12px 18px;border-radius:9px;background:#122e40;color:#fff;box-shadow:var(--shadow);font-size:12px;transition:bottom .22s}
.map-toast.show{bottom:25px}
.mobile-list-toggle{display:none}
@media(max-width:1050px){
  .map-topbar{grid-template-columns:210px minmax(260px,1fr) auto;gap:12px}
  .map-top-actions a:first-child{display:none}
  .map-workspace{grid-template-columns:minmax(0,1fr) 370px}
}
@media(max-width:760px){
  body{overflow:hidden}
  .map-page{grid-template-rows:56px 98px minmax(0,1fr)}
  .map-topbar{grid-template-columns:46px minmax(0,1fr) 42px;gap:7px;padding:0 8px}
  .map-brand{gap:0}.map-brand-symbol{width:40px;height:40px}.map-brand>span:last-child{display:none}
  .map-search{height:40px}.map-search .search-icon{width:34px}.map-search button{display:none}
  .map-top-actions a{display:none!important}.map-top-actions .admin-link{display:grid!important;place-items:center;width:40px;height:40px;padding:0;border:0;background:#eef3f5;font-size:0}
  .map-top-actions .admin-link:after{content:"관리";font-size:10px;font-weight:900}
  .island-tabs{height:46px;padding:0 8px}.island-tabs button{height:46px;padding:0 12px}
  .filter-row{height:52px;padding:8px;gap:5px}.filter-row select,.detail-filter-btn,.reset-filter-btn{height:36px;padding:0 10px}
  .move-search-toggle{display:none}
  .map-workspace{display:block}
  .map-stage{position:absolute;inset:0}
  .map-list-panel{position:absolute;left:8px;right:8px;bottom:-66%;z-index:800;height:68%;border:0;border-radius:17px 17px 0 0;box-shadow:0 -10px 35px rgba(9,35,50,.2);transition:bottom .25s ease}
  .map-list-panel.open{bottom:0}
  .list-panel-handle{display:block;width:45px;height:4px;margin:8px auto 0;border-radius:2px;background:#c9d2d7}
  .list-panel-head{padding:10px 14px}.list-panel-head h1{font-size:17px}
  .map-property-list{padding:7px}
  .map-property-card{grid-template-columns:102px minmax(0,1fr);padding:8px}
  .map-card-image{height:88px}
  .map-layer-control{top:10px;right:8px}.map-layer-control button{padding:0 8px}
  .map-floating-tools{left:8px;bottom:70px}
  .provider-note{display:none}
  .mobile-list-toggle{display:flex;align-items:center;justify-content:center;gap:8px;position:absolute;left:50%;bottom:15px;z-index:700;transform:translateX(-50%);height:44px;padding:0 20px;border:0;border-radius:22px;background:var(--navy);color:#fff;box-shadow:0 8px 25px rgba(8,33,48,.25);font-size:13px;font-weight:850}
  .mobile-list-toggle b{display:grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:11px;background:#fff;color:var(--navy);font-size:10px}
  .map-detail{top:0;right:-100%;width:100%;z-index:1800}
  .map-detail.open{right:0}
  .detail-gallery{grid-template-rows:130px 130px}
  .detail-body{padding:18px}.detail-body h2{font-size:21px}
  .drawer-panel{right:-100%;width:100%}
  .map-toast.show{bottom:75px}
}
