*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Montserrat',sans-serif;background:linear-gradient(135deg,#f8f9fa,#e9ecef);color:#343a40;line-height:1.6;min-height:100vh;padding:20px}
.container{max-width:1400px;margin:0 auto;background:#fff;border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.08);overflow:hidden}
header{background:linear-gradient(135deg,#2c3e50,#1a2530);color:#fff;text-align:center;padding:28px 20px}
header .brand{width:96px;height:96px;border-radius:22px;box-shadow:0 6px 20px rgba(0,0,0,.25);margin-bottom:12px}
h1{font-family:'Playfair Display',serif;font-size:2.2rem;margin-bottom:8px}
.subtitle{opacity:.9;max-width:800px;margin:0 auto}
.controls{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;padding:18px;background:#f1f3f5;border-bottom:1px solid #dee2e6}
.filter-group{display:flex;flex-direction:column;min-width:200px}
.filter-group label{font-weight:600;margin-bottom:6px;font-size:.95rem;color:#495057}
.filter-group select,.filter-group input{padding:10px 12px;border:1px solid #ced4da;border-radius:10px;font-size:1rem;background:#fff;transition:all .2s}
.filter-group select:focus,.filter-group input:focus{outline:none;border-color:#4dabf7;box-shadow:0 0 0 3px rgba(77,171,247,.2)}
.matrix-container{padding:22px;overflow-x:auto}
.matrix-table{width:100%;border-collapse:collapse;min-width:980px;font-size:.95rem}
.matrix-table th{background:linear-gradient(135deg,#3a506b,#2a3d57);color:#fff;font-weight:600;padding:14px 10px;text-align:left;position:sticky;top:0;cursor:pointer}
.matrix-table th:hover{background:#4a6188}
.matrix-table th i{margin-left:6px;font-size:.8rem}
.matrix-table tr:nth-child(even){background:#f8f9fa}
.matrix-table tr:hover{background:#e7f5ff}
.matrix-table td{padding:12px 10px;border-bottom:1px solid #e9ecef;vertical-align:top}
.country-cell{display:flex;align-items:center;font-weight:600}
.flag{width:28px;height:18px;margin-right:10px;border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.1)}
.score-bar{height:8px;background:#e9ecef;border-radius:4px;margin-top:5px;overflow:hidden}
.bar-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,#74c0fc,#4dabf7)}
.dimension-score{display:flex;justify-content:space-between;margin-top:4px}
.score-value{font-weight:600;font-size:.9rem}
.comparison-section{padding:24px;background:#f8f9fa;border-top:1px solid #e9ecef}
.section-title{font-family:'Playfair Display',serif;font-size:1.6rem;margin-bottom:18px;color:#2c3e50;text-align:center}
.charts-container{display:flex;flex-wrap:wrap;gap:24px;justify-content:center}
.chart-box{background:#fff;border-radius:12px;box-shadow:0 6px 16px rgba(0,0,0,.06);padding:20px;width:calc(50% - 12px);min-width:300px}
.chart-title{font-size:1.1rem;font-weight:700;margin-bottom:12px;color:#3a506b;text-align:center}
.chart{height:300px}
footer{background:#2c3e50;color:#e9ecef;text-align:center;padding:22px}
.logo{font-family:'Playfair Display',serif;font-size:1.2rem;font-weight:700;margin-bottom:6px}
.year{opacity:.85}
@media (max-width:768px){
  h1{font-size:1.8rem}
  .chart-box{width:100%}
}