 html,body { margin:0; height:100%; background:#fff; font-family:Arial, sans-serif; }
    #wrap { position:relative; width:100%; height:100vh; overflow:hidden; background:#fff; }
    #back { position:absolute; top:12px; left:12px; padding:10px 16px; border:5px solid #0F2439; background:#fff; cursor:pointer; display:none; border-radius:8px; font-size:14px; z-index:100; }
    #hint { position:absolute; bottom:70px; right:12px; padding:12px 15px; background:rgba(255,255,255,0.95); border:1px solid #ddd; border-radius:8px; font-size:13px; z-index:100; box-shadow:0 2px 8px rgba(0,0,0,0.1); max-width:280px; line-height:1.5; color:#333; }
    #infoPanel { position:absolute; top:12px; right:12px; padding:20px; background:rgba(255,255,255,0.95); border:1px solid #ddd; border-radius:8px; max-width:350px; display:none; z-index:100; box-shadow:0 2px 8px rgba(0,0,0,0.1); }
    #infoPanel h2 { margin:0 0 10px 0; font-size:20px; color:#333; }
    #infoPanel p { margin:8px 0; font-size:14px; line-height:1.5; color:#666; }
    #infoPanel p b { font-size:15px; color:#0066cc; }
    #cityNote { margin-top:12px; padding-top:12px; border-top:1px solid #eee; font-size:13px; color:#888; font-style:italic; }
    #searchBox { position:absolute; top:60px; left:12px; padding:10px; width:300px; border:1px solid #ccc; border-radius:6px; font-size:14px; z-index:100; }
    #searchResults { position:absolute; top:102px; left:12px; width:300px; max-height:400px; overflow-y:auto; background:#fff; border:1px solid #ccc; border-radius:6px; display:none; z-index:100; box-shadow:0 2px 8px rgba(0,0,0,0.1); }
    #searchResults div { padding:10px; cursor:pointer; border-bottom:1px solid #eee; }
    #searchResults div:hover { background:#f5f5f5; }
    svg { width:100%; height:100%; display:block; }
    .hot { cursor:pointer; }
    .hidden { display:none !important; }
    .regionInfoPanel { margin-top: 10px; padding: 10px; border: 1px solid #ddd; border-radius: 8px; background: #f9f9f9; }
    .regionInfoPanel h2 { margin: 0 0 8px 0; font-size: 18px; color: #333; }
    .regionInfoPanel p { margin: 4px 0; font-size: 14px; line-height: 1.4; color: #666; }
    #termsBox { position:absolute; top:350px; left:12px; padding:15px; background:rgba(255,255,255,0.95); border:1px solid #ddd; border-radius:8px; max-width:280px; max-height:400px; overflow-y:auto; z-index:100; box-shadow:0 2px 8px rgba(0,0,0,0.1); }
    #termsBox.minimized { max-height:50px; overflow:hidden; }
    #termsBox h3 { margin:0 0 10px 0; font-size:16px; color:#333; position:sticky; top:0; background:rgba(255,255,255,0.95); padding-bottom:10px; display:flex; justify-content:space-between; align-items:center; }
    #termsToggle { cursor:pointer; font-size:18px; line-height:1; padding:2px 6px; border-radius:4px; user-select:none; }
    #termsToggle:hover { background:#f0f0f0; }
    #termsContent { display:block; }
    #termsBox.minimized #termsContent { display:none; }
    .termItem { margin-bottom:6px; border-bottom:1px solid #eee; padding-bottom:6px; }
    .termItem:last-child { border-bottom:none; margin-bottom:0; }
    .termHeader { display:flex; align-items:center; cursor:pointer; padding:6px 4px; border-radius:4px; }
    .termHeader:hover { background:#f0f0f0; }
    .termLabel { font-size:13px; font-weight:600; color:#333; flex:1; }
    .termArrow { font-size:11px; margin-right:6px; transition:transform 0.2s; width:12px; }
    .termArrow.expanded { transform:rotate(90deg); }
    .termDefinition { display:none; font-size:12px; color:#666; line-height:1.4; margin-top:2px; padding:4px 4px 4px 22px; }
    #sourceBox { position:absolute; bottom:12px; right:12px; padding:12px 15px; background:rgba(255,255,255,0.95); border:1px solid #ddd; border-radius:8px; max-width:280px; z-index:100; box-shadow:0 2px 8px rgba(0,0,0,0.1); font-size:12px; color:#666; line-height:1.5; }
    .divDepSection { margin-top:12px; padding-top:12px; border-top:1px solid #eee; }
    .divDepSection h3 { margin:0 0 8px 0; font-size:15px; font-weight:600; color:#222; }
    .divDepRow { display:flex; justify-content:space-between; margin-bottom:4px; font-size:13px; }
    .divDepRow label { color:#666; }
    .divDepRow span { font-weight:600; color:#333; }