/* ── ESPACE CLIENT — GK Groupe inc (s'ajoute à style.css) ── */
[hidden]{display:none !important;}
.ec-body{background:var(--paper);min-height:100vh;display:flex;flex-direction:column;}
.ec-header .logo{height:34px;}
.ec-header-right{display:flex;align-items:center;gap:22px;}
.ec-back{font-size:14px;font-weight:600;color:var(--ink-soft);}
.ec-back:hover{color:var(--blue);}
.ec-main section{padding:0;}
.ec-main{flex:1;width:100%;max-width:1120px;margin:0 auto;padding:110px 6vw 60px;}
.ec-footer{text-align:center;font-size:12.5px;color:var(--mono-grey);padding:26px 16px;border-top:1px solid var(--line);background:#fff;}
.ec-footer a:hover{color:var(--blue);}

.ec-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow-soft);}
.ec-card h2{font-size:26px;margin-bottom:10px;}
.ec-card h3{font-size:18px;margin-bottom:6px;}
.ec-card > .ec-muted{margin-bottom:18px;}
.ec-card-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:10px;}
.ec-narrow{max-width:460px;margin:40px auto;}
.ec-muted{color:var(--mono-grey);font-size:14px;line-height:1.5;}
.ec-small{font-size:12.5px;}
.ec-mono{font-family:'JetBrains Mono',monospace;font-weight:500;}
.ec-link{color:var(--blue);font-weight:600;}
.ec-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.ec-form{margin-top:18px;}
.ec-form .form-submit:disabled{opacity:.6;cursor:wait;transform:none;}
.ec-msg{font-size:13.5px;margin-top:12px;color:#12813f;font-weight:600;min-height:1em;}
.ec-msg.ec-error{color:#d12c2c;}
.ec-textbtn{background:none;border:none;color:var(--blue);font-weight:600;font-size:13.5px;cursor:pointer;padding:6px 0;}
.ec-textbtn:hover{text-decoration:underline;}
.ec-textbtn.ec-danger{color:#d12c2c;}
.ec-form .ec-textbtn{display:block;margin:10px auto 0;}

/* Chargement */
.ec-spinner{width:38px;height:38px;margin:120px auto;border-radius:50%;border:3px solid var(--line);border-top-color:var(--blue);animation:ec-spin .8s linear infinite;}
@keyframes ec-spin{to{transform:rotate(360deg);}}

/* ── Connexion ── */
.ec-auth{display:grid;grid-template-columns:1fr 440px;gap:40px;align-items:center;min-height:calc(100vh - 260px);}
.ec-auth-brand{
  background:linear-gradient(135deg,#0d1f4a 0%,#1a3880 100%);border-radius:var(--radius);
  padding:60px 44px;color:#fff;display:flex;flex-direction:column;align-items:center;gap:44px;position:relative;overflow:hidden;
}
.ec-auth-brand::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.07),transparent 60%);}
.gkx-logo.gkx-static{opacity:1;animation:gkx-in 1s cubic-bezier(.2,.8,.2,1) both;}
.gkx-static .gkx-express{animation:gkx-wipe .7s cubic-bezier(.6,0,.2,1) .75s forwards;}
.ec-perks{list-style:none;display:flex;flex-direction:column;gap:14px;max-width:360px;position:relative;}
.ec-perks li{font-size:15px;line-height:1.5;color:rgba(255,255,255,.8);padding-left:26px;position:relative;}
.ec-perks li::before{content:"";position:absolute;left:0;top:7px;width:12px;height:3px;border-radius:3px;background:var(--blue);box-shadow:0 5px 0 rgba(22,87,255,.5);}
.ec-perks b{color:#fff;}

.ec-tabs{display:flex;gap:4px;background:var(--paper);padding:4px;border-radius:11px;}
.ec-tab{flex:1;background:none;border:none;padding:10px 12px;border-radius:8px;font-weight:700;font-size:13.5px;color:var(--mono-grey);cursor:pointer;white-space:nowrap;transition:background .2s,color .2s;}
.ec-tab:hover{color:var(--ink);}
.ec-tab.active{background:#fff;color:var(--ink);box-shadow:0 2px 8px -2px rgba(10,14,26,.15);}

.ec-divider{display:flex;align-items:center;gap:12px;margin:22px 0 16px;color:var(--mono-grey);font-size:12px;text-transform:uppercase;letter-spacing:.08em;}
.ec-divider::before,.ec-divider::after{content:"";flex:1;height:1px;background:var(--line);}
.ec-track-inline label{display:block;font-size:12px;font-weight:700;letter-spacing:.03em;color:#444;text-transform:uppercase;margin-bottom:6px;}
.ec-inline{display:flex;gap:8px;}
.ec-inline input{flex:1;min-width:0;padding:11px 13px;border:1.5px solid var(--line);border-radius:9px;font-size:14px;font-family:'Inter',sans-serif;background:#fafbff;outline:none;}
.ec-inline input:focus{border-color:var(--blue);}
.ec-inline .call-btn{flex-shrink:0;}
#track-public-result:not(:empty),#track-result:not(:empty){margin-top:16px;}

/* ── Tableau de bord ── */
.ec-hello{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:24px;}
.ec-hello h1{font-size:clamp(28px,4vw,40px);margin-top:10px;}
.ec-tabs-main{margin-bottom:24px;overflow-x:auto;}
.ec-tabs-main .ec-tab{flex:0 1 auto;padding:10px 18px;}
.ec-grid2{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start;}

.ec-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px;}
.ec-stat{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;text-align:left;cursor:pointer;
  display:flex;flex-direction:column;gap:6px;font-size:13.5px;color:var(--mono-grey);font-weight:600;
  transition:transform .2s,border-color .2s,box-shadow .2s;
}
.ec-stat:hover{transform:translateY(-3px);border-color:var(--blue);box-shadow:0 14px 30px -14px rgba(22,87,255,.35);}
.ec-stat-num{font-family:'Space Grotesk',sans-serif;font-size:36px;font-weight:700;color:var(--blue);line-height:1;}

.ec-list{display:flex;flex-direction:column;}
.ec-item{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);}
.ec-item:last-child{border-bottom:none;}
.ec-item-main{display:flex;flex-direction:column;gap:3px;min-width:0;}
.ec-item-main strong{font-size:15px;}
.ec-item-side{display:flex;align-items:center;gap:12px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;}
.ec-amount{font-family:'Space Grotesk',sans-serif;font-weight:700;}
.ec-empty{color:var(--mono-grey);font-size:14px;padding:18px 0;}

.ec-badge{font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap;}
.ec-ok{background:#e3f7ea;color:#12813f;}
.ec-warn{background:#fff4dc;color:#9a6400;}
.ec-bad{background:#fde7e7;color:#c02626;}
.ec-info{background:var(--blue-tint);color:var(--blue-deep);}
.ec-muted.ec-badge,.ec-badge.ec-muted{background:var(--paper);color:var(--mono-grey);font-size:11.5px;}

.ec-chips{display:flex;gap:6px;flex-wrap:wrap;}
.ec-chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-size:12.5px;font-weight:600;cursor:pointer;color:var(--ink-soft);}
.ec-chip.active,.ec-chip:hover{background:var(--blue);border-color:var(--blue);color:#fff;}

/* Réponse de GK Groupe affichée au client (et rappel côté admin) */
.ec-reply{margin-top:8px;background:var(--blue-tint);border-left:3px solid var(--blue);border-radius:0 8px 8px 0;padding:8px 12px;font-size:13.5px;line-height:1.45;color:var(--ink-soft);white-space:pre-line;}
.ec-reply b{display:block;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--blue-deep);margin-bottom:2px;white-space:normal;}

/* ── Admin ── */
.adm-item{border:1px solid var(--line);border-radius:12px;padding:18px;margin-top:14px;background:#fafbff;}
.adm-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px;}
.adm-head strong{font-size:16px;margin-right:6px;}
.adm-date{font-family:'Space Grotesk',sans-serif;font-weight:700;color:var(--blue);}
.adm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 18px;font-size:14px;}
.adm-grid > div{min-width:0;overflow-wrap:anywhere;}
.adm-k{display:block;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mono-grey);margin-bottom:2px;}
.adm-details{margin-top:12px;font-size:14px;color:var(--ink-soft);font-style:italic;}
.adm-reply{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);}
.adm-reply textarea{width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:9px;font:14px 'Inter',sans-serif;background:#fff;resize:vertical;outline:none;}
.adm-reply textarea:focus{border-color:var(--blue);}
.adm-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.adm-btn{border:1.5px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer;transition:background .2s,border-color .2s,color .2s;}
.adm-btn:hover{border-color:var(--ink);}
.adm-btn:disabled{opacity:.5;cursor:wait;}
.adm-ok{background:#12813f;border-color:#12813f;color:#fff;}
.adm-ok:hover{background:#0e6a33;border-color:#0e6a33;}
.adm-bad{color:#c02626;border-color:#f2c4c4;}
.adm-bad:hover{background:#c02626;border-color:#c02626;color:#fff;}
.adm-item .ec-msg:empty{display:none;}
.adm-bulk{margin:4px 0 2px;}
#adm-list .ec-spinner{margin:40px auto;}
.ec-toast{
  position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:300;max-width:calc(100% - 32px);
  background:var(--ink);color:#fff;border-radius:12px;padding:14px 18px;font-size:14px;font-weight:600;
  display:flex;gap:14px;align-items:center;flex-wrap:wrap;box-shadow:0 20px 40px -12px rgba(10,14,26,.5);
  animation:ec-toast-in .3s ease both;
}
.ec-toast a{color:#9db8ff;text-decoration:underline;}
@keyframes ec-toast-in{from{opacity:0;transform:translate(-50%,12px);}}

/* ── Soumissions ── */
.soum-ask-card{margin-bottom:22px;border-color:var(--blue);}
.soum-ask-actions{display:flex;align-items:center;gap:16px;}
.soum-ask-actions .form-submit{width:auto;padding:14px 28px;margin-top:0;}
.ec-form .soum-ask-actions .ec-textbtn{display:inline-block;margin:0;}
.soum-desc{white-space:pre-line;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.adm-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:4px;border-radius:999px;background:var(--blue);color:#fff;font-size:11px;}
.adm-tab-count[hidden]{display:none;}
.as-editor{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);}
.as-table-wrap{overflow-x:auto;}
.as-lines{width:100%;border-collapse:collapse;min-width:560px;}
.as-lines th{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--mono-grey);text-align:left;padding:0 6px 6px;}
.as-lines td{padding:4px 6px 4px 0;vertical-align:middle;}
.as-lines th:nth-child(2),.as-lines td:nth-child(2){width:80px;}
.as-lines th:nth-child(3),.as-lines td:nth-child(3){width:120px;}
.as-lines th:nth-child(4),.as-lines td:nth-child(4){width:110px;text-align:right;}
.as-lines th:nth-child(5),.as-lines td:nth-child(5){width:34px;}
.as-lines input{width:100%;padding:9px 10px;border:1.5px solid var(--line);border-radius:8px;font:14px 'Inter',sans-serif;background:#fff;outline:none;}
.as-lines input:focus{border-color:var(--blue);}
.as-amount{font-family:'Space Grotesk',sans-serif;font-weight:700;white-space:nowrap;}
.as-del{width:30px;height:30px;border-radius:50%;border:none;background:none;color:var(--mono-grey);font-size:20px;line-height:1;cursor:pointer;}
.as-del:hover{background:#fde7e7;color:#c02626;}
.as-bottom{display:grid;grid-template-columns:1fr 260px;gap:24px;margin-top:12px;align-items:start;}
.as-opts .fg{margin-bottom:10px;}
.as-opts textarea{width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:9px;font:14px 'Inter',sans-serif;background:#fff;resize:vertical;outline:none;}
.as-check{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;margin-bottom:12px;cursor:pointer;}
.as-check input{width:17px;height:17px;accent-color:var(--blue);}
.as-totals{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;font-size:14px;}
.as-totals div{display:flex;justify-content:space-between;gap:12px;}
.as-totals span{color:var(--mono-grey);}
.as-totals .as-grand{border-top:1px solid var(--line);padding-top:8px;margin-top:2px;font-size:16px;}
.as-totals .as-grand span{color:var(--ink);font-weight:700;}
.as-totals .as-grand b{color:var(--blue);font-family:'Space Grotesk',sans-serif;}
.as-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px dashed var(--line);}
#as-list .ec-msg:empty{display:none;}

/* ── Factures + réservation créée par l'admin ── */
.af-hint{margin:-2px 0 6px;}
.adm-toolbar{display:flex;justify-content:flex-end;margin-bottom:16px;}
.adm-new-card{margin-bottom:22px;border-color:var(--blue);}
.frow3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.frow3[hidden]{display:none;}

/* ── Square : paiement et agenda ── */
.ec-rdv{font-size:13.5px;font-weight:600;color:var(--blue-deep);margin-top:2px;}
.ec-pay{background:var(--blue);color:#fff;border-radius:999px;padding:7px 16px;font-size:13px;font-weight:700;white-space:nowrap;box-shadow:0 8px 18px -8px rgba(22,87,255,.6);}
.ec-pay:hover{background:var(--blue-deep);}
.sq-box{margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;}
.sq-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;}
.sq-inline{display:flex;gap:8px;align-items:center;}
.sq-inline input{width:120px;padding:8px 10px;border:1.5px solid var(--line);border-radius:9px;font:14px 'Inter',sans-serif;outline:none;}
.sq-inline input:focus{border-color:var(--blue);}
.sq-box .ec-msg:empty{display:none;}
.sq-day{font-family:'Space Grotesk',sans-serif;font-size:14px;color:var(--blue-deep);margin:18px 0 2px;padding-bottom:6px;border-bottom:2px solid var(--blue-tint);}
.sq-day:first-child{margin-top:4px;}
.sq-day::first-letter{text-transform:uppercase;}
.sq-note{white-space:pre-line;}
.sq-src{font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:6px;}
.sq-src-site{background:var(--blue-tint);color:var(--blue-deep);}
.sq-src-square{background:#f1f1f1;color:#333;}
#sq-agenda .ec-spinner{margin:40px auto;}
.sq-tools{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.sq-tools .as-check{margin-bottom:0;font-size:13.5px;}

/* Suivi de livraison */
.ec-track{border:1px solid var(--line);border-radius:12px;padding:18px;margin-top:12px;background:#fafbff;}
.ec-track-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;}
.ec-track-head > div{display:flex;flex-direction:column;gap:2px;}
.ec-steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:12px;}
.ec-step{position:relative;text-align:center;font-size:11.5px;font-weight:600;color:var(--mono-grey);padding-top:22px;}
.ec-step span{position:absolute;top:0;left:50%;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#fff;border:2px solid var(--line);z-index:1;}
.ec-step::before{content:"";position:absolute;top:6px;left:-50%;width:100%;height:2px;background:var(--line);}
.ec-step:first-child::before{display:none;}
.ec-step.done,.ec-step.current{color:var(--ink);}
.ec-step.done span{background:var(--blue);border-color:var(--blue);}
.ec-step.done::before,.ec-step.current::before{background:var(--blue);}
.ec-step.current span{background:#fff;border-color:var(--blue);box-shadow:0 0 0 4px rgba(22,87,255,.2);animation:ec-ping 1.6s ease-in-out infinite;}
@keyframes ec-ping{50%{box-shadow:0 0 0 7px rgba(22,87,255,.08);}}
.ec-history{margin-top:10px;font-size:13px;}
.ec-history summary{cursor:pointer;color:var(--blue);font-weight:600;}
.ec-history ul{list-style:none;margin-top:8px;display:flex;flex-direction:column;gap:6px;}

@media(max-width:900px){
  .ec-body{padding-bottom:0;}
  .ec-header .call-btn{display:flex;}
  .ec-auth{grid-template-columns:1fr;min-height:0;}
  .ec-auth-brand{padding:40px 24px;gap:30px;}
  .ec-grid2{grid-template-columns:1fr;}
  .adm-grid{grid-template-columns:1fr 1fr;}
  .as-bottom{grid-template-columns:1fr;}
  .frow3{grid-template-columns:1fr;}
}
@media(max-width:600px){
  .ec-main{padding:92px 16px 40px;}
  .ec-back{display:none;}
  .ec-auth-brand{padding:30px 20px 34px;}
  .ec-perks{display:none;}
  .ec-card{padding:20px 16px;}
  .ec-stats{grid-template-columns:1fr;}
  .ec-stat{flex-direction:row;align-items:center;gap:14px;}
  .ec-item{flex-direction:column;align-items:flex-start;}
  .ec-item-side{justify-content:flex-start;}
  .adm-grid{grid-template-columns:1fr;}
  .sq-inline{flex-wrap:wrap;}
  .adm-item{padding:14px;}
}
@media (prefers-reduced-motion: reduce){
  .gkx-logo.gkx-static,.gkx-static .gkx-express{animation:none;clip-path:none;}
  .ec-step.current span,.ec-spinner{animation:none;}
}
