.itc-map-wrapper{
    width:100%;
    position:relative;
}

#itcFranceMap{
    width:100%;
    height:620px;
}

#itcFranceMap svg{
    width:100%;
    height:100%;
    display:block;
}

.itc-map-tooltip{
    position:absolute;
    background:rgba(255,255,255,.97);
    border:1px solid #cbd5e1;
    border-radius:10px;
    padding:10px 12px;
    box-shadow:0 10px 30px rgba(15,23,42,.15);
    font-size:.9rem;
    color:#0f172a;
    pointer-events:none;
    opacity:0;
    z-index:20;
    max-width:260px;
}

.itc-map-legend{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:14px;
    color:#475569;
    font-size:.92rem;
}

.itc-map-legend span{
    display:inline-flex;
    align-items:center;
    gap:6px;
}

.itc-map-legend i{
    width:14px;
    height:14px;
    border-radius:4px;
    display:inline-block;
}

.itc-filters{
    display:grid;
    grid-template-columns:repeat(4,minmax(180px,1fr));
    gap:14px;
    align-items:end;
}

.itc-filters .form-group label{
    display:block;
    font-weight:700;
    margin-bottom:6px;
    color:#1e293b;
}

.itc-filters select,
.itc-filters button{
    width:100%;
    border-radius:12px;
    padding:12px 14px;
    border:1px solid #cbd5e1;
    background:#fff;
    font-size:.96rem;
}

.itc-filters button{
    background:#0d6efd;
    color:#fff;
    border:none;
    font-weight:700;
    cursor:pointer;
}

.itc-header-stats{
    display:grid;
    grid-template-columns:repeat(4,minmax(180px,1fr));
    gap:14px;
}

.itc-stat{
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:14px;
    padding:18px;
}

.itc-stat .label{
    display:block;
    color:#64748b;
    font-size:.9rem;
    margin-bottom:8px;
}

.itc-stat .value{
    font-size:1.7rem;
    font-weight:800;
    color:#0f172a;
}

.itc-pill{
    display:inline-flex;
    align-items:center;
    gap:10px;
    border-radius:999px;
    padding:10px 16px;
    font-weight:700;
    background:#f8fafc;
    border:1px solid #e2e8f0;
}

.itc-dot{
    width:14px;
    height:14px;
    border-radius:50%;
    display:inline-block;
}

.itc-fluid{
    color:#166534;
}

.itc-light{
    color:#a16207;
}

.itc-moderate{
    color:#c2410c;
}

.itc-strong{
    color:#b91c1c;
}

.itc-critical{
    color:#7f1d1d;
}

.chart-wrap{
    position:relative;
    min-height:380px;
}

.itc-analysis{
    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:20px;
}

.itc-analysis p{
    line-height:1.7;
    color:#334155;
}

.itc-analysis ul{
    margin:0;
    padding-left:18px;
}

.itc-analysis li{
    margin-bottom:8px;
    color:#334155;
}

.itc-table{
    width:100%;
    border-collapse:collapse;
    font-size:.95rem;
}

.itc-table th,
.itc-table td{
    padding:12px 10px;
    border-bottom:1px solid #e2e8f0;
    text-align:left;
}

.itc-table th{
    background:#eff6ff;
    color:#1e3a8a;
    font-weight:700;
}

.itc-table tr:hover td{
    background:#f8fafc;
}

.itc-help{
    font-size:.95rem;
    color:#475569;
    line-height:1.7;
}

.itc-help a{
    font-weight:700;
    text-decoration:none;
}

.itc-hero-badge::before{
    content:"";
    position:absolute;
    top:-40px;
    right:-40px;
    width:180px;
    height:180px;
    background:rgba(255,255,255,.08);
    border-radius:50%;
}

.itc-hero-kicker{
    font-size:.88rem;
    text-transform:uppercase;
    letter-spacing:.08em;
    opacity:.9;
    margin-bottom:8px;
    font-weight:700;
}

.itc-hero-fuel{
    font-size:1rem;
    font-weight:600;
    opacity:.95;
}

.itc-hero-badge h2{
    color:#fff !important;
}

.itc-positive{
    color:#dc2626;
    font-weight:800;
}

.itc-negative{
    color:#16a34a;
    font-weight:800;
}

.itc-neutral{
    color:#64748b;
    font-weight:800;
}

.itc-status-fluid{
    color:#16a34a;
    font-weight:800;
}

.itc-status-light{
    color:#a16207;
    font-weight:800;
}

.itc-status-moderate{
    color:#f97316;
    font-weight:800;
}

.itc-status-strong{
    color:#dc2626;
    font-weight:800;
}

.itc-status-critical{
    color:#7f1d1d;
    font-weight:800;
}

.itc-table-scroll{
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}

.itc-history-table{
    min-width:760px;
}

.itc-history-table th,
.itc-history-table td{
    white-space:nowrap;
}

@media(max-width:900px){
    .itc-filters,
    .itc-header-stats,
    .itc-analysis{
        grid-template-columns:1fr;
    }

    .chart-wrap{
        min-height:300px;
    }
}

@media(max-width:768px){
    #itcFranceMap{
        height:440px;
    }

    .itc-history-table{
        min-width:680px;
        font-size:.85rem;
    }

    .itc-history-table th,
    .itc-history-table td{
        padding:10px 8px;
    }

    .itc-history-table th:nth-child(5),
    .itc-history-table td:nth-child(5),
    .itc-history-table th:nth-child(6),
    .itc-history-table td:nth-child(6){
        display:none;
    }
}