.sm-widget{--sm-ink:#273f34;--sm-green:#37664f;--sm-line:#dce4da;box-sizing:border-box;width:auto;max-width:1480px;margin:0 auto;padding:24px clamp(0px,2vw,28px) 32px;color:var(--sm-ink);font-family:inherit}
.sm-widget *{box-sizing:border-box}
.sm-widget button,.sm-widget input{font:inherit}
.sm-widget button{cursor:pointer}
.sm-widget [hidden]{display:none!important}
.sm-widget button:focus-visible,.sm-widget a:focus-visible,.sm-widget input:focus-visible,.sm-stage:focus-visible{outline:3px solid #779c76;outline-offset:3px}
.sm-heading{max-width:820px;margin-bottom:22px}
.sm-eyebrow{margin:0 0 10px;color:#71816e;font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.sm-heading h1{margin:0 0 12px;color:var(--sm-ink);font-size:clamp(29px,3.3vw,44px);font-weight:500;line-height:1.12;letter-spacing:-.035em}
.sm-intro{margin:0;color:#758073;font-size:14px;line-height:1.65}
.sm-sizebar{display:flex;align-items:center;flex-wrap:wrap;gap:15px;margin-bottom:15px;padding:15px 18px;border:1px solid #e4e7dc;border-radius:10px;background:#fffdf8}
.sm-label{color:#687764;font-size:11px;font-weight:600}
.sm-sizes{display:flex;gap:5px;flex-wrap:wrap}
.sm-sizes button{min-height:38px;padding:10px 14px;border:1px solid #e1e6da;border-radius:6px;background:transparent;color:#49614e;font-size:12px;font-weight:600;line-height:1.2}
.sm-sizes button span{font-size:10px;font-weight:400;opacity:.8}
.sm-sizes button[aria-pressed=true]{background:var(--sm-green);border-color:var(--sm-green);color:white;box-shadow:0 2px 5px #28483615}
.sm-parcel{margin-left:auto;color:#818a7b;font-size:10px;white-space:nowrap}
.sm-countries{display:flex;flex-wrap:nowrap;gap:3px;margin-bottom:14px;overflow-x:auto;scrollbar-width:none}
.sm-countries::-webkit-scrollbar{display:none}
.sm-countries button{flex:0 0 auto;min-height:35px;padding:8px 12px;border:0;border-radius:7px;background:transparent;color:#7b8575;font-size:11px;white-space:nowrap}
.sm-countries button[aria-pressed=true]{background:#e8eee2;color:#36523a;font-weight:600}
.sm-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;border:1px solid var(--sm-line);border-radius:13px;overflow:hidden;background:#fffdf8;box-shadow:0 8px 32px #384c3205}
.sm-map-panel{position:relative;min-width:0;background:#edf2ed}
.sm-stage{position:relative;height:550px;overflow:hidden;cursor:grab;isolation:isolate;contain:layout paint}
.sm-stage.sm-dragging{cursor:grabbing}
.sm-stage svg{display:block;width:100%;height:100%}
.sm-stage path{fill:#e6e9df;stroke:#f9faf5;stroke-width:1.1;vector-effect:non-scaling-stroke}
.sm-stage path.sm-country-target{fill:#dce4d4}
.sm-stage path.sm-country-priced{fill:#c3d4bd}
.sm-stage path.sm-country-selected{fill:#aec9a9;stroke:#8daa8c;stroke-width:1.3}
.sm-country-label{fill:#768870;font-size:13px;font-weight:500;letter-spacing:.3px;pointer-events:none}
.sm-country-names-hidden{display:none}
.sm-route line{stroke:#718f71;stroke-width:1.3;stroke-dasharray:4 5;opacity:.65;vector-effect:non-scaling-stroke;pointer-events:none}
.sm-pins,.sm-city-names{position:absolute;inset:0;pointer-events:none}
.sm-pin{position:absolute;left:0;top:0;z-index:1;width:22px;height:22px;transform:translate(-50%,-50%);padding:0;border:0;border-radius:50%;background:transparent;pointer-events:auto}
.sm-pin::after{position:absolute;left:8px;top:8px;width:6px;height:6px;content:'';border:1px solid #f9fcf5;border-radius:50%;background:#a4b199;box-shadow:0 0 0 1px #718c6244}
.sm-pin-priced::after{background:#4a7854;box-shadow:0 0 0 1px #3d664e55}
.sm-pin:hover,.sm-pin:focus-visible,.sm-pin-selected{z-index:4}
.sm-pin:hover::after,.sm-pin:focus-visible::after,.sm-pin-selected::after{left:7px;top:7px;width:8px;height:8px;background:#23513c;box-shadow:0 0 0 4px #ffffff99,0 0 0 5px #5e846b55}
.sm-city-label{position:absolute;left:0;top:0;z-index:3;max-width:180px;overflow:hidden;padding:3px 6px;border:1px solid #d3dfca;border-radius:4px;background:#fbfdf5ef;color:#35583b;font-size:11px!important;font-weight:500;line-height:1.2;white-space:nowrap;text-overflow:ellipsis;pointer-events:auto;box-shadow:0 1px 4px #334f2c0d}
.sm-city-label:hover{background:#fff;color:#173d27;border-color:#8ba383}
.sm-origin{position:absolute;left:0;top:0;z-index:2;transform:translate(-5px,-5px);padding-left:16px;color:#745c3d;font-size:10px;font-weight:600;white-space:nowrap}
.sm-origin::before{position:absolute;left:1px;top:3px;width:7px;height:7px;content:'';border-radius:50%;background:#ad8553;box-shadow:0 0 0 3px #faf6e9,0 0 0 4px #bba782}
.sm-origin-label{padding:2px 5px;border-radius:3px;background:#f5f5e7d9}
.sm-zoom-info{position:absolute;z-index:6;left:16px;top:16px;padding:9px 12px;border:1px solid #dce4d5;border-radius:8px;background:#fffffbef;color:#60725b;box-shadow:0 2px 8px #455b3607;pointer-events:none}
.sm-zoom-value{display:flex;align-items:center;gap:15px;font-size:10px}
.sm-zoom-value output{font-size:14px;font-weight:650;font-variant-numeric:tabular-nums;color:#315a40;line-height:1.2}
.sm-zoom-threshold{display:block;margin-top:5px;color:#8b9783;font-size:9px;line-height:1.2}
.sm-controls{position:absolute;z-index:8;right:16px;top:16px;display:flex;flex-direction:column;gap:4px}
.sm-controls button{width:35px;height:35px;border:1px solid #dce4d5;border-radius:7px;background:#fffffbef;color:#4d6a46;font-size:21px;line-height:1;box-shadow:0 2px 7px #354a2e08}
.sm-controls button:last-child{margin-top:5px;font-size:19px}
.sm-controls button:disabled{opacity:.4;cursor:default}
.sm-map-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:11px 17px 8px;border-top:1px solid #e0e7dc;color:#88957d;font-size:9px}
.sm-key{display:flex;gap:13px}
.sm-key span::before{display:inline-block;width:5px;height:5px;margin-right:5px;border-radius:50%;background:#a4b199;content:''}
.sm-key span.sm-key-priced::before{background:#4a7854}
.sm-attribution{margin:0;padding:0 17px 11px;color:#a0a895;font-size:8px}
.sm-attribution a{color:inherit;text-decoration:none}
.sm-sidebar{display:flex;flex-direction:column;min-width:0;max-height:610px;border-left:1px solid var(--sm-line);background:#fffef9}
.sm-sidebar-top{padding:23px 21px 16px}
.sm-sidebar h2{margin:0 0 8px;color:var(--sm-ink);font-size:19px;font-weight:500;letter-spacing:-.02em}
.sm-back{margin:0 0 14px;padding:0;border:0;background:transparent;color:#87947d;font-size:10px!important}
.sm-count{margin:0;color:#99a08f;font-size:10px;line-height:1.5}
.sm-search{width:calc(100% - 40px);min-width:0;margin:0 20px 18px;padding:11px 12px;border:1px solid #e0e6da;border-radius:6px;background:#fff;color:#49614b;font-size:11px!important}
.sm-city-list{min-height:0;flex:1;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.sm-country-row,.sm-city-row{display:flex;align-items:center;gap:10px;width:100%;min-height:71px;padding:16px 20px;border:0;border-top:1px solid #edf0e6;background:transparent;color:var(--sm-ink);text-align:left}
.sm-country-row:hover,.sm-city-row:hover,.sm-row-selected{background:#f0f5e9}
.sm-country-code{display:flex;align-items:center;justify-content:center;flex:0 0 28px;height:29px;border:1px solid #dce5d4;border-radius:7px;background:#f0f4e9;color:#7c9073;font-size:9px;font-weight:600}
.sm-country-title{flex:1;font-size:12px;line-height:1.4}
.sm-country-title small{display:block;margin-top:4px;color:#a0a890;font-size:9px}
.sm-country-price{text-align:right;white-space:nowrap;color:#416046}
.sm-country-price small{display:block;margin-bottom:2px;color:#a0a890;font-size:8px}
.sm-country-price strong{display:block;font-size:12px;font-weight:600}
.sm-row-arrow{color:#a2b394;font-size:20px;font-weight:300}
.sm-list-hint{padding:5px 21px;color:#a0a890;font-size:10px;line-height:1.6}
.sm-city-name{flex:1;font-size:12px;line-height:1.3}
.sm-city-name small{display:block;margin-top:4px;color:#a0a890;font-size:9px}
.sm-city-price{font-size:12px;font-weight:600;white-space:nowrap}
.sm-city-pending{max-width:85px;color:#9aa58d;font-size:10px;text-align:right}
.sm-popup{position:absolute;z-index:10;left:16px;bottom:16px;width:min(290px,calc(100% - 75px));max-height:calc(100% - 95px);overflow:auto;padding:23px;border:1px solid #d7e2cd;border-radius:11px;background:#fffef9;box-shadow:0 8px 32px #334b2622;cursor:default}
.sm-popup h3{margin:0 0 10px;color:var(--sm-ink);font-size:24px;font-weight:500;letter-spacing:-.025em}
.sm-popup .sm-eyebrow{padding-right:25px}
.sm-popup-close{position:absolute;top:8px;right:8px;width:32px;height:32px;border:0;background:transparent;color:#859776;font-size:24px}
.sm-popup-price{margin-bottom:14px;font-size:29px;font-weight:500;line-height:1.1;letter-spacing:-.04em}
.sm-popup-service{margin:0 0 5px;font-size:12px;font-weight:600;line-height:1.6}
.sm-popup-small{margin:6px 0;color:#89947e;font-size:10px;line-height:1.65}
.sm-source{display:inline-block;margin-top:8px;color:var(--sm-green);font-size:11px;text-underline-offset:3px}
.sm-popup-pending{color:#7e8d6d;font-size:13px}
.sm-note{max-width:900px;margin:14px 0 0;color:#9aa18e;font-size:10px;line-height:1.8}
.sm-status:empty{display:none}
.sm-status{padding:0 20px 12px;color:#839276;font-size:11px}
.sm-error{color:#9a4e39;font-size:12px}
.sm-retry{padding:5px 10px;border:1px solid #b8c8ac;border-radius:4px;background:#fff;color:#355c46;font-size:11px}
.sm-empty{padding:15px 20px;color:#87967b;font-size:12px}
@media(max-width:1050px){.sm-layout{grid-template-columns:minmax(0,1fr) 255px}.sm-sizebar{gap:10px}.sm-parcel{width:100%;margin-left:0}.sm-stage{height:510px}.sm-country-row,.sm-city-row{padding:14px}.sm-map-footer{align-items:flex-start;flex-direction:column;gap:7px}}
@media(max-width:700px){.sm-widget{padding:16px 0 26px}.sm-heading{margin-bottom:18px}.sm-heading h1{font-size:31px}.sm-intro{font-size:13px}.sm-sizebar{padding:13px;gap:10px;margin-bottom:10px}.sm-label{width:100%}.sm-sizes{display:grid;grid-template-columns:repeat(2,1fr);width:100%;gap:5px}.sm-sizes button{padding:11px 9px;min-height:38px}.sm-parcel{font-size:9px}.sm-countries{margin-bottom:12px}.sm-countries button{padding:8px 10px;font-size:10px}.sm-layout{display:flex;flex-direction:column}.sm-stage{height:390px}.sm-sidebar{max-height:410px;border-top:1px solid var(--sm-line);border-left:0}.sm-sidebar-top{padding:19px 17px 13px}.sm-search{margin-bottom:12px}.sm-city-list{max-height:285px}.sm-city-row,.sm-country-row{min-height:64px;padding:13px 17px}.sm-city-pending{max-width:none}.sm-controls{top:12px;right:12px}.sm-zoom-info{top:12px;left:12px;padding:8px 10px}.sm-zoom-value{font-size:9px;gap:12px}.sm-zoom-value output{font-size:13px}.sm-zoom-threshold{font-size:8px}.sm-popup{left:12px;bottom:12px;width:calc(100% - 24px);padding:20px;max-height:calc(100% - 90px)}.sm-popup-price{font-size:26px}.sm-country-label{font-size:17px}.sm-origin{font-size:9px}.sm-city-label{font-size:10px!important}.sm-map-footer{font-size:8px}.sm-note{font-size:9px}}
@media(prefers-reduced-motion:no-preference){.sm-sizes button,.sm-countries button,.sm-city-row,.sm-country-row{transition:background .15s,color .15s}}

/* Labels are measured together only after data/font/viewport changes. */
.sm-city-names.sm-measuring{visibility:hidden;pointer-events:none}

/* Touch gestures belong to the map surface; popup and page scrolling remain native. */
.sm-surface{position:absolute;inset:0;touch-action:none;user-select:none;-webkit-user-select:none;overscroll-behavior:contain}
.sm-surface img,.sm-surface svg{-webkit-user-drag:none}
.sm-stage.sm-dragging .sm-pin,.sm-stage.sm-dragging .sm-city-label{cursor:grabbing}
.sm-popup{touch-action:pan-y;overscroll-behavior:contain}
