/* QG Report - CSS ultra léger, lisibilité ++ (sans Bootstrap) */

:root{
  --bg:#f3f5f9;
  --card:#d4d4d4;
  --text:#0f172a;
  --muted:#667085;
  --border:#d0d5dd;
  --border2:#98a2b3;
  --primary:#cc0000;
  --danger:#dc2626;
  --focus:rgba(37,99,235,.22);
}

*{box-sizing:border-box;}
html,body{height:100%;}
body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;}

.page{padding:10px;}
.container{max-width:520px;margin:0 auto;}

.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:16px;
  box-shadow:0 12px 30px rgba(15,23,42,.08);
  overflow:hidden;
}

.card-head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:12px;
  padding:12px 12px 10px;
  background:#fafbff;
  border-bottom:1px solid var(--border);
}

.h1{font-weight:900;font-size:1.02rem;margin:0;}
.muted{color:var(--muted);font-size:.9rem;margin-top:2px;}
.link{color:var(--primary);text-decoration:none;font-weight:800;font-size:.9rem;}

.tabs{display:flex;gap:8px;padding:10px;}
.tab{
  flex:1;text-align:center;text-decoration:none;
  padding:10px 8px;border-radius:14px;
  border:2px solid var(--border);
  color:var(--text);font-weight:900;font-size:.92rem;background:#fff;
}
.tab.active{
  border-color:var(--primary);
  box-shadow:0 0 0 4px var(--focus);
}

.card-body{padding:12px;}
.section-title{font-weight:950;margin:2px 0 10px;font-size:1rem;}

.label{display:block;font-weight:950;margin:12px 0 6px;font-size:.92rem;}

.input{
  width:100%;
  height:52px;
  border-radius:14px;
  border:2px solid var(--border2);
  background:#fff;
  padding:10px 12px;
  font-size:18px;
  outline:none;
}
.input:focus{border-color:var(--primary);box-shadow:0 0 0 5px var(--focus);}

.textarea{height:auto;min-height:90px;font-size:16px;padding-top:12px;}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px;}
@media(max-width:420px){ .grid2{grid-template-columns:1fr;} }

.btn{
  width:100%;
  height:52px;
  border-radius:999px;
  border:0;
  font-weight:950;
  font-size:1rem;
  margin-top:14px;
  cursor:pointer;
}
.btn-primary{background:var(--primary);color:#fff;}
.btn-danger{background:var(--danger);color:#fff;}
.btn:active{transform:scale(.99);}

/* Flash */
.flash{
  margin:10px auto;
  max-width:520px;
  padding:12px 12px;
  border-radius:14px;
  font-weight:900;
  transition:opacity .25s ease;
  border:2px solid transparent;
}
.flash-success{background:#ecfdf3;border-color:#16a34a;color:#065f46;}
.flash-danger{background:#fef2f2;border-color:#dc2626;color:#7f1d1d;}
.flash-list{margin:8px 0 0 18px;font-weight:700;}

/* Radios "gros rond" (vrais radios) */
.choices{display:grid;gap:10px;margin-bottom:10px;}
.choice{display:block;cursor:pointer;}
.choice input{position:absolute;opacity:0;pointer-events:none;}

.choice-box{
  display:flex;align-items:center;gap:12px;
  border:2px solid var(--border2);
  border-radius:16px;
  padding:12px 12px;
  background:#fff;
}

.choice-dot{
  width:28px;height:28px;border-radius:999px;
  border:3px solid var(--border2);
  position:relative;
  flex:0 0 auto;
  background:#fff;
}

/* Highlight quand checked (sans :has) */
.choice input:checked + .choice-box{
  border-color:var(--primary);
  box-shadow:0 0 0 5px var(--focus);
}
.choice input:checked + .choice-box .choice-dot{
  border-color:var(--primary);
}
.choice input:checked + .choice-box .choice-dot::after{
  content:"";
  position:absolute;
  inset:6px;
  border-radius:999px;
  background:var(--primary);
}

.choice-text{display:flex;flex-direction:column;line-height:1.15;}
.choice-title{font-weight:950;font-size:1.02rem;}
.choice-sub{color:var(--muted);font-size:.84rem;margin-top:4px;}
/* Totaux (tendance + résultats) */
.totals{
  margin-top:12px;
  border:1px solid var(--border);
  border-radius:14px;
  background:#fff;
  padding:10px 10px;
}
.totals-row{
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:6px 2px;
  border-top:1px dashed var(--border);
}
.totals-row:first-child{border-top:0;}
.totals-label{font-weight:900;}
.totals-value{font-weight:950;}
.totals-strong .totals-label,
.totals-strong .totals-value{font-size:1.05rem;}

.totals-alert{
  margin-top:10px;
  border:2px solid var(--danger);
  background:#fef2f2;
  color:#7f1d1d;
  border-radius:12px;
  padding:10px 10px;
  font-weight:900;
}
.btn-disabled{opacity:.6;}
