.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px;opacity:0}.react-grid-item:hover>.react-resizable-handle{opacity:1}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}@font-face{font-family:Montserrat;src:url(/assets/Montserrat-Regular-BdMzRefO.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Montserrat;src:url(/assets/Montserrat-Medium-DZarjTSE.ttf) format("truetype");font-weight:500}@font-face{font-family:Montserrat;src:url(/assets/Montserrat-SemiBold-C0-6BeuA.ttf) format("truetype");font-weight:600}@font-face{font-family:Montserrat;src:url(/assets/Montserrat-Bold-D4JCkd3k.ttf) format("truetype");font-weight:700}:root{font-family:Montserrat;color:#111827;background:#f7f7fb}*{box-sizing:border-box}body{margin:0}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(0,0,0,.08)}.brandTitle{font-weight:900;font-size:16px}.brandSub{font-size:12px;color:#0000008c;margin-top:2px}.content{padding:16px;max-width:1400px;width:100%;margin:0 auto}.card{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:16px;padding:14px;box-shadow:0 10px 28px #0000000f}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media (max-width: 980px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.grid{grid-template-columns:repeat(1,minmax(0,1fr))}}.btn{border:1px solid rgba(0,0,0,.12);background:#fff;border-radius:12px;padding:10px 12px;font-weight:400;font-size:14px;color:#000;cursor:pointer}.btn.danger{background:#b91c1c;color:#fff;border-color:#b91c1c}.btn:disabled{opacity:.55;cursor:not-allowed}.row{display:flex;gap:10px;align-items:center}.row.wrap{flex-wrap:wrap}.row.space{justify-content:space-between}.input,.select{width:100%;border:1px solid rgba(0,0,0,.12);padding:10px 12px;border-radius:12px;outline:none;background:#fff}.label{font-size:12px;color:#0009;font-weight:700;margin-bottom:6px}.small{font-size:12px;color:#0000008c}.hr{height:1px;background:#00000014;margin:12px 0}.thumb{width:72px;height:72px;border-radius:14px;border:1px solid rgba(0,0,0,.1);background:#f3f4f6;overflow:hidden;display:flex;align-items:center;justify-content:center}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.badge{padding:6px 10px;border-radius:999px;background:#0000000f;font-size:12px;font-weight:800}.err{color:#b91c1c;font-weight:700;font-size:13px;white-space:pre-wrap}.ok{color:#047857;font-weight:700;font-size:13px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;padding:18px}.modalBody{width:100%;max-width:720px}code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.modalBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;padding:16px;z-index:9999}.modal .card{max-width:100%}.bulkToolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.bulkToolbar .fieldGrow{flex:1 1 320px;min-width:240px}.bulkToolbar .fieldFixed{flex:0 0 180px;min-width:160px}.bulkPlacesScroller{max-height:52vh;overflow:auto;padding:10px}.bulkPlacesGrid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.bulkPlaceRow{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.row{display:flex;align-items:center}.wrap{flex-wrap:wrap}.input{height:40px;padding:0 12px;border-radius:12px;border:1px solid rgba(0,0,0,.1);background:#fff;outline:none;width:auto;min-width:160px}.input:focus{border-color:#00000040}.btn.primary{background:#111827;color:#fff;border-color:#111827}.btn:disabled{opacity:.6;cursor:default}.card{border:1px solid rgba(0,0,0,.06);background:#fff}
