:root {
  --violet:#3D1A6E;--violet-dark:#2A1050;--violet-light:#F5F0FF;
  --orange:#FF6B35;--orange-light:#FFF3EE;
  --blue:#1B4FD8;--blue-l:#EEF2FF;--blue-m:#C7D2FE;
  --green:#16A34A;--green-l:#F0FDF4;
  --red:#DC2626;--red-l:#FEF2F2;
  --amber:#D97706;--amber-l:#FFFBEB;
  --g50:#F9FAFB;--g100:#F3F4F6;--g200:#E5E7EB;--g300:#D1D5DB;
  --g400:#9CA3AF;--g500:#6B7280;--g600:#4B5563;--g700:#374151;
  --g800:#1F2937;--g900:#111827;
  --serif:'atrament-web','DM Serif Display',Georgia,serif;
  --sans:'Poppins',system-ui,sans-serif;
  --r:12px;--rs:8px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
#ssm-app {font-family:var(--sans);background:#FFF8F4;color:var(--g800);min-height:100vh}

.header{background:var(--violet);color:#fff;padding:1.25rem 2rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;border-bottom:3px solid var(--orange)}
.header h1{font-family:var(--serif);font-size:1.5rem;font-weight:700;letter-spacing:-.01em;color:#fff}
.header h1 span.accent{color:var(--orange)}
.tag{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--orange);background:rgba(255,107,53,.15);border:1px solid rgba(255,107,53,.4);border-radius:4px;padding:3px 8px}
.live{margin-left:auto;font-size:11px;color:rgba(255,255,255,.6);display:flex;align-items:center;gap:5px}
.dot-live{width:6px;height:6px;border-radius:50%;background:var(--orange);animation:blink 2s infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}

.wrap{max-width:880px;margin:0 auto;padding:2rem 1.5rem}

/* Bandeau chargement */
.load-banner{background:#fff;border:1.5px solid var(--violet);border-radius:var(--r);padding:1.25rem 1.5rem;margin-bottom:1.5rem}
.load-banner h2{font-size:15px;font-weight:500;color:var(--g800);margin-bottom:.5rem}
.load-banner p{font-size:13px;color:var(--g500);line-height:1.6;margin-bottom:.75rem}
.load-bar-bg{width:100%;height:6px;background:var(--g100);border-radius:3px;overflow:hidden}
.load-bar-fill{height:100%;background:var(--orange);border-radius:3px;transition:width .4s ease}
.load-status{font-size:12px;color:var(--g400);margin-top:6px}

/* Recherche */
.search-section{margin-bottom:1.75rem}
.sec-lbl{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--violet);margin-bottom:8px}
.search-wrap{position:relative}
.search-wrap svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:var(--g400);pointer-events:none}
.s-input{width:100%;padding:12px 14px 12px 40px;font-family:var(--sans);font-size:15px;border:1.5px solid var(--g200);border-radius:var(--r);background:#fff;color:var(--g900);outline:none;transition:border-color .15s,box-shadow .15s}
.s-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(27,79,216,.1)}
.s-input::placeholder{color:var(--g400)}
.s-input:disabled{opacity:.5;cursor:not-allowed}
.dropdown{display:none;position:absolute;top:calc(100% + 5px);left:0;right:0;background:#fff;border:1px solid var(--g200);border-radius:var(--r);box-shadow:0 8px 28px rgba(0,0,0,.11);max-height:280px;overflow-y:auto;z-index:50}
.dropdown.open{display:block}
.d-item{padding:10px 15px;font-size:14px;cursor:pointer;border-bottom:1px solid var(--g100);display:flex;justify-content:space-between;align-items:center;transition:background .1s}
.d-item:last-child{border-bottom:none}
.d-item:hover{background:var(--g50)}
.d-dep{font-size:11px;background:var(--g100);border-radius:4px;padding:2px 6px;color:var(--g500)}
.d-hint{padding:11px 15px;font-size:13px;color:var(--g400);font-style:italic}

/* Commune card */
.c-card{background:#fff;border:1.5px solid var(--g200);border-radius:var(--r);padding:1rem 1.25rem;display:flex;align-items:center;gap:1rem;margin-bottom:1.75rem}
.c-icon{width:36px;height:36px;background:var(--orange-light);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.c-icon svg{width:17px;height:17px;color:var(--orange)}
.c-name{font-family:var(--serif);font-size:1.3rem;font-weight:700;color:var(--violet)}
.c-meta{font-size:13px;color:var(--g500);margin-top:2px}
.sieges-box{margin-left:auto;text-align:center;background:var(--violet);border:none;border-radius:var(--rs);padding:8px 15px;min-width:90px;flex-shrink:0}
.sieges-box .n{font-family:var(--serif);font-size:2rem;line-height:1;color:#fff;font-weight:700}
.sieges-box .l{font-size:11px;color:rgba(255,255,255,.7);text-transform:uppercase;letter-spacing:.05em;margin-top:1px}

/* Messages */
.msg{border-radius:var(--rs);padding:10px 14px;font-size:13px;line-height:1.6;margin-bottom:1rem}
.msg-err{background:var(--red-l);border:1px solid #FECACA;color:var(--red)}
.msg-info{background:var(--blue-l);border:1px solid var(--blue-m);color:var(--blue)}
.msg-ok{background:var(--green-l);border:1px solid #BBF7D0;color:var(--green)}
.msg-warn{background:var(--amber-l);border:1px solid #FDE68A;color:var(--amber)}

/* Section label */
.s-title{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--violet);margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--orange)}

/* Table */
table{width:100%;border-collapse:collapse;font-size:13.5px}
thead th{font-size:11px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--g400);padding:6px 9px;border-bottom:1px solid var(--g200);text-align:left}
thead th:not(:first-child){text-align:right}
tbody td{padding:9px 9px;border-bottom:1px solid var(--g100);color:var(--g700)}
tbody td:not(:first-child){text-align:right}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover{background:var(--g50)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:middle;flex-shrink:0}
.nuance{font-size:10px;background:var(--g100);border-radius:3px;padding:1px 5px;color:var(--g500);margin-left:4px;vertical-align:middle}
.q-yes{color:var(--orange);font-weight:600}
.q-no{color:var(--g400)}

/* Listes T2 */
.t2-hint{font-size:13px;color:var(--g900);margin-bottom:14px;line-height:1.55;font-weight:500}


.listes-grid{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}
.l-row{display:grid;grid-template-columns:var(--grid-cols, 1fr 130px 38px);gap:8px;align-items:start}
.l-name{display:flex;align-items:center;gap:8px}
.l-name-inp{flex:1;font-family:var(--sans);font-size:13px;padding:8px 10px;border:1.5px solid var(--g200);border-radius:var(--rs);background:#fff;color:var(--g800);outline:none;transition:border-color .15s}
.l-name-inp:focus{border-color:var(--blue)}
.pct-field{display:flex;flex-direction:column}
.pct-wrap{position:relative}
.pct-inp{width:100%;font-family:var(--sans);font-size:14px;padding:8px 22px 8px 9px;border:1.5px solid var(--g200);border-radius:var(--rs);background:#fff;color:var(--g800);text-align:right;outline:none;transition:border-color .15s}
.pct-inp:focus{border-color:var(--blue)}
.pct-suf{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--g400);pointer-events:none}
.t1-ref{font-size:11px;color:var(--g400);text-align:right;margin-top:2px}
.del-btn{width:38px;height:38px;border:1.5px solid var(--g200);border-radius:var(--rs);background:#fff;cursor:pointer;color:var(--g400);font-size:18px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0}
.del-btn:hover{background:var(--red-l);border-color:#FECACA;color:var(--red)}
.add-btn{width:100%;font-family:var(--sans);font-size:13px;color:var(--g500);background:#fff;border:1.5px dashed var(--g300);border-radius:var(--rs);padding:8px;cursor:pointer;margin-top:4px;transition:all .15s}
.add-btn:hover{background:var(--g50);border-color:var(--g400)}

.total-bar{display:flex;justify-content:space-between;align-items:center;padding:10px 2px;border-top:1px solid var(--g200);margin-top:10px}
.total-bar .lbl{font-size:13px;color:var(--g500)}
.total-bar .val{font-size:14px;font-weight:500}
.v-ok{color:var(--green)}.v-warn{color:var(--red)}.v-neu{color:var(--g600)}

.calc-btn{width:100%;font-family:var(--sans);font-size:15px;font-weight:600;padding:13px;background:var(--violet);color:#fff;border:none;border-radius:var(--r);cursor:pointer;margin-top:1.25rem;margin-bottom:2rem;transition:background .15s,transform .1s;letter-spacing:.01em}
.calc-btn:hover:not(:disabled){background:var(--orange)}
.calc-btn:active:not(:disabled){transform:scale(.99)}
.calc-btn:disabled{opacity:.3;cursor:not-allowed}

/* Résultats */
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:1.5rem}
.metric{background:#fff;border:2px solid var(--violet-light);border-radius:var(--r);padding:14px 16px}
.metric .v{font-family:var(--serif);font-size:2rem;line-height:1;color:var(--violet);font-weight:700}
.metric .l{font-size:12px;color:var(--g400);margin-top:4px;text-transform:uppercase;letter-spacing:.05em}
.badge{display:inline-block;border-radius:4px;padding:2px 9px;font-size:13px;font-weight:500;min-width:32px;text-align:center}
.b-maj{background:var(--blue-l);color:var(--blue);border:1px solid var(--blue-m)}
.b-prop{background:var(--g100);color:var(--g700)}
.b-tot{background:var(--violet);color:#fff;font-size:14px}
.b-zero{color:var(--g400)}

.bars{margin:1.5rem 0}
.bar-row{margin-bottom:12px}
.bar-meta{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.bar-name{font-size:13px;color:var(--g700);flex:1}
.bar-ct{font-size:13px;font-weight:500;color:var(--g800)}
.bar-bg{width:100%;height:8px;background:var(--g100);border-radius:4px;overflow:hidden}
.bar-fill{height:100%;border-radius:4px;transition:width .5s cubic-bezier(.4,0,.2,1)}

details.expl{border:1px solid var(--g200);border-radius:var(--r);overflow:hidden;margin-bottom:2rem}
details.expl summary{padding:13px 16px;font-size:14px;font-weight:500;cursor:pointer;color:var(--g700);list-style:none;display:flex;align-items:center;justify-content:space-between;user-select:none}
details.expl summary::-webkit-details-marker{display:none}
details.expl summary::after{content:'＋';font-size:15px;color:var(--g400)}
details.expl[open] summary::after{content:'－'}
details.expl[open] summary{border-bottom:1px solid var(--g200)}
.expl-#ssm-app {padding:16px;font-size:13.5px;color:var(--g600);line-height:1.75;background:var(--g50)}
.e-step{display:flex;gap:12px;margin-bottom:14px}
.e-step:last-child{margin-bottom:0}
.step-n{width:24px;height:24px;border-radius:50%;background:var(--g200);font-size:12px;font-weight:500;color:var(--g600);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.expl-body strong{color:var(--g800)}

.footer{border-top:1px solid var(--g200);padding-top:1rem;margin-top:1rem;font-size:11px;color:var(--g400);line-height:1.6}
.footer a{color:var(--g500)}

.spinner{display:inline-block;width:14px;height:14px;border:2px solid var(--g200);border-top-color:var(--g500);border-radius:50%;animation:spin .6s linear infinite;margin-right:6px;vertical-align:middle}
.spinner-lg{display:inline-block;width:20px;height:20px;border:2.5px solid var(--g200);border-top-color:var(--g600);border-radius:50%;animation:spin .7s linear infinite;margin-right:8px;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}

@media(max-width:600px){
  .header h1{font-size:1.2rem}
  .wrap{padding:1.5rem 1rem}
  .metrics{grid-template-columns:1fr 1fr}
  .l-row{grid-template-columns:1fr 100px 38px}
}