:root{
  --bg:#0d1117; --bg2:#161b22; --bg3:#1c2128; --bg4:#22272e;
  --mint:#00e5a0; --mint2:#00b37a;
  --text:#f0f0ff; --text2:#c8c8e8;
  --border:rgba(255,255,255,.08);
  --danger:#ff5c5c; --amber:#fbbf24;
}
*{box-sizing:border-box}
body{
  margin:0; font-family:'Space Grotesk',system-ui,sans-serif;
  background:var(--bg); color:var(--text); line-height:1.5;
}
a{color:var(--mint); text-decoration:none}
.wrap{max-width:1000px; margin:0 auto; padding:32px 20px}
.card{
  background:var(--bg2); border:1px solid var(--border); border-radius:16px;
  padding:24px; margin-bottom:20px;
}
h1{font-size:1.6rem; margin:0 0 6px}
h2{font-size:1.15rem; margin:0 0 14px}
.sub{color:var(--text2); margin:0 0 24px}
label{display:block; font-size:.85rem; color:var(--text2); margin:14px 0 6px}
input[type=text],input[type=email],input[type=tel],input[type=password],select,textarea{
  width:100%; background:var(--bg3); border:1px solid var(--border); border-radius:10px;
  padding:11px 14px; color:var(--text); font-family:inherit; font-size:.95rem;
}
textarea{min-height:100px; resize:vertical}
.check-row{display:flex; align-items:center; gap:10px; margin:12px 0}
.check-row input{width:auto}
.btn{
  display:inline-flex; align-items:center; gap:8px; justify-content:center;
  background:var(--mint); color:#00291c; font-weight:700; border:none; border-radius:10px;
  padding:12px 20px; cursor:pointer; font-size:.95rem; font-family:inherit;
}
.btn:hover{background:var(--mint2); color:#fff}
.btn-outline{background:none; border:1px solid var(--border); color:var(--text)}
.btn-outline:hover{border-color:var(--mint); color:var(--mint)}
.btn-sm{padding:7px 12px; font-size:.85rem; border-radius:8px}
.error{background:rgba(255,92,92,.12); border:1px solid rgba(255,92,92,.3); color:#ff9d9d; padding:12px 16px; border-radius:10px; margin-bottom:16px}
.success{background:rgba(0,229,160,.1); border:1px solid rgba(0,229,160,.3); color:var(--mint); padding:12px 16px; border-radius:10px; margin-bottom:16px}

/* Onglets */
.tabs{display:flex; gap:6px; border-bottom:1px solid var(--border); margin-bottom:24px; flex-wrap:wrap}
.tab{padding:10px 16px; color:var(--text2); border-bottom:2px solid transparent; cursor:pointer; font-size:.9rem; font-weight:600}
.tab.active{color:var(--mint); border-color:var(--mint)}
.tab:hover{color:var(--text)}

/* Liste tickets/commandes/abonnements */
.item-row{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  padding:14px 16px; background:var(--bg3); border-radius:12px; margin-bottom:10px;
}
.item-row .meta{color:var(--text2); font-size:.82rem}
.badge{padding:3px 10px; border-radius:20px; font-size:.75rem; font-weight:700}
.badge-nouveau{background:rgba(255,179,64,.15); color:var(--amber)}
.badge-en_cours{background:rgba(0,153,255,.15); color:#5fb4ff}
.badge-attente_client{background:rgba(255,92,92,.12); color:#ff9d9d}
.badge-termine{background:rgba(0,229,160,.12); color:var(--mint)}
.badge-annule{background:rgba(255,255,255,.08); color:var(--text2)}

/* Fil de suivi */
.timeline{list-style:none; padding:0; margin:0}
.timeline li{padding:10px 0 10px 20px; border-left:2px solid var(--border); position:relative; font-size:.88rem; color:var(--text2)}
.timeline li::before{content:''; position:absolute; left:-5px; top:14px; width:8px; height:8px; border-radius:50%; background:var(--mint)}
.timeline li .date{display:block; font-size:.75rem; opacity:.6; margin-top:2px}

/* Tâches / devis */
.tache-row{display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid var(--border)}
.tache-row:last-child{border-bottom:none}
.tache-row.fait .desc{text-decoration:line-through; opacity:.55}
.tache-cout{font-weight:700; color:var(--mint); white-space:nowrap; margin-left:14px}
.total-row{display:flex; justify-content:space-between; padding-top:14px; margin-top:6px; border-top:1px solid var(--border); font-weight:700}

.topbar{display:flex; justify-content:space-between; align-items:center; margin-bottom:24px}
.topbar a{color:var(--text2); font-size:.85rem}
