*{margin:0;padding:0;box-sizing:border-box;font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;}
body{background-color:#f5f5f5;color:#333;}
.container{max-width:1400px;margin:0 auto;padding:20px;}
header{text-align:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #ddd;}
h1{color:#1a5276;margin-bottom:10px;}
.subtitle{color:#7f8c8d;font-size:1.1rem;}
.content{display:flex;flex-wrap:wrap;gap:20px;}
.map-container{flex:1;min-width:300px;height:600px;border-radius:8px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,0.1);}
#map{height:100%;width:100%;}
.controls{line-height:0.9;flex:0 0 300px;background-color:white;border-radius:8px;padding:20px;box-shadow:0 4px 12px rgba(0,0,0,0.1);}
.filter-section{margin-bottom:20px;}
.filter-title{font-weight:600;margin-bottom:10px;color:#2c3e50;font-size:1.1rem;}
select,input{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;margin-bottom:10px;font-size:1rem;}
.constituency-info{background-color:white;border-radius:8px;padding:20px;margin-top:20px;box-shadow:0 4px 12px rgba(0,0,0,0.1);}
.info-title{font-weight:600;margin-bottom:15px;color:#2c3e50;font-size:1.2rem;}
.info-content{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.info-item{margin-bottom:10px;}
.info-label{font-weight:600;color:#7f8c8d;}
.candidate-name{font-weight:600;color:#1a5276;}
.party-badge{display:inline-block;padding:1.5px 8px;border-radius:4px;color:white;font-size:0.8rem;font-weight:600;margin-right:5px;}
.no-data{color:#7f8c8d;font-style:italic;}
.legend{background:rgba(255,255,255,0.85);padding:10px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.2);font-size:12px;width:160px;max-height:300px;overflow-y:auto;}
.legend-title{font-weight:600;margin-bottom:8px;color:#2c3e50;font-size:13px;border-bottom:1px solid #eee;padding-bottom:5px;}
.legend .party-legend{display:flex;flex-direction:column;gap:5px;}
.legend .legend-item{display:flex;align-items:center;gap:6px;}
.legend .legend-color{width:12px;height:12px;border-radius:3px;border:1px solid #ddd;}
.alliance-stats{line-height:0.9;margin-top:15px;padding:10px;background-color:#f8f9fa;border-radius:6px;border-left:4px solid #1a5276;border-right:4px solid #1a5276;}
.stat-item{display:flex;justify-content:space-between;margin-bottom:5px;font-size:0.9rem;padding:5px 0;}
.stat-item:last-child{margin-bottom:0;}
.stat-label{color:#555;font-weight:600;}
.stat-value{font-weight:700;color:#2c3e50;}
.party-fullforms{background-color:white;border-radius:8px;padding:20px;margin-top:20px;box-shadow:0 4px 12px rgba(0,0,0,0.1);}
.alliances-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:25px;padding-bottom:20px;border-bottom:2px solid #f0f0f0;}
.alliance-item{display:flex;align-items:center;gap:10px;padding:12px;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);border-radius:8px;border-left:4px solid;cursor:pointer;transition:all 0.3s ease;}
.alliance-item[data-alliance="AITC+"]{border-left-color:#20C646;}
.alliance-item[data-alliance="BJP"]{border-left-color:#FF9933;}
.alliance-item[data-alliance="INC"]{border-left-color:#00BFFF;}
.alliance-item[data-alliance="LF+"]{border-left-color:#cc0d0d;}
.alliance-item[data-alliance="OTH"]{border-left-color:#777777;}
.parties-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
.party-item{display:flex;align-items:center;gap:10px;padding:10px;background-color:#f8f9fa;border-radius:6px;transition:all 0.3s ease;min-height:60px;}
.party-item:hover{background-color:#e9ecef;transform:translateY(-2px);box-shadow:0 2px 8px rgba(0,0,0,0.1);}
.party-item.translucent{opacity:0.4;filter:grayscale(0.7);transition:all 0.3s ease;}
.alliance-item.active{box-shadow:0 4px 12px rgba(0,0,0,0.2);transform:translateY(-2px);border-left-width:6px;}
.party-fullform{font-size:0.85rem;color:#495057;font-weight:500;line-height:1.3;}
.visitor-counter{margin-top:8px;font-size:0.9rem;color:#555;}
@media (max-width:1200px){.parties-grid{grid-template-columns:repeat(4,1fr);}}
@media (max-width:768px){
    .content{flex-direction:column;}
    .controls{flex:1;}
    .parties-grid{grid-template-columns:repeat(3,1fr);}
    .map-container{height:400px;}
}
@media (max-width:480px){
    .parties-grid{grid-template-columns:repeat(2,1fr);}
    .alliances-section{grid-template-columns:1fr;}
    h1{font-size:1.5rem;}
    .info-content{grid-template-columns:1fr;}
}