:root{--bg:#f3f5f8;--surface:#fff;--ink:#17233b;--muted:#6c7587;--line:#dfe4ea;--navy:#10233f;--blue:#2d62d6;--water:#168b9f;--electric:#e59a18;--green:#16846d;--red:#d84d5b;--amber:#ca8514;--violet:#7462d1;--shadow:0 16px 42px rgba(24,35,58,.09)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif}.topbar{height:72px;display:flex;align-items:center;gap:18px;padding:0 max(20px,calc((100vw - 1380px)/2));background:var(--navy);color:#fff}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;white-space:nowrap}.brand-mark{width:38px;height:38px;display:grid;place-items:center;background:linear-gradient(145deg,#2d62d6,#168b9f);border-radius:12px;font-weight:900}.brand strong{display:block}.brand small{display:block;color:#b7c2d5;font-size:9px;margin-top:2px}.main-nav{display:flex;align-items:center;gap:3px;flex:1}.nav-item,.nav-group>button{border:0;background:transparent;color:#c8d2e2;padding:10px;border-radius:8px;font-weight:700;cursor:pointer}.nav-item:hover,.nav-item.active,.nav-group>button:hover{background:#ffffff15;color:#fff}.nav-group{position:relative}.nav-menu{display:none;position:absolute;top:42px;left:0;width:245px;padding:7px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);z-index:30}.nav-group:hover .nav-menu{display:grid}.nav-menu button{text-align:left;border:0;background:#fff;padding:10px;border-radius:7px;color:var(--ink);cursor:pointer}.nav-menu button:hover:not(:disabled){background:#edf3ff}.nav-menu button:disabled{color:#aaa}.menu-button{display:none}.button{border:0;border-radius:10px;padding:10px 14px;font-weight:800;cursor:pointer}.button.primary{background:var(--blue);color:#fff}.button.secondary{background:#ffffff14;color:#fff;border:1px solid #ffffff25}.full{width:100%}main{max-width:1380px;margin:auto;padding:48px 24px 80px}.page{display:none}.page.active{display:block}.hero{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;align-items:center;margin-bottom:36px}.eyebrow{font-size:10px;letter-spacing:.18em;font-weight:900;color:var(--blue)}h1{font-size:clamp(36px,5vw,66px);line-height:1.04;letter-spacing:-.05em;margin:12px 0}h1 em{font-style:normal;color:var(--blue)}.hero p,.section-title p,.service-heading p{color:var(--muted);line-height:1.65}.hero-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:22px;border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}.hero-panel div,.service-stats div{text-align:center;padding:17px 8px;background:#f3f6fa;border-radius:13px}.hero-panel b,.service-stats b{display:block;font-size:25px}.hero-panel span,.service-stats span{font-size:10px;color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.service-card{display:grid;grid-template-columns:auto 1fr;gap:14px;text-align:left;padding:21px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 8px 28px rgba(24,35,58,.05);cursor:pointer}.service-card>span{font-size:31px}.service-card h2{margin:0 0 6px}.service-card p{margin:0;color:var(--muted);line-height:1.5}.service-card>b{grid-column:2;color:var(--blue);margin-top:5px}.water-card{border-top:4px solid var(--water)}.electricity-card{border-top:4px solid var(--electric)}.upcoming{opacity:.65;cursor:default}.service-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.service-heading>div{display:flex;align-items:center;gap:16px}.service-heading h1{font-size:44px;margin:4px 0}.service-icon{font-size:38px}.service-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.toolbar{position:sticky;top:8px;z-index:12;display:flex;align-items:center;gap:9px;padding:9px;border:1px solid var(--line);border-radius:15px;background:#ffffffed;backdrop-filter:blur(14px);box-shadow:0 10px 28px rgba(24,35,58,.06)}.search{display:flex;align-items:center;gap:8px;flex:1;padding:0 12px;background:#f2f5f8;border-radius:9px}.search input{width:100%;padding:11px 0;border:0;outline:0;background:transparent}.filters{display:flex;gap:4px}.filter{border:0;border-radius:8px;padding:9px;color:var(--muted);background:#f2f5f8;font-weight:700;cursor:pointer}.filter.active{background:var(--blue);color:#fff}.refresh{border:0;border-radius:9px;width:40px;height:40px;background:#edf3ff;color:var(--blue);font-size:18px}.notice{margin:14px 0;padding:12px;border-radius:10px;background:#e1f2ec;color:#116450}.notice.error{background:#fbe5e8;color:#9d3440}.hidden{display:none!important}.governorate{margin:25px 0}.governorate-title{font-size:11px;letter-spacing:.15em;color:var(--muted);text-transform:uppercase}.zone-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.zone-card{padding:14px;border:1px solid var(--line);border-left:4px solid #9ba3b1;border-radius:12px;background:#fff}.zone-card.good{border-left-color:var(--green)}.zone-card.bad{border-left-color:var(--red)}.zone-card.warn{border-left-color:var(--amber)}.zone-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.zone-name{font-weight:800}.status{padding:6px 8px;border-radius:999px;font-size:10px;font-weight:800}.status.good{background:#dff2ec;color:#116653}.status.bad{background:#fbe5e8;color:#9d3440}.status.warn{background:#fff0d3;color:#8c570b}.status.unknown{background:#eceef2;color:#626a78}.zone-meta{margin:8px 0;color:var(--muted);font-size:10px}.zone-update{width:100%;padding:8px;border:0;border-radius:8px;color:#2849a7;background:#edf1ff;font-weight:800;cursor:pointer}.empty{text-align:center;padding:60px;color:var(--muted)}.dash-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.dash-grid article{display:grid;gap:8px;padding:22px;border:1px solid var(--line);border-radius:16px;background:#fff}.dash-grid article span{font-size:28px}.dash-grid article b{font-size:32px}.dash-grid article small{color:var(--muted)}.breakdown{margin-top:18px;padding:22px;background:#fff;border:1px solid var(--line);border-radius:16px}.bar-row{display:grid;grid-template-columns:110px 1fr 50px;align-items:center;gap:12px;margin:13px 0}.bar-row>div{height:10px;background:#edf0f4;border-radius:999px;overflow:hidden}.bar-row i{display:block;height:100%;background:var(--blue)}.directory{columns:3;column-gap:16px}.directory section{break-inside:avoid;margin-bottom:16px;padding:15px;background:#fff;border:1px solid var(--line);border-radius:12px}.directory h2{font-size:12px;color:var(--blue);text-transform:uppercase}.directory p{margin:6px 0;color:var(--muted)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.steps article{padding:23px;background:#fff;border:1px solid var(--line);border-radius:16px}.steps article>b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#edf3ff;color:var(--blue)}dialog{width:min(500px,calc(100% - 24px));padding:0;border:0;border-radius:17px;background:#fff;color:var(--ink);box-shadow:0 30px 90px #17233b55}dialog::backdrop{background:#10233fb0}.modal{position:relative;padding:26px}.close{position:absolute;right:12px;top:12px;border:0;border-radius:50%;width:34px;height:34px;background:#edf0f4;font-size:20px}.dialog-icon{font-size:30px}.modal p{color:var(--muted)}.choices{display:grid;gap:8px;margin-top:16px}.choice{text-align:left;padding:13px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}.choice b{display:block}.choice small{color:var(--muted)}label{display:grid;gap:6px;margin:14px 0;color:var(--muted);font-size:12px}dialog input,dialog select{width:100%;padding:11px;border:1px solid var(--line);border-radius:9px}.section-title{max-width:760px;margin-bottom:25px}.section-title h1{font-size:46px}.menu-button{border:0;background:#ffffff14;color:#fff;border-radius:8px;padding:9px;font-size:17px}
@media(max-width:1050px){.main-nav{display:none}.main-nav.open{display:grid;position:absolute;top:72px;left:0;right:0;padding:12px;background:var(--navy);z-index:40}.nav-group:hover .nav-menu{position:static;display:grid;width:auto}.menu-button{display:block}.topbar{padding:0 18px}.button.secondary{margin-left:auto}.zone-list{grid-template-columns:repeat(2,1fr)}.service-grid{grid-template-columns:repeat(2,1fr)}.dash-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){main{padding:28px 12px 60px}.brand small{display:none}.button.secondary{display:none}.hero{grid-template-columns:1fr;gap:20px}.hero-panel{grid-template-columns:repeat(3,1fr)}.service-grid,.zone-list,.dash-grid,.steps{grid-template-columns:1fr}.service-heading{align-items:flex-start}.service-heading h1{font-size:34px}.service-heading .button{font-size:0;width:42px;height:42px}.service-heading .button::after{content:'+';font-size:19px}.toolbar{flex-wrap:wrap;top:4px}.search{flex-basis:100%}.filters{width:calc(100% - 49px);overflow:auto}.filter{white-space:nowrap}.directory{columns:1}.section-title h1{font-size:36px}.bar-row{grid-template-columns:85px 1fr 35px}}

/* Identité visuelle tunisienne : rouge carmin, blanc, sable et bleu encre */
:root{--bg:#f7f5f0;--surface:#fff;--ink:#172033;--muted:#697184;--line:#e2ded5;--navy:#172033;--blue:#c1122f;--water:#168b9f;--electric:#d48a12;--green:#16846d;--red:#c1122f;--amber:#d48a12;--shadow:0 18px 46px rgba(23,32,51,.10)}
body{background:radial-gradient(circle at 100% 0%,rgba(193,18,47,.08),transparent 26%),radial-gradient(circle at 0% 100%,rgba(22,139,159,.08),transparent 30%),var(--bg)}
.topbar{background:rgba(255,255,255,.96);color:var(--ink);border-bottom:1px solid var(--line);box-shadow:0 5px 22px rgba(23,32,51,.06);position:sticky;top:0;z-index:50;backdrop-filter:blur(15px)}
.brand{color:var(--ink)}.brand-mark{font-size:24px;background:#fff;border:1px solid #ead8d8;box-shadow:0 5px 16px rgba(193,18,47,.12)}.brand small{color:var(--muted)}
.nav-item,.nav-group>button{color:#596174}.nav-item:hover,.nav-item.active,.nav-group>button:hover{background:#fbeaec;color:#a40e27}.button.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.button.primary{background:#c1122f}.eyebrow{color:#c1122f}h1 em{color:#c1122f}.filter.active{background:#c1122f}.refresh{background:#fbeaec;color:#c1122f}.service-card>b,.directory h2{color:#c1122f}.steps article>b{background:#fbeaec;color:#c1122f}.zone-update{background:#fbeaec;color:#a40e27}.bar-row i{background:#c1122f}
.hero::after{content:'🇹🇳';position:absolute;right:3%;top:7%;font-size:92px;opacity:.055;pointer-events:none}.hero{position:relative}
@media(max-width:1050px){.main-nav.open{background:#fff;border-top:1px solid var(--line);box-shadow:0 18px 30px rgba(23,32,51,.12)}.menu-button{background:#fbeaec;color:#c1122f}.nav-menu{box-shadow:none;border:0;background:#f7f5f0}.nav-menu button{background:#f7f5f0}}
@media(max-width:700px){.hero::after{font-size:58px;top:2%}}

/* Météo en direct */
.weather-hero{display:grid;grid-template-columns:1.3fr .7fr;gap:34px;align-items:center;margin-bottom:22px}.weather-hero h1{font-size:clamp(38px,5vw,62px)}.weather-hero p{max-width:760px;color:var(--muted);line-height:1.65}.weather-update-box{display:grid;gap:8px;padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow)}.weather-update-box span{color:var(--muted);font-size:11px}.weather-update-box strong{font-size:20px}.weather-toolbar{display:flex;gap:10px;margin-bottom:17px;padding:9px;border:1px solid var(--line);border-radius:14px;background:#ffffffed}.weather-toolbar .search{flex:1}.weather-toolbar select{padding:11px;border:0;border-radius:9px;background:#f2f5f8;color:var(--ink);font-weight:700}.weather-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.weather-card{position:relative;overflow:hidden;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 28px rgba(23,32,51,.06)}.weather-card::after{content:'';position:absolute;right:-28px;top:-28px;width:105px;height:105px;border-radius:50%;background:var(--weather-tint,#edf3ff)}.weather-card-head{position:relative;z-index:1;display:flex;justify-content:space-between;gap:12px}.weather-city{margin:0;font-size:18px}.weather-governorate{display:block;margin-top:4px;color:var(--muted);font-size:10px}.weather-icon{position:relative;z-index:2;font-size:35px}.weather-current{position:relative;z-index:1;display:flex;align-items:end;gap:10px;margin:18px 0 14px}.weather-temperature{font-size:42px;font-weight:900;letter-spacing:-.06em}.weather-description{padding-bottom:5px;color:var(--muted);font-size:12px}.weather-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.weather-metric{padding:9px 6px;border-radius:9px;background:#f6f6f3;text-align:center}.weather-metric b{display:block;font-size:12px}.weather-metric span{color:var(--muted);font-size:9px}.weather-forecast{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.weather-day{text-align:center;font-size:10px;color:var(--muted)}.weather-day b{display:block;margin-top:4px;color:var(--ink)}.weather-source{margin-top:18px;color:var(--muted);font-size:10px;text-align:center}.weather-card.sunny{--weather-tint:#fff1d2}.weather-card.cloudy{--weather-tint:#e8edf4}.weather-card.rainy{--weather-tint:#e1edf7}.weather-card.storm{--weather-tint:#eee4f8}.weather-card.fog{--weather-tint:#ecece8}
@media(max-width:1050px){.weather-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.weather-hero{grid-template-columns:1fr}}
@media(max-width:700px){.weather-grid{grid-template-columns:1fr}.weather-toolbar{flex-wrap:wrap}.weather-toolbar .search{flex-basis:100%}.weather-toolbar select{width:100%}.weather-update-box{padding:16px}.weather-current{margin-top:13px}}

/* Dashboard avancé */
.dashboard-tabs,.health-tabs{display:flex;gap:7px;overflow:auto;margin-bottom:18px;padding-bottom:2px}.dashboard-tab,.health-tab{white-space:nowrap;border:1px solid var(--line);background:#fff;color:var(--muted);padding:10px 14px;border-radius:999px;font-weight:800;cursor:pointer}.dashboard-tab.active,.health-tab.active{background:#c1122f;color:#fff;border-color:#c1122f}.chart-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;margin-top:14px}.chart-panel{padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff}.chart-panel h2{margin:0 0 12px;font-size:16px}.chart-box{position:relative;height:330px}.dash-grid article{min-height:135px}
/* Santé */
.health-hero{display:grid;grid-template-columns:1.25fr .75fr;gap:30px;align-items:center;margin-bottom:22px}.health-hero p{color:var(--muted);line-height:1.65}.health-safety{padding:20px;border:1px solid #f0c7cd;border-radius:16px;background:#fdf0f2;color:#8e2637}.health-safety p{color:#8e2637;margin-bottom:0}.health-panel{display:none}.health-panel.active{display:block}.location-card{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff}.location-card h2{margin:0 0 5px}.location-card p{margin:0;color:var(--muted)}.location-actions{display:flex;gap:8px}.location-actions select,.health-notice-toolbar select{padding:10px;border:1px solid var(--line);border-radius:9px;background:#f7f7f4}.health-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:15px}.health-place{padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.health-place h3{margin:0 0 6px}.health-place p{color:var(--muted);font-size:11px;line-height:1.5}.health-place-actions{display:flex;gap:6px}.health-place-actions a{flex:1;text-align:center;padding:8px;border-radius:8px;background:#fbeaec;color:#a40e27;text-decoration:none;font-size:11px;font-weight:800}.health-notice-toolbar{display:flex;gap:10px;margin-bottom:14px}.health-notice-toolbar .search{flex:1}.health-notice-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.health-notice{padding:17px;border:1px solid var(--line);border-radius:14px;background:#fff}.health-notice .tag{display:inline-block;padding:5px 8px;border-radius:999px;background:#fbeaec;color:#a40e27;font-size:10px;font-weight:800}.health-notice h3{margin:10px 0 6px}.health-notice p{color:var(--muted);line-height:1.55}.health-notice small{color:var(--muted)}.health-form{max-width:760px;padding:24px;border:1px solid var(--line);border-radius:16px;background:#fff}.health-form textarea{width:100%;padding:11px;border:1px solid var(--line);border-radius:9px;font:inherit}.health-source{margin-top:18px;text-align:center;color:var(--muted);font-size:10px}.health-card{border-top:4px solid #16846d}.weather-card-home{border-top:4px solid #557892}
@media(max-width:1050px){.chart-grid{grid-template-columns:1fr}.health-results{grid-template-columns:repeat(2,1fr)}.health-hero{grid-template-columns:1fr}.location-card{align-items:flex-start;flex-direction:column}.location-actions{width:100%;flex-wrap:wrap}.location-actions>*{flex:1}}
@media(max-width:700px){.chart-box{height:280px}.health-results,.health-notice-list{grid-template-columns:1fr}.health-notice-toolbar{flex-wrap:wrap}.health-notice-toolbar .search{flex-basis:100%}.health-notice-toolbar select{width:100%}.location-actions>*{flex-basis:100%}}
.weather-search-result{grid-column:1/-1;border:2px solid #c1122f;box-shadow:0 14px 38px rgba(193,18,47,.12)}
@media(max-width:700px){#weatherCitySearchButton{width:100%}}

/* Urgences et assistant */
.emergency-section,.orientation-assistant{margin:18px 0;padding:20px;border:1px solid var(--line);border-radius:17px;background:#fff}.emergency-heading{display:flex;justify-content:space-between;gap:20px;align-items:end}.emergency-heading h2,.orientation-assistant h2{margin:5px 0}.emergency-heading p,.orientation-assistant p{max-width:620px;color:var(--muted);font-size:12px}.emergency-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:14px}.emergency-grid a{display:flex;align-items:center;gap:11px;padding:13px;border:1px solid #f0c7cd;border-radius:12px;background:#fdf1f3;color:var(--ink);text-decoration:none}.emergency-grid b{font-size:26px;color:#c1122f}.emergency-grid span{font-weight:800}.emergency-grid small{color:var(--muted);font-weight:500}.other-contacts{margin-top:12px;color:var(--muted)}.other-contacts div{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;margin-top:9px}.other-contacts a{padding:9px;border-radius:8px;background:#f5f5f2;color:var(--ink);text-decoration:none}.orientation-assistant{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:center}.assistant-controls{display:flex;gap:8px}.assistant-controls select{flex:1;padding:11px;border:1px solid var(--line);border-radius:9px}.orientation-result{grid-column:1/-1;padding:14px;border-left:4px solid #c1122f;border-radius:9px;background:#fdf1f3;line-height:1.55}.community-warning{margin:9px 0;padding:9px;border-radius:8px;background:#fff4db;color:#7f5207;font-size:11px}.health-custom-tag{background:#ece7ff!important;color:#5341a6!important}
@media(max-width:850px){.emergency-grid{grid-template-columns:repeat(2,1fr)}.orientation-assistant{grid-template-columns:1fr}.assistant-controls{flex-wrap:wrap}.assistant-controls>*{flex-basis:100%}.other-contacts div{grid-template-columns:1fr}}
@media(max-width:480px){.emergency-grid{grid-template-columns:1fr}.emergency-heading{display:block}}
.home-extra-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-top:16px}.mini-service{display:grid;gap:5px;text-align:left;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff;cursor:pointer}.mini-service:first-letter{font-size:22px}.mini-service span{color:var(--muted);font-size:10px}.community-actions,.map-controls,.news-toolbar,.economy-tabs{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:15px}.community-actions select,.map-controls select,.news-toolbar input{padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff}.incident-grid,.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.incident-card,.news-card{padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff}.incident-card.urgent{border-left:5px solid #c1122f}.incident-card.medium{border-left:5px solid #d48a12}.incident-card.low{border-left:5px solid #16846d}.incident-card p,.news-card p{color:var(--muted);line-height:1.5}.incident-meta{font-size:10px;color:var(--muted)}.incident-actions{display:flex;gap:6px;margin-top:10px}.incident-actions button{flex:1;padding:8px;border:0;border-radius:8px;background:#f5f5f2;cursor:pointer}.map-controls label{padding:9px;border:1px solid var(--line);border-radius:9px;background:#fff;font-weight:700}#nationalMap{height:620px;border:1px solid var(--line);border-radius:17px;overflow:hidden}.map-legend,.data-attribution{margin-top:9px;text-align:center;color:var(--muted);font-size:10px}.news-toolbar input{flex:1}.news-card a{color:#a40e27;font-weight:800;text-decoration:none}.news-card small{color:var(--muted)}.economy-tab{padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:800}.economy-tab.active{background:#c1122f;color:#fff}.converter{display:grid;gap:10px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff}.converter input,.converter select{padding:10px;border:1px solid var(--line);border-radius:8px}.converter strong{font-size:26px}.gps-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center}.gps-check input{width:auto!important}
@media(max-width:1050px){.home-extra-grid{grid-template-columns:repeat(3,1fr)}.incident-grid,.news-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.home-extra-grid{grid-template-columns:repeat(2,1fr)}.incident-grid,.news-grid{grid-template-columns:1fr}#nationalMap{height:480px}.map-controls label{flex:1}.community-actions>*{width:100%}}

/* Recherche libre des services de santé */
.free-health-search{display:grid;grid-template-columns:minmax(320px,1fr) 110px auto;align-items:end;width:min(780px,100%)}
.health-free-input{display:grid;gap:6px;margin:0;color:var(--muted);font-size:11px}
.health-free-input input{width:100%;padding:11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit}
.health-free-input input:focus{outline:3px solid rgba(193,18,47,.10);border-color:#c1122f}
.health-search-hint{grid-column:1/-1;color:var(--muted);font-size:10px;margin-top:5px}
@media(max-width:850px){.free-health-search{grid-template-columns:1fr 110px}.free-health-search button{grid-column:1/-1}}
@media(max-width:560px){.free-health-search{grid-template-columns:1fr}.free-health-search select,.free-health-search button{width:100%}}
.module-status{margin:10px 0;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);font-size:12px}.module-status.ok{background:#e4f4ee;color:#116653;border-color:#b9ddd3}.module-status.error{background:#fbe5e8;color:#9d3440;border-color:#efc1c5}
.zone-suggestions{display:grid;gap:6px;margin:-5px 0 12px}.zone-suggestion{display:flex;justify-content:space-between;gap:8px;padding:9px;border:1px solid #efc1c5;border-radius:8px;background:#fdf0f2;color:var(--ink);font-size:12px}.zone-suggestion button{border:0;background:#c1122f;color:#fff;border-radius:7px;padding:5px 8px;font-weight:800;cursor:pointer}.duplicate-help{padding:9px;border-radius:8px;background:#fff4db;color:#7f5207;font-size:11px}

/* Circulation réellement en direct */
.live-traffic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.live-provider{display:flex;gap:15px;padding:21px;border:1px solid var(--line);border-top:4px solid #c1122f;border-radius:17px;background:#fff;color:var(--ink);text-decoration:none;box-shadow:0 10px 28px rgba(23,32,51,.06);transition:.18s transform,.18s box-shadow}.live-provider:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(23,32,51,.11)}.live-provider>span{font-size:34px}.live-provider h2{margin:0 0 7px}.live-provider p{color:var(--muted);line-height:1.55}.live-provider b{color:#a40e27}.live-provider.autoroutes{border-top-color:#16846d}.live-provider.michelin{border-top-color:#168b9f}.live-status-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:15px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff}.live-status-panel h2{margin:5px 0}.live-status-panel p{margin:0;color:var(--muted)}
@media(max-width:900px){.live-traffic-grid{grid-template-columns:1fr}.live-status-panel{align-items:flex-start;flex-direction:column}}
.telecom-live-summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px;margin-bottom:14px;border:1px solid var(--line);border-radius:16px;background:#fff}.telecom-live-summary h2{margin:5px 0}.telecom-live-summary p{margin:0;color:var(--muted)}.connection-diagnostics{margin-top:15px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff}.connection-diagnostics h2{margin-top:0}.diagnostic-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.diagnostic-grid article{display:grid;gap:4px;padding:14px;border-radius:12px;background:#f6f6f3;text-align:center}.diagnostic-grid article span{font-size:24px}.diagnostic-grid article b{font-size:17px}.diagnostic-grid article small{color:var(--muted)}
@media(max-width:850px){.telecom-live-summary{align-items:flex-start;flex-direction:column}.diagnostic-grid{grid-template-columns:repeat(2,1fr)}}

/* Économie enrichie */
.economy-hero{display:grid;grid-template-columns:1.3fr .7fr;gap:28px;align-items:center;margin-bottom:20px}.economy-hero p{max-width:720px;color:var(--muted);line-height:1.65}.economy-pulse{display:grid;gap:7px;padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}.economy-pulse span{color:var(--muted);font-size:11px}.economy-pulse strong{font-size:18px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.ghost-button{padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-weight:800;cursor:pointer}.ghost-button:hover{border-color:#c1122f;color:#a40e27}.converter-row{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center}.converter-row button{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#f6f6f3;font-size:20px;cursor:pointer}.economy-special{display:grid;grid-template-columns:1fr 1fr;gap:14px}.simulator-card,.basket-card{padding:22px;border:1px solid var(--line);border-radius:16px;background:#fff}.simulator-card{display:grid;gap:10px}.simulator-card label{display:grid;gap:5px;color:var(--muted);font-size:11px}.simulator-card input,.simulator-card select,.basket-add input{padding:10px;border:1px solid var(--line);border-radius:8px}.simulation-result{display:grid;gap:4px;margin-top:8px;padding:16px;border-radius:12px;background:#fbeaec}.simulation-result strong{font-size:28px;color:#a40e27}.basket-add{display:grid;grid-template-columns:1fr 130px auto;gap:7px}.basket-item{display:flex;justify-content:space-between;gap:10px;margin-top:8px;padding:10px;border-radius:9px;background:#f6f6f3}.basket-item button{border:0;background:none;color:#c1122f;cursor:pointer}.learn-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.learn-grid article{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}.learn-grid article>span{font-size:27px}.learn-grid p{color:var(--muted);line-height:1.55}.economy-tab{cursor:pointer}.economy-tab:focus-visible,.ghost-button:focus-visible{outline:3px solid rgba(193,18,47,.18)}
/* Outils santé */
.health-toolbox{margin-top:18px;padding:20px;border:1px solid var(--line);border-radius:17px;background:#fff}.toolbox-heading{display:flex;justify-content:space-between;gap:20px;align-items:end}.toolbox-heading h2{margin:5px 0}.toolbox-heading p{color:var(--muted)}.health-tool-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.health-tool-grid article{padding:15px;border-radius:12px;background:#f6f6f3}.health-tool-grid article>span{font-size:25px}.health-tool-grid h3{margin:8px 0 5px}.health-tool-grid p{min-height:54px;color:var(--muted);font-size:11px;line-height:1.45}.danger-lite{color:#a40e27}.favorites-panel{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:13px}.favorite-place{display:flex;justify-content:space-between;gap:10px;padding:11px;border:1px solid var(--line);border-radius:10px}.health-place-actions .favorite-place-button{background:#f6f6f3;color:#6b5a00}
@media(max-width:1000px){.economy-hero{grid-template-columns:1fr}.learn-grid,.health-tool-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.economy-special{grid-template-columns:1fr}.basket-add{grid-template-columns:1fr}.learn-grid,.health-tool-grid,.favorites-panel{grid-template-columns:1fr}.toolbox-heading{display:block}.economy-tabs{flex-wrap:nowrap;overflow:auto}}
@media print{body *{visibility:hidden}.emergency-section,.emergency-section *{visibility:visible}.emergency-section{position:absolute;inset:0;margin:0;border:0}.topbar{display:none}}

/* Sélection libre de toutes les devises */
.currency-picker-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:9px;align-items:end}.currency-picker-grid label{display:grid;gap:5px;color:var(--muted);font-size:11px}.currency-picker-grid input{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;text-transform:uppercase}.currency-picker-grid button{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#f6f6f3;font-size:20px;cursor:pointer}.currency-watch{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:14px;border:1px solid var(--line);border-radius:13px;background:#fff}.currency-watch>div:first-child{display:grid;min-width:190px}.currency-watch span{color:var(--muted);font-size:10px}.currency-watch-choices{display:flex;flex:1;gap:6px;flex-wrap:wrap}.currency-chip{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:800;cursor:pointer}.currency-chip.active{border-color:#c1122f;background:#fbeaec;color:#a40e27}.currency-chip-limit{color:#a40e27;font-size:10px}.economy-kpis article b{font-size:21px}
@media(max-width:760px){.currency-picker-grid{grid-template-columns:1fr}.currency-picker-grid button{justify-self:center;transform:rotate(90deg)}.currency-watch{align-items:flex-start;flex-direction:column}.currency-watch-choices{width:100%}}
.language-switcher{display:flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}.language-switcher button{border:0;padding:7px 9px;background:#fff;font-size:10px;font-weight:800;cursor:pointer}.language-switcher button.active{background:#c1122f;color:#fff}.procedure-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.procedure-assistant,.procedure-checklist,.administration-map-section,.parcel-section,.oncall-pharmacy{padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff}.procedure-search{display:flex;gap:8px}.procedure-search input,.admin-map-controls input,.agri-controls input,.parcel-form input{flex:1;padding:11px;border:1px solid var(--line);border-radius:9px}.procedure-result{margin-top:15px}.procedure-card{padding:15px;border-left:4px solid #c1122f;border-radius:10px;background:#f8f6f2}.procedure-card ul{padding-left:20px}.check-item{display:flex;gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}.administration-map-section{margin-top:15px}.map-section-heading{display:flex;justify-content:space-between;gap:20px;align-items:end}.admin-map-controls,.agri-controls,.parcel-form,.oncall-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-map-controls select{padding:10px;border:1px solid var(--line);border-radius:9px}#administrationMap{height:460px;border-radius:14px;border:1px solid var(--line);overflow:hidden}.administration-results{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:12px}.admin-card{padding:13px;border:1px solid var(--line);border-radius:11px}.admin-card p{color:var(--muted);font-size:11px}.admin-card a{color:#a40e27;font-weight:800}.official-source{margin-top:12px;padding:11px;border-radius:10px;background:#fff4db;font-size:11px}.agri-controls{margin-bottom:12px}.agri-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:14px}.agri-alerts{padding:20px;border:1px solid var(--line);border-radius:16px;background:#fff}.agri-alert{margin:8px 0;padding:11px;border-radius:9px;background:#f6f6f3}.agri-alert.warning{border-left:4px solid #d48a12}.agri-alert.danger{border-left:4px solid #c1122f}.parcel-section{margin-top:14px}.parcel-list{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.parcel-card{padding:12px;border-radius:10px;background:#f6f6f3}.oncall-pharmacy{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;margin:15px 0}.oncall-pharmacy h2{margin:5px 0}.oncall-pharmacy p{color:var(--muted);max-width:760px}.oncall-pharmacy #onCallNotice,.oncall-pharmacy #onCallResults{grid-column:1/-1}[dir="rtl"] body{text-align:right}[dir="rtl"] .nav,[dir="rtl"] .topbar-inner{direction:rtl}[dir="rtl"] .procedure-card ul{padding-right:20px;padding-left:0}
@media(max-width:900px){.procedure-layout,.agri-grid{grid-template-columns:1fr}.map-section-heading{display:block}.administration-results,.parcel-list{grid-template-columns:1fr 1fr}.oncall-pharmacy{grid-template-columns:1fr}}@media(max-width:600px){.procedure-search,.admin-map-controls,.agri-controls,.parcel-form{flex-direction:column}.administration-results,.parcel-list{grid-template-columns:1fr}#administrationMap{height:380px}.language-switcher button{padding:6px}}

/* ===== En-tête responsive corrigé ===== */
.topbar{height:68px;min-height:68px;padding:0 clamp(14px,2.4vw,34px);gap:12px;max-width:none;width:100%}
.brand{flex:0 0 auto}.brand strong{font-size:14px}.brand small{font-size:8px}.brand-mark{width:34px;height:34px}
.main-nav{min-width:0;justify-content:center;gap:1px}.nav-item,.nav-group>button{padding:8px 7px;font-size:10px;line-height:1.15;white-space:nowrap}
.language-switcher{flex:0 0 auto;min-width:max-content}.language-switcher button{display:block;min-width:max-content;padding:7px 8px;font-size:9px;white-space:nowrap}
#shareButton{flex:0 0 auto;white-space:nowrap;padding:9px 12px;font-size:10px}.menu-button{flex:0 0 auto}

/* Sur écran moyen, le menu principal passe dans le bouton hamburger.
   Les trois langues et Partager restent toujours visibles. */
@media(max-width:1500px){
  .topbar{padding:0 18px}
  .menu-button{display:block;order:2;background:#fbeaec;color:#c1122f}
  .brand{order:1;margin-right:auto}
  .main-nav{display:none}
  .main-nav.open{display:grid;grid-template-columns:repeat(3,minmax(170px,1fr));position:absolute;top:68px;left:14px;right:14px;max-height:calc(100vh - 84px);overflow:auto;padding:12px;background:#fff;border:1px solid var(--line);border-radius:0 0 16px 16px;box-shadow:0 18px 35px rgba(23,32,51,.15);z-index:70}
  .main-nav.open>.nav-item,.main-nav.open>.nav-group>.nav-item{width:100%;min-height:44px;text-align:left;padding:11px;font-size:12px;border:1px solid transparent}
  .main-nav.open>.nav-item:hover,.main-nav.open>.nav-item.active{border-color:#efc1c5}
  .nav-group{width:100%}.nav-group:hover .nav-menu,.nav-group:focus-within .nav-menu{position:static;display:grid;width:100%;margin-top:3px;box-shadow:none}
  .language-switcher{order:3}
  #shareButton{order:4;margin-left:0}
}
@media(max-width:760px){
  .topbar{height:auto;min-height:64px;padding:9px 11px;gap:7px;flex-wrap:wrap}
  .brand small{display:none}.brand strong{font-size:13px}.brand-mark{width:32px;height:32px}
  .menu-button{order:2;margin-left:auto}
  .language-switcher{order:5;width:100%;display:grid;grid-template-columns:repeat(3,1fr)}
  .language-switcher button{padding:8px 5px;font-size:10px}
  #shareButton{order:3;padding:8px 10px}
  .main-nav.open{top:64px;grid-template-columns:1fr;left:8px;right:8px}
}
@media(max-width:430px){#shareButton{font-size:0}#shareButton::after{content:'↗';font-size:16px}.brand span:last-child{max-width:105px;overflow:hidden}.language-switcher button{font-size:9px}}

/* Logo : drapeau tunisien fourni */
.brand-mark.flag-mark{width:42px;height:32px;padding:0;overflow:hidden;border-radius:7px;background:#e70013;border:1px solid rgba(193,18,47,.18);box-shadow:0 4px 12px rgba(193,18,47,.16)}
.brand-mark.flag-mark img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
@media(max-width:760px){.brand-mark.flag-mark{width:38px;height:29px}}

/* ===== Mes démarches intelligentes v2 ===== */
.procedures-v2{--proc-red:#c8102e;--proc-soft:#fff4f5;--proc-blue:#10213d}.procedures-hero{display:grid;grid-template-columns:1fr 260px;gap:28px;align-items:center;padding:32px;border-radius:24px;background:linear-gradient(135deg,#fff 55%,#fff1f3);border:1px solid var(--line);margin-bottom:18px}.procedures-hero h1{font-size:clamp(34px,4.3vw,58px);margin:8px 0}.procedures-hero p{max-width:780px;color:var(--muted);line-height:1.65}.procedure-progress-card{padding:22px;background:#fff;border:1px solid #f0d5d9;border-radius:18px;box-shadow:var(--shadow)}.procedure-progress-card b{display:block;font-size:42px;color:var(--proc-red)}.procedure-progress-card span{font-size:12px;color:var(--muted)}.procedure-progress-card div{height:9px;background:#f1e8e9;border-radius:999px;margin-top:14px;overflow:hidden}.procedure-progress-card i{display:block;width:0;height:100%;background:var(--proc-red);transition:.3s}.procedure-discovery,.procedure-wizard,.procedure-main-card,.procedure-side-card,.my-procedures-section{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px;margin-bottom:16px}.procedure-search-v2{display:flex;align-items:center;gap:10px;padding:8px;border:1px solid var(--line);border-radius:14px}.procedure-search-v2 input{flex:1;border:0;outline:0;padding:12px;font-size:15px}.procedure-categories{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-top:18px}.procedure-category{min-height:100px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:left;cursor:pointer}.procedure-category:hover,.procedure-category.active{border-color:#d95a6e;background:var(--proc-soft)}.procedure-category span{display:block;font-size:25px}.procedure-category b{display:block;margin-top:8px}.procedure-popular{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.procedure-popular button{border:0;background:#f4f1ed;border-radius:999px;padding:9px 13px;cursor:pointer}.wizard-heading,.section-inline-heading,.procedure-card-header{display:flex;justify-content:space-between;gap:20px;align-items:start}.wizard-questions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.wizard-question{padding:15px;background:#faf8f5;border-radius:14px}.wizard-question label{font-weight:800;color:var(--proc-blue);margin:0 0 9px}.wizard-options{display:grid;gap:7px}.wizard-option{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:8px;padding:9px;background:#fff;border:1px solid var(--line);border-radius:9px;cursor:pointer}.procedure-workspace{display:grid;grid-template-columns:1.4fr .6fr;gap:16px}.procedure-main-card,.procedure-side-card{margin:0}.procedure-card-header h2{font-size:32px;margin:8px 0}.procedure-badge{display:inline-block;padding:6px 10px;border-radius:999px;background:var(--proc-soft);color:var(--proc-red);font-size:10px;font-weight:900}.procedure-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.procedure-fact{padding:14px;border-radius:12px;background:#f6f7f9}.procedure-fact small{display:block;color:var(--muted)}.procedure-fact b{display:block;margin-top:5px}.procedure-tabs{display:flex;border-bottom:1px solid var(--line);margin-top:18px}.procedure-tabs button{border:0;background:transparent;padding:12px 16px;font-weight:800;cursor:pointer}.procedure-tabs button.active{color:var(--proc-red);border-bottom:3px solid var(--proc-red)}.procedure-tab-panel{display:none;padding:18px 0}.procedure-tab-panel.active{display:block}.document-item,.procedure-step{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.document-item input{width:18px;height:18px}.document-item div{flex:1}.document-item small,.procedure-step p{color:var(--muted)}.verification-tag{display:inline-block;margin-top:5px;padding:4px 7px;border-radius:999px;background:#fff2ce;color:#7c5300;font-size:9px;font-weight:800}.step-number{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:var(--proc-red);color:#fff;font-weight:900}.procedure-actions{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:16px}.procedure-side-card{position:sticky;top:86px;height:max-content}.procedure-side-card h3{line-height:1.4}.procedure-note textarea{min-height:110px;padding:10px;border:1px solid var(--line);border-radius:10px;resize:vertical}.saved-procedures{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.saved-procedure{padding:15px;border:1px solid var(--line);border-radius:13px;background:#faf9f7}.saved-procedure progress{width:100%;accent-color:var(--proc-red)}.saved-procedure-actions{display:flex;gap:6px;margin-top:10px}.saved-procedure button{border:0;padding:7px 9px;border-radius:8px;cursor:pointer}.compact-map-section #administrationMap{height:390px}.map-empty-state{min-height:210px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;background:linear-gradient(135deg,#f8f7f4,#fff);border:1px dashed #d8d2c9;border-radius:16px;color:var(--muted)}.map-empty-state b{font-size:17px;color:var(--ink)}
@media(max-width:1100px){.procedure-categories{grid-template-columns:repeat(3,1fr)}.procedure-workspace{grid-template-columns:1fr}.procedure-side-card{position:static}.procedure-facts{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.procedures-hero{grid-template-columns:1fr;padding:20px}.procedure-progress-card{display:none}.procedure-search-v2{flex-wrap:wrap}.procedure-search-v2 input{width:80%}.procedure-search-v2 .button{width:100%}.procedure-categories{grid-template-columns:repeat(2,1fr)}.wizard-questions,.saved-procedures{grid-template-columns:1fr}.procedure-facts{grid-template-columns:1fr 1fr}.wizard-heading,.section-inline-heading,.procedure-card-header{display:block}.procedure-card-header .button{margin-top:10px}}
