/* ============================================================
   Back office admin Tookan. Design system repris de la PWA.
   Desktop first, max-width 1100px, responsive mobile.
   ============================================================ */
:root{
  --sky:#0EA5E9;--sky-deep:#0284C7;--navy:#0F172A;--slate:#475569;--slate-light:#64748B;
  --warm:#F97316;--bg:#F1F5F9;--card:#fff;--line:#E2E8F0;--green:#10B981;--red:#EF4444;
  --radius:16px;--shadow:0 8px 30px -12px rgba(15,23,42,.18);
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--navy);-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3{font-family:'Manrope',sans-serif}
a{color:var(--sky-deep);cursor:pointer;text-decoration:none}
.hidden{display:none!important}
.logo-mark svg{display:block;border-radius:9px}

/* SPLASH */
.splash{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;z-index:100}
.spinner{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--sky);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* AUTH */
.screen{min-height:100%}
.auth-wrap{max-width:460px;margin:0 auto;padding:40px 20px}
.brand{display:flex;align-items:center;gap:12px;justify-content:center}
.brand .wm{font-family:'Manrope';font-weight:800;font-size:1.6rem;letter-spacing:-.03em;color:var(--navy)}
.brand .wm b{color:var(--sky-deep)}
.auth-sub{text-align:center;color:var(--slate);margin:12px 0 26px;font-size:.98rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.form h2{font-size:1.35rem;margin-bottom:4px}
.form label{display:block;font-weight:600;font-size:.86rem;margin:18px 0 6px}
.form input{width:100%;padding:13px 14px;border:1.5px solid var(--line);border-radius:11px;font-family:inherit;font-size:1rem;background:#fff;transition:.15s}
.form input:focus{outline:none;border-color:var(--sky-deep);box-shadow:0 0 0 3px rgba(14,165,233,.12)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:15px;border:none;border-radius:12px;font-family:'Manrope';font-weight:800;font-size:1rem;cursor:pointer;transition:.15s;margin-top:20px}
.btn-primary{background:linear-gradient(120deg,var(--sky),var(--sky-deep));color:#fff;box-shadow:0 8px 22px -8px rgba(2,132,199,.6)}
.btn-primary:active{transform:scale(.99)}
.btn-primary:disabled{opacity:.6}
.btn-ghost{background:#fff;border:1.5px solid var(--line);color:var(--slate)}
.msg{margin-top:14px;font-size:.9rem;font-weight:600;text-align:center;display:none}
.msg.err{display:block;color:#B91C1C}
.msg.ok{display:block;color:#15803D}

/* ACCES REFUSE */
.denied-card{text-align:center}
.denied-ic{font-size:2.6rem;margin-bottom:10px}
.denied-card h2{font-size:1.5rem}
.denied-lead{color:var(--slate);margin:8px 0 18px;line-height:1.5}
.denied-boot{text-align:left;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:16px}
.denied-uid-label{font-size:.82rem;font-weight:600;color:var(--slate);margin-bottom:6px}
.denied-uid{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;background:#fff;border:1px solid var(--line);border-radius:8px;padding:9px 11px;word-break:break-all;color:var(--navy)}
.denied-help{font-size:.84rem;color:var(--slate);line-height:1.55;margin-top:12px}
.denied-help code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem;background:#fff;border:1px solid var(--line);border-radius:5px;padding:1px 5px}

/* HEADER ADMIN */
.admin-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:62px;padding:calc(env(safe-area-inset-top) + 11px) 22px 11px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.btn-refresh .i,.btn-logout .i{display:none}
.brand.sm{gap:9px}
.brand.sm .wm{font-family:'Manrope';font-size:1.25rem;font-weight:800;letter-spacing:-.03em}
.brand.sm .wm b{color:var(--sky-deep)}
.hdr-tag{font-family:'Manrope';font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--slate);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px 11px}
.hdr-right{display:flex;align-items:center;gap:12px}
.hdr-email{font-size:.85rem;color:var(--slate);font-weight:600}
.btn-refresh{font-family:'Manrope';font-weight:700;font-size:.85rem;color:var(--sky-deep);background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:8px 13px;cursor:pointer}
.btn-refresh:hover{border-color:var(--sky)}
.btn-refresh:disabled{opacity:.5;cursor:default}
.btn-logout{font-family:'Manrope';font-weight:700;font-size:.85rem;color:var(--slate);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 13px;cursor:pointer}

.dash-main{max-width:1100px;margin:0 auto;padding:22px 20px calc(70px + env(safe-area-inset-bottom))}

/* KPIS */
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:20px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow)}
.kpi .kpi-lab{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--slate-light);font-weight:700}
.kpi .kpi-val{font-family:'Manrope';font-weight:800;font-size:1.7rem;margin-top:6px;line-height:1.1}
.kpi .kpi-sub{font-size:.82rem;color:var(--slate);margin-top:3px}

/* BLOCS */
.block{margin-bottom:20px;padding:20px}
.block-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.block-head h2{font-size:1.2rem}
.block-sub{font-size:.86rem;color:var(--slate);flex-basis:100%;margin-top:2px;line-height:1.45}
.pill-count{display:inline-flex;align-items:center;justify-content:center;background:var(--red);color:#fff;font-family:'Manrope';font-weight:800;font-size:.8rem;min-width:24px;height:24px;border-radius:999px;padding:0 8px;vertical-align:middle}

/* SEGMENTED TOGGLE */
.seg{display:inline-flex;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:3px}
.seg button{border:none;background:none;font-family:'Manrope';font-weight:700;font-size:.82rem;color:var(--slate);padding:7px 13px;border-radius:8px;cursor:pointer}
.seg button.on{background:#fff;color:var(--sky-deep);box-shadow:0 1px 4px rgba(15,23,42,.12)}

/* CARTE */
.map{height:420px;width:100%;border-radius:12px;border:1px solid var(--line);z-index:0}
.map-fallback{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.map-fallback svg{display:block;width:100%;height:auto}
.map-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:.8rem;color:var(--slate);font-weight:600}
.map-legend .lg{display:inline-flex;align-items:center;gap:6px}
.map-legend .dot{width:11px;height:11px;border-radius:50%;flex-shrink:0}

/* TABLES */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl{width:100%;border-collapse:collapse;font-size:.88rem;min-width:640px}
.tbl th{font-family:'Manrope';font-weight:700;font-size:.76rem;text-transform:uppercase;letter-spacing:.03em;color:var(--slate-light);text-align:right;padding:10px 12px;border-bottom:2px solid var(--line);white-space:nowrap;cursor:pointer;user-select:none}
.tbl th:first-child{text-align:left}
.tbl th.sortable:hover{color:var(--sky-deep)}
.tbl th .arrow{font-size:.7rem;margin-left:3px;color:var(--sky-deep)}
.tbl th.hl{color:var(--navy)}
.tbl td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap;color:var(--navy)}
.tbl td:first-child{text-align:left;font-weight:600}
.tbl td.hl{font-family:'Manrope';font-weight:800}
.tbl .co-name .sub{display:block;font-weight:500;font-size:.8rem;color:var(--slate-light)}
.tbl tbody tr:hover,.tbl tbody tr:hover{background:var(--bg)}
.tbl tfoot td{border-top:2px solid var(--line);border-bottom:none;font-family:'Manrope';font-weight:800;color:var(--navy);background:#fff}
.tbl .empty-row td{text-align:center;color:var(--slate-light);font-weight:500;padding:26px}
/* code couleur taux */
.rate{font-family:'Manrope';font-weight:800;padding:3px 9px;border-radius:999px;display:inline-block;min-width:52px;text-align:center}
.rate-hi{background:#DCFCE7;color:#15803D}
.rate-mid{background:#FFEDD5;color:#C2410C}
.rate-lo{background:var(--bg);color:var(--slate-light)}
.rge-tag{font-size:.76rem;font-weight:700;padding:3px 9px;border-radius:999px}
.rge-oui{background:#DCFCE7;color:#15803D}
.rge-cours{background:#FEF3C7;color:#B45309}
.rge-non{background:var(--bg);color:var(--slate-light)}

/* FILTRES */
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.filters input,.filters select{padding:10px 12px;border:1.5px solid var(--line);border-radius:10px;font-family:inherit;font-size:.9rem;background:#fff}
.filters input{flex:1;min-width:180px}
.filters input:focus,.filters select:focus{outline:none;border-color:var(--sky-deep);box-shadow:0 0 0 3px rgba(14,165,233,.12)}

/* FILE NON ATTRIBUES */
.unassigned-list{display:flex;flex-direction:column;gap:18px}
.dep-group{}
.dep-head{font-family:'Manrope';font-weight:800;font-size:.95rem;color:var(--navy);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.dep-head .dep-badge{background:var(--bg);border:1px solid var(--line);color:var(--slate);font-size:.78rem;font-weight:700;border-radius:999px;padding:2px 9px}
.orphan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.orphan{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px}
.orphan .o-name{font-family:'Manrope';font-weight:800;font-size:1rem}
.orphan .o-meta{font-size:.86rem;color:var(--slate);margin-top:3px}
.orphan .o-reason{font-size:.8rem;color:var(--warm);font-weight:600;margin-top:8px}
.orphan .o-time{font-size:.78rem;color:var(--slate-light);margin-top:6px}
.orphan .btn-assign{width:100%;margin-top:12px;padding:11px;border:none;border-radius:10px;font-family:'Manrope';font-weight:800;font-size:.88rem;cursor:pointer;background:linear-gradient(120deg,var(--sky),var(--sky-deep));color:#fff}
.orphan .btn-assign:active{transform:scale(.99)}
.empty-block{text-align:center;padding:36px 20px;color:var(--slate)}
.empty-block .ic{font-size:2.2rem;margin-bottom:10px}

/* OVERLAY REATTRIBUTION */
.overlay{position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.5);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto}
.overlay-panel{background:#fff;border-radius:16px;box-shadow:0 24px 60px -20px rgba(15,23,42,.5);width:100%;max-width:520px;overflow:hidden}
.overlay-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}
.overlay-head h3{font-size:1.15rem}
.overlay-close{border:none;background:var(--bg);width:34px;height:34px;border-radius:50%;font-size:1rem;cursor:pointer;color:var(--slate)}
.overlay-body{padding:18px 20px 22px}
.overlay-panel.wide{max-width:720px}

/* Lignes prestataires cliquables */
.tbl tbody tr.prov-row{cursor:pointer;transition:background .12s}
.tbl tbody tr.prov-row:hover td{background:var(--bg)}

/* Cartes prestataires (mobile) */
.prov-cards{display:flex;flex-direction:column;gap:10px}
.prov-card{border:1px solid var(--line);border-radius:12px;padding:13px 15px;cursor:pointer;background:#fff;transition:background .12s}
.prov-card:active{background:var(--bg)}
.pc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.pc-name{font-family:'Manrope';font-weight:800;font-size:1rem;min-width:0}
.pc-ref{display:block;font-weight:500;font-size:.8rem;color:var(--slate-light)}
.pc-metrics{font-size:.86rem;color:var(--slate);margin-top:7px;line-height:1.5}
.pc-metrics b{color:var(--navy);font-weight:700}

/* Vue detaillee prestataire */
.pv-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:6px}
.pv-kpis>div{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:11px 13px}
.pv-kpis b{display:block;font-family:'Manrope';font-weight:800;font-size:1.25rem;color:var(--navy)}
.pv-kpis span{font-size:.78rem;color:var(--slate-light)}
.pv-h{font-family:'Manrope';font-weight:800;font-size:.95rem;margin:20px 0 10px;color:var(--navy)}
.pv-profil{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;font-size:.9rem}
.pv-profil>div{min-width:0}
.pv-profil>div.full{grid-column:1 / -1}
.pv-profil .l{display:block;font-size:.75rem;color:var(--slate-light);font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:1px}
.pv-leads{display:flex;flex-direction:column;gap:9px}
.pv-lead{border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.pv-lead-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.pv-lead-top b{font-family:'Manrope';font-weight:700;font-size:1rem}
.pv-lead-sub{font-size:.86rem;color:var(--slate);margin-top:3px}
.pv-badge{font-size:.72rem;font-weight:800;font-family:'Manrope';padding:4px 10px;border-radius:999px;white-space:nowrap}
.pv-pause{color:var(--warm);font-weight:700}
.pv-empty{text-align:center;color:var(--slate);padding:24px;background:var(--bg);border-radius:12px}
@media(max-width:560px){ .pv-kpis{grid-template-columns:repeat(2,1fr)} .pv-profil{grid-template-columns:1fr} }
.reassign-note{background:#FFF7ED;border:1px solid #FED7AA;color:#C2410C;font-size:.85rem;font-weight:600;border-radius:10px;padding:11px 13px;margin-bottom:16px;line-height:1.45}
.reassign-lead{font-size:.9rem;color:var(--slate);margin-bottom:14px}
.reassign-lead b{color:var(--navy)}
.cand{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.cand .c-main{flex:1;min-width:0}
.cand .c-name{font-family:'Manrope';font-weight:800;font-size:.96rem}
.cand .c-meta{font-size:.82rem;color:var(--slate);margin-top:2px}
.cand .c-conv{font-size:.82rem;color:var(--slate);margin-top:2px}
.cand .btn-pick{border:none;border-radius:10px;padding:10px 15px;font-family:'Manrope';font-weight:800;font-size:.85rem;cursor:pointer;background:linear-gradient(120deg,var(--sky),var(--sky-deep));color:#fff;flex-shrink:0}
.cand .btn-pick:active{transform:scale(.99)}
.cand-empty{text-align:center;color:var(--slate);padding:24px 10px;line-height:1.5}

/* RESPONSIVE (mobile first : l'admin est surtout utilisé au téléphone) */
@media(max-width:760px){
  .kpis{grid-template-columns:repeat(2,1fr);gap:10px}
  .admin-header{padding-left:14px;padding-right:14px;gap:8px}
  .hdr-email,.hdr-tag{display:none}
  .brand.sm .wm{font-size:1.15rem}
  .dash-main{padding:14px 12px calc(60px + env(safe-area-inset-bottom))}
  .map{height:320px}
  .btn-refresh .t,.btn-logout .t{display:none}
  .btn-refresh .i,.btn-logout .i{display:inline}
  .btn-refresh,.btn-logout{padding:9px 12px;font-size:1.05rem;line-height:1}
  .kpi{padding:14px}
  .kpi .kpi-val{font-size:1.45rem}
  .block{padding:16px 14px}
  .block-head h2{font-size:1.1rem}
}
@media(max-width:380px){
  .kpi .kpi-val{font-size:1.3rem}
}
