/* Tanaka Hub reviewed map repair: native controls, no full-size popup panes. */
.tm-root{color:#172c41;font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif;min-width:0;max-width:100%}
.tm-root *, .tm-root *::before, .tm-root *::after{box-sizing:border-box}
.tm-card{background:#fff;border:1px solid #cedce8;border-radius:14px;overflow:hidden;min-width:0}
.tm-header{padding:14px 16px;border-bottom:1px solid #e1e8ef;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.tm-header h3{font-size:18px;margin:0;color:#173b58}.tm-version{font-size:11px;font-weight:750;background:#e4f3ec;color:#216547;border-radius:20px;padding:4px 9px}
.tm-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 16px}.tm-toolbar label{display:grid;gap:4px;min-width:0;font-size:12px;font-weight:700;color:#4e6479}
.tm-root select{width:100%;min-width:0;max-width:100%;font:inherit;font-size:14px;background:#fff;color:#213d55;border:1px solid #b9cadb;border-radius:9px;padding:10px 8px;min-height:44px}
.tm-routebar{padding:0 16px 12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tm-routebar a{flex:1 1 180px}
.tm-button,.tm-link{font:700 14px/1.3 system-ui;border:0;border-radius:9px;padding:11px 13px;min-height:44px;background:#1768b6;color:#fff;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;text-align:center;white-space:normal;overflow-wrap:anywhere}
.tm-secondary{background:#e6eff8;color:#204e78}.tm-root button:focus-visible,.tm-root a:focus-visible,.tm-root select:focus-visible{outline:3px solid #f0ac31;outline-offset:2px}
.tm-legend{display:flex;gap:12px;flex-wrap:wrap;padding:0 16px 12px;font-size:12px;color:#50687b;align-items:center}.tm-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px}.tm-hotel{--tm-color:#ce354a}.tm-activity{--tm-color:#2175b6}.tm-option{--tm-color:#7854ba}.tm-dot{background:var(--tm-color)}
.tm-map{height:390px;height:clamp(290px,43vh,470px);width:100%;position:relative;isolation:isolate;overflow:hidden;background:#e7eef4;touch-action:none;cursor:grab}
.tm-map:active{cursor:grabbing}.tm-tiles,.tm-markers{position:absolute;inset:0;pointer-events:none}.tm-tiles{z-index:0}.tm-tile{position:absolute;display:block;width:256px!important;height:256px!important;max-width:none!important;border:0;user-select:none;pointer-events:none}
.tm-grid{position:absolute;inset:0;background-image:linear-gradient(#d3dee955 1px,transparent 1px),linear-gradient(90deg,#d3dee955 1px,transparent 1px);background-size:48px 48px;pointer-events:none}
.tm-markers{z-index:2}.tm-marker{position:absolute;width:44px;height:44px;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;pointer-events:auto;background:transparent!important;border:0;padding:0!important;cursor:pointer;border-radius:50%;touch-action:manipulation}
.tm-marker-symbol{width:28px;height:28px;border-radius:50% 50% 50% 5px;transform:rotate(-45deg);display:grid;place-items:center;background:var(--tm-color,#436b87);border:2px solid #fff;box-shadow:0 2px 7px #17344b55}
.tm-marker-symbol>span{transform:rotate(45deg);color:white;font:800 12px system-ui;pointer-events:none}.tm-marker-selected{z-index:5}.tm-marker-selected .tm-marker-symbol{outline:3px solid #f3bd49;outline-offset:2px}
.tm-cluster .tm-marker-symbol{border-radius:50%;transform:none;background:#345f7c;width:32px;height:32px}.tm-cluster .tm-marker-symbol>span{transform:none}
.tm-zoom{position:absolute;z-index:6;top:12px;left:12px;display:grid;gap:5px}.tm-zoom button{border:1px solid #b6c8d7;background:white;color:#143c60;border-radius:8px;font:700 23px system-ui;width:42px;height:42px;cursor:pointer;box-shadow:0 2px 5px #17344b22}
.tm-tooltip{position:absolute;z-index:8;max-width:min(230px,calc(100% - 20px));padding:7px 10px;border-radius:8px;background:#183a54;color:#fff;font-size:12px;box-shadow:0 2px 7px #17344b33;pointer-events:none;overflow-wrap:anywhere}.tm-tooltip[hidden]{display:none}
.tm-attribution{position:absolute;z-index:4;bottom:0;right:0;background:#ffffffed;color:#39546b;padding:3px 7px;font-size:10px;max-width:100%;line-height:1.4}.tm-attribution a{color:#1d5d94}
.tm-mapstatus{position:absolute;z-index:1;left:10px;right:10px;bottom:27px;text-align:center;color:#536b7d;font-size:11px;pointer-events:none}.tm-mapstatus[hidden]{display:none}
.tm-detail{padding:15px 16px;min-width:0;max-width:100%;border-top:1px solid #d3dfeb;background:#f6f9fc;scroll-margin-top:80px}.tm-detail h4{font-size:17px;margin:0 0 5px;overflow-wrap:anywhere;color:#173a57}.tm-detail p{font-size:13px;line-height:1.5;color:#4c657a;margin:5px 0 12px;overflow-wrap:anywhere}.tm-detail .tm-kind{font-size:11px;font-weight:750;color:#5a748b;text-transform:uppercase;letter-spacing:.05em}.tm-actions{display:flex;gap:8px;flex-wrap:wrap}.tm-actions>*{flex:1 1 150px;min-width:0}.tm-result{display:block;margin-top:7px;color:#23684a;font-size:12px;min-height:18px}
.tm-directory{padding:14px 16px;border-top:1px solid #e0e8ef}.tm-directory summary{cursor:pointer;font-weight:750;min-height:30px}.tm-place-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px;max-height:290px;overflow:auto}.tm-place{display:flex;gap:8px;align-items:center;text-align:left;min-width:0;max-width:100%;min-height:44px;padding:9px 10px;border:1px solid #d5e2ed;border-radius:8px;background:white;color:#214662;font:600 13px/1.3 system-ui;cursor:pointer;overflow-wrap:anywhere}.tm-place .tm-dot{flex:none}.tm-place[aria-pressed=true]{background:#e6f0fb;border-color:#5596cf}.tm-group-list{display:grid;gap:7px}.tm-group-list button{width:100%}
.tm-note{font-size:12px;color:#577087;line-height:1.5;margin:10px 0}.tm-root .tm-full{font-size:13px;color:#21649c;font-weight:700}
@media(max-width:600px){.tm-header,.tm-toolbar,.tm-directory,.tm-detail{padding:12px}.tm-toolbar{gap:8px}.tm-routebar{padding:0 12px 10px}.tm-legend{padding:0 12px 10px;gap:8px}.tm-place-list{grid-template-columns:1fr}.tm-detail h4{font-size:16px}.tm-map{height:310px}.tm-actions>*{flex-basis:calc(50% - 8px)}.tm-actions .tm-button,.tm-actions .tm-link{font-size:12px;padding:10px 8px}.tm-header h3{font-size:16px}}
