.interactive-map-root body{margin:0;overflow:hidden}.interactive-map-root svg{width:100%;height:100%;display:block;cursor:grab}.interactive-map-root .toggle-container{position:absolute;top:10px;left:10px;background:rgba(255,255,255,.9);padding:8px 12px;border-radius:8px;display:flex;align-items:center;gap:8px;font-family:sans-serif}.interactive-map-root .switch{position:relative;display:inline-block;width:50px;height:24px}.interactive-map-root .switch input{opacity:0;width:0;height:0}.interactive-map-root .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:24px}.interactive-map-root .slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:white;transition:.4s;border-radius:50%}.interactive-map-root input:checked+.slider{background-color:#2196f3}.interactive-map-root input:checked+.slider:before{transform:translateX(26px)}.interactive-map-root .toggle-label{font-size:14px}.interactive-map-root .tooltip{background:#fdfcfb;color:#333;padding:12px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.2);min-width:220px}.interactive-map-root .tooltip-header{font-weight:700;font-size:14px;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}.interactive-map-root .swing-icon{font-size:14px;margin-right:4px}.interactive-map-root .tooltip-body{margin-bottom:8px}.interactive-map-root .tooltip-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin:2px 0}.interactive-map-root .color-box{width:12px;height:12px;border-radius:2px;margin-right:6px;display:inline-block}.interactive-map-root .candidate-name{flex:1;margin-left:6px}.interactive-map-root .vote{font-weight:700;margin-left:8px}.interactive-map-root .tooltip-incumbent{font-size:13px;color:#c0392b;margin-top:8px}.interactive-map-root .incumbent-label{font-size:12px;color:#555}.interactive-map-root input:checked+.custom-toggle{background-color:#888}.interactive-map-root .year-select{margin-left:20px;font-family:sans-serif;font-size:14px}.interactive-map-root .year-select input{margin-left:8px;padding:4px 6px;font-size:14px;border-radius:4px;border:1px solid #aaa}.interactive-map-root .map-toggle-container .switch input:checked+.slider{background-color:#2196f3}.interactive-map-root .map-toggle-container .switch input:checked+.slider:before{transform:translateX(26px)}.interactive-map-root .map-toggle-container .switch input:checked+.custom-toggle{background-color:#888}.interactive-map-root .map-toggle-container{top:4px;left:72px;background:rgba(255,255,255,.95);padding:16px;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);min-width:300px;border:1px solid rgba(0,0,0,.1)}.interactive-map-root .map-toggle-container .toggle-label{font-size:14px;color:#333;white-space:nowrap}.interactive-map-root .map-toggle-container .year-select{margin-top:12px;margin-left:0;width:100%}.interactive-map-root .map-toggle-container .year-select input{width:100%;margin-left:0;margin-top:4px;padding:8px;font-size:14px;border-radius:4px;border:1px solid #ddd;background:white}.interactive-map-root .map-toggle-container .year-select label{color:#333;font-weight:500}body,html{margin:0;padding:0;box-sizing:border-box}