/* ===== Admin Wat Solar ===== */
:root{
  --blue:#1E5F8C;--blue-d:#164764;--blue-dd:#0F3049;--green:#4C9A2A;--green-d:#3B7A20;
  --sun:#F5A623;--ink:#1F2937;--soft:#64748B;--paper:#F4F6F3;--card:#fff;--line:#E3E7E0;
  --radius:14px;--shadow:0 8px 30px -16px rgba(15,48,73,.35);
}
*{box-sizing:border-box}
body{margin:0;font-family:"Inter",system-ui,Segoe UI,Roboto,sans-serif;background:var(--paper);color:var(--ink);line-height:1.55}
h1,h2,h3{font-family:"Sora","Inter",sans-serif;color:var(--blue-dd);margin:0}
a{color:var(--blue);text-decoration:none}
img{display:block;max-width:100%}
input,select,textarea{font:inherit}
:focus-visible{outline:2px solid var(--sun);outline-offset:1px}

/* header */
.ah{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  background:#fff;border-bottom:1px solid var(--line);padding:.6rem clamp(1rem,4vw,2rem);box-shadow:var(--shadow)}
.ah__brand{display:flex;align-items:center;gap:.6rem;font-family:"Sora";font-weight:700;color:var(--blue-dd)}
.ah__brand img{height:34px;width:auto}
.ah__nav{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}
.ah__nav a{padding:.5rem .85rem;border-radius:8px;font-weight:500;font-size:.94rem;color:var(--ink)}
.ah__nav a:hover{background:var(--paper);color:var(--blue)}
.ah__out{color:#c0392b!important}

.aw{max-width:1100px;margin:0 auto;padding:clamp(1.2rem,4vw,2.4rem) clamp(1rem,4vw,2rem)}
.page-title{font-size:clamp(1.5rem,4vw,2rem);margin:.2rem 0 1.2rem}
.page-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.4rem}
.muted{color:var(--soft)}
.flash{background:#e7f6e3;border:1px solid #bfe6b3;color:var(--green-d);padding:.8rem 1.1rem;border-radius:10px;margin-bottom:1.2rem;font-weight:500}

/* buttons */
.btn-primary{background:var(--blue);color:#fff;border:0;padding:.7rem 1.3rem;border-radius:10px;font-weight:600;cursor:pointer;transition:background .2s,transform .2s}
.btn-primary:hover{background:var(--blue-d);transform:translateY(-1px)}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn-ghost{background:#fff;border:1.5px solid var(--line);color:var(--ink);padding:.6rem 1.1rem;border-radius:10px;font-weight:600;cursor:pointer}
.btn-ghost:hover{border-color:var(--blue);color:var(--blue)}
.btn-link{color:var(--blue);font-weight:600}
.btn-danger-link{background:none;border:0;color:#c0392b;font-weight:600;cursor:pointer;padding:0;font-size:.94rem}
.btn-danger-link:hover{text-decoration:underline}

/* kpis */
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.6rem}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform .2s}
.kpi:hover{transform:translateY(-3px)}
.kpi__n{font-family:"Sora";font-size:2.2rem;font-weight:800;color:var(--blue)}
.kpi__l{color:var(--soft);font-weight:500}
.kpi--accent .kpi__n{color:var(--green-d)}

/* panels & tables */
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 1.5rem;box-shadow:var(--shadow);margin-bottom:1.4rem}
.panel__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}
.panel h2{font-size:1.2rem;margin-bottom:.8rem}
.split{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}
.tbl{width:100%;border-collapse:collapse;font-size:.94rem}
.tbl th{text-align:left;color:var(--soft);font-weight:600;padding:.5rem .6rem;border-bottom:2px solid var(--line)}
.tbl td{padding:.65rem .6rem;border-bottom:1px solid var(--line)}
.tag{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.78rem;font-weight:700}
.tag--new{background:#fef0d9;color:#a86200}
.tag--done{background:#e5efe1;color:var(--green-d)}

/* forms */
.form-grid{display:grid;gap:.9rem}
.form-grid label,.login label{display:grid;gap:.35rem;font-weight:600;font-size:.9rem}
.form-grid input,.form-grid textarea,.form-grid select,.login input{padding:.7rem .85rem;border:1.5px solid var(--line);border-radius:10px;background:#fff;width:100%}
.form-grid input:focus,.form-grid textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(30,95,140,.12)}
.check{display:flex!important;flex-direction:row!important;align-items:center;gap:.5rem;font-weight:500}
.check input{width:auto}
.dropzone{display:grid;place-items:center;text-align:center;border:2px dashed var(--line);border-radius:12px;padding:2rem 1rem;cursor:pointer;transition:border-color .2s,background .2s;color:var(--soft)}
.dropzone:hover,.dropzone.is-over{border-color:var(--blue);background:#eef5fa;color:var(--blue)}
.dropzone__txt small{opacity:.8}

/* Photo membre : cliquer / glisser / coller */
.mm-photo-lbl{font-weight:600;font-size:.9rem}
.photo-drop{position:relative;display:grid;place-items:center;text-align:center;min-height:160px;border:2px dashed var(--line);border-radius:12px;cursor:pointer;overflow:hidden;background:var(--paper);transition:border-color .2s,background .2s}
.photo-drop:hover,.photo-drop.over{border-color:var(--blue);background:#eef5fa}
.photo-drop.over{border-style:solid}
.photo-drop img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.photo-drop__hint{display:grid;gap:.3rem;justify-items:center;color:var(--soft);padding:1rem;font-size:.9rem}
.photo-drop__hint b{color:var(--ink)}
.photo-drop__ico{font-size:1.9rem}
.photo-drop__hint small{opacity:.8}
.photo-drop__clear{position:absolute;top:.5rem;right:.5rem;z-index:2;width:30px;height:30px;border-radius:50%;background:rgba(15,48,73,.78);color:#fff;font-size:.85rem;display:grid;place-items:center}
.photo-drop__clear:hover{background:rgba(15,48,73,.95)}

/* galleries list */
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.2rem}
.gal-item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.gal-item__thumb{position:relative;display:block;aspect-ratio:4/3;background:#eef1ec}
.gal-item__thumb img{width:100%;height:100%;object-fit:cover}
.gal-item__empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--soft);font-size:.9rem}
.gal-item__badge{position:absolute;top:.5rem;left:.5rem;background:rgba(15,48,73,.85);color:#fff;font-size:.72rem;padding:.2rem .55rem;border-radius:6px}
.gal-item__body{padding:.9rem 1rem 1.1rem}
.gal-item__body h3{font-size:1.05rem;margin-bottom:.2rem}
.gal-item__actions{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.7rem}

/* photo grid (tri) */
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.9rem}
.ph{position:relative;margin:0;border-radius:10px;overflow:hidden;aspect-ratio:1;background:#eef1ec;cursor:grab;border:2px solid transparent}
.ph.is-cover{border-color:var(--sun)}
.ph img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.ph.dragging{opacity:.4;cursor:grabbing}
.ph figcaption{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:.4rem;opacity:0;background:linear-gradient(180deg,rgba(15,48,73,.55),transparent 40%,rgba(15,48,73,.55));transition:opacity .2s}
.ph:hover figcaption{opacity:1}
.ph__cover-tag{align-self:flex-start;background:var(--sun);color:#3a2c00;font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:6px}
.ph__tools{display:flex;gap:.35rem;justify-content:flex-end}
.ph__btn{width:32px;height:32px;border-radius:8px;background:rgba(255,255,255,.92);border:0;cursor:pointer;font-size:.9rem;line-height:1}
.ph__btn:hover{background:#fff}
.ph__btn--del:hover{background:#ffe0e0}

/* leads */
.tabs{display:flex;gap:.5rem;margin-bottom:1.2rem;flex-wrap:wrap}
.tab{padding:.5rem 1rem;border-radius:999px;background:#fff;border:1.5px solid var(--line);font-weight:600;color:var(--soft)}
.tab.is-active{background:var(--blue);color:#fff;border-color:var(--blue)}
.tab b{background:var(--sun);color:#3a2c00;border-radius:999px;padding:0 .45rem;margin-left:.3rem;font-size:.8rem}
.leads{display:grid;gap:1rem}
.lead{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--radius);padding:1.1rem 1.3rem;box-shadow:var(--shadow);display:flex;justify-content:space-between;gap:1.2rem;flex-wrap:wrap}
.lead--new{border-left-color:var(--sun)}
.lead__top{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:.5rem}
.lead__top h3{font-size:1.12rem}
.lead__top time{color:var(--soft);font-size:.85rem}
.lead__meta{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem;font-size:.94rem}
.chip{background:var(--paper);border:1px solid var(--line);padding:.15rem .6rem;border-radius:999px;font-size:.82rem;color:var(--ink)}
.lead__msg{background:var(--paper);border-radius:10px;padding:.7rem .9rem;margin:.3rem 0 0;font-size:.95rem}
.lead__actions{display:flex;flex-direction:column;gap:.5rem;align-items:flex-end;justify-content:center}

/* modal */
.modal{border:0;border-radius:16px;padding:0;box-shadow:0 40px 90px -30px rgba(15,48,73,.5);max-width:440px;width:92vw}
.modal::backdrop{background:rgba(15,48,73,.45);backdrop-filter:blur(3px)}
.modal form{padding:1.6rem;display:grid;gap:.9rem}
.modal h2{font-size:1.3rem}
.modal label{display:grid;gap:.35rem;font-weight:600;font-size:.9rem}
.modal input,.modal select,.modal textarea{padding:.7rem .85rem;border:1.5px solid var(--line);border-radius:10px;background:#fff;font:inherit;width:100%;box-sizing:border-box}
.modal textarea{resize:vertical;min-height:110px;line-height:1.5}
.modal input:focus,.modal select:focus,.modal textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(30,95,140,.12)}
.modal label.jm-check{display:flex;flex-direction:row;align-items:center;gap:.55rem;font-weight:600}
.modal label.jm-check input{width:auto;padding:0}
.modal__actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:.4rem}

/* login */
.login-body{display:grid;place-items:center;min-height:100vh;background:linear-gradient(135deg,#0F3049,#1E5F8C)}
.login{background:#fff;border-radius:20px;padding:2.4rem;width:min(400px,92vw);box-shadow:0 40px 90px -30px rgba(0,0,0,.5);display:grid;gap:1rem;text-align:center}
.login__logo{height:64px;width:auto;margin:0 auto}
.login h1{font-size:1.4rem}
.login label{text-align:left}
.login .btn-primary{margin-top:.4rem}
.login__error{background:#ffe6e6;color:#c0392b;padding:.6rem;border-radius:8px;font-weight:600;margin:0}
.login__back{color:var(--soft);font-size:.9rem;margin-top:.4rem}

@media (max-width:720px){
  .kpis{grid-template-columns:1fr}
  .split{grid-template-columns:1fr}
  .lead__actions{flex-direction:row;align-items:center}
  .tbl{font-size:.85rem}
}
