:root{
  --accent:#baff0b; --bg:#000; --fg:#fff; --input:#979797;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:var(--bg); color:var(--fg);
  font-family:"Cal Sans", system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial;
}
h1{font-weight:800; letter-spacing:.3px; margin:24px 0}
h2{font-weight:700; margin:0 0 12px}
.lead{opacity:.9; margin-top:-8px}

.container{max-width:1000px; margin:0 auto; padding:24px}
.container.narrow{max-width:640px}
.home{display:flex; flex-direction:column; align-items:center; padding-top:60px}
.home h1{font-size:48px; color:#fff}
.highlight{color:var(--accent)}
.home-buttons{display:flex; gap:24px; margin-top:24px; flex-wrap:wrap; justify-content:center}
.pill{
  background:var(--accent); color:#000; text-decoration:none; font-weight:800;
  padding:14px 18px; border-radius:8px; display:inline-block
}

/* Header (caché sur login + accueil) */
body:not(.no-header) #app-header{
  position:sticky; top:0; background:#000; border-bottom:1px solid #111; z-index:10;
}
.nav{
  display:flex; gap:12px; align-items:center; justify-content:space-between;
  padding:12px 16px;
}
.nav .left, .nav .right{display:flex; gap:8px; align-items:center}
.nav a, .nav button{
  color:#000; background:var(--accent); text-decoration:none; border:none;
  font-weight:800; padding:8px 12px; border-radius:8px; cursor:pointer
}
.nav .ghost{background:transparent; color:#fff; border:1px solid #333}

/* Cards & form */
.card{
  border:2px solid var(--accent); border-radius:18px; padding:16px; background:#000;
}
.form label{display:block; font-weight:600; margin:8px 0}
input, textarea, select{
  width:100%; padding:12px 14px; border-radius:10px; border:1px solid var(--input);
  background:#111; color:#fff; outline:none;
}
.btn{padding:12px 16px; border-radius:10px; border:none; cursor:pointer; font-weight:800}
.btn.accent{background:var(--accent); color:#000}
.btn.ghost{background:transparent; color:#fff; border:1px solid #333}
.error{color:#ff5a5a}

/* Lists */
.stack{display:grid; gap:16px; margin-top:20px}
.task, .pun{
  border:2px solid var(--accent); border-radius:22px; padding:16px; position:relative; background:#000;
}
.task h3, .pun h3{margin:0 0 6px}
.badge{display:inline-flex; gap:6px}
.badge .dot{
  width:32px; height:32px; border-radius:50%; display:grid; place-items:center;
  font-weight:800; background:#111; border:2px solid var(--accent)
}
.badge .dot.on{background:var(--accent); color:#000}
.counter{
  position:absolute; right:16px; top:12px; font-size:24px; font-weight:800
}
.actions{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px}
.bar{margin-top:16px; display:flex; gap:12px; align-items:center}

/* Responsive touches */
@media (max-width:760px){
  .home h1{font-size:36px}
  .counter{position:static; margin-top:8px}
}

/* Masquer header quand on ajoute .no-header sur body */
.no-header #app-header{display:none}
