
 :root{
  color-scheme: dark;
  --bg:#161C1C;
  --panel:#202A2A;
  --ink:#E7EEEC;
  --muted:#9AABA8;
  --line:#354241;
  --accent:#5FBFAE;
  --accent-soft:#26413C;
  --danger:#F2867C;
  --input-bg:#1B2424;
  --pr1:#3F7A4F;
  --pr2:#4C8FD1;
  --pr3:#D19A3E;
  --pr4:#E06B36;
  --pr5:#E2544A;
}
html.dark{
  color-scheme: dark;
  --bg:#161C1C;
  --panel:#202A2A;
  --ink:#E7EEEC;
  --muted:#9AABA8;
  --line:#354241;
  --accent:#5FBFAE;
  --accent-soft:#26413C;
  --danger:#F2867C;
  --input-bg:#1B2424;
  --pr1:#3F7A4F;
  --pr2:#4C8FD1;
  --pr3:#D19A3E;
  --pr4:#E06B36;
  --pr5:#E2544A;
}
html.dark .btn-mini.save,
html.dark button.primary,
html.dark #copyBtn,
html.dark #exportBtn{ color:#0F1615; }
*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:"Segoe UI", system-ui, -apple-system, sans-serif;
  font-size:15px;
  line-height:1.45;
}
.mono{
  font-family:"Cascadia Code","Consolas",ui-monospace,monospace;
}
header{
  position:sticky;
  top:0;
  z-index:10;
  background:var(--panel);
  border-bottom:1px solid var(--line);
  padding:14px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
header h1{
  font-size:16px;
  margin:0;
  letter-spacing:.02em;
}
header .eyebrow{
  font-family:"Cascadia Code","Consolas",monospace;
  font-size:11px;
  color:var(--accent);
  text-transform:uppercase;
  letter-spacing:.12em;
  margin:0 0 2px 0;
}
#resetBtn{
  background:none;
  border:1px solid var(--line);
  color:var(--muted);
  padding:6px 12px;
  border-radius:6px;
  font-size:12.5px;
  cursor:pointer;
}
#resetBtn:hover{ border-color:var(--muted); color:var(--ink);}

.header-title{
  display:flex;
  align-items:center;
  gap:10px;
}
#themeToggleBtn{
  background:none;
  border:1px solid var(--line);
  color:var(--muted);
  width:30px;
  height:30px;
  border-radius:7px;
  font-size:14px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
#themeToggleBtn:hover{ border-color:var(--muted); color:var(--ink); }

.gauge-wrap{
  display:flex;
  align-items:center;
  gap:10px;
}
.gauge{
  display:flex;
  gap:4px;
}
.gauge span{
  width:34px; height:8px;
  border-radius:3px;
  background:var(--line);
  display:block;
  transition:background .25s ease, box-shadow .25s ease;
}
.gauge span[data-p="1"].on{ background:var(--pr1); box-shadow:0 0 0 2px rgba(63,122,79,.15);}
.gauge span[data-p="2"].on{ background:var(--pr2); box-shadow:0 0 0 2px rgba(47,93,138,.15);}
.gauge span[data-p="3"].on{ background:var(--pr3); box-shadow:0 0 0 2px rgba(183,121,31,.15);}
.gauge span[data-p="4"].on{ background:var(--pr4); box-shadow:0 0 0 2px rgba(194,65,12,.15);}
.gauge span[data-p="5"].on{ background:var(--pr5); box-shadow:0 0 0 2px rgba(179,38,30,.15);}
#prioLabel{
  font-family:"Cascadia Code","Consolas",monospace;
  font-size:13px;
  font-weight:600;
  white-space:nowrap;
}
#prioSub{
  font-size:11.5px;
  color:var(--muted);
  display:block;
  font-family:"Segoe UI",sans-serif;
  font-weight:400;
}

main{
  max-width:1180px;
  margin:0 auto;
  padding:24px;
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:20px;
}
.col-left-top{ grid-column:1; grid-row:1; }
.col-left-bottom{ grid-column:1; grid-row:2; }
.col-right{
  grid-column:2;
  grid-row:1 / span 2;
  align-self:start;
  position:sticky;
  top:82px;
}
@media (max-width:880px){
  main{grid-template-columns:1fr;}
  .col-left-top, .col-left-bottom, .col-right{
    grid-column:1;
    grid-row:auto;
    position:static;
  }
}
.panel{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:10px;
  padding:20px;
}
.panel h2{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--accent);
  font-family:"Cascadia Code","Consolas",monospace;
  margin:0 0 14px 0;
}
textarea{
  width:100%;
  min-height:110px;
  resize:vertical;
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px 12px;
  font-family:inherit;
  font-size:14px;
  color:var(--ink);
  background:var(--input-bg);
}
textarea:focus, select:focus, input:focus{
  outline:2px solid var(--accent);
  outline-offset:1px;
}
button.primary{
  margin-top:10px;
  background:var(--accent);
  color:#fff;
  border:none;
  padding:9px 16px;
  border-radius:7px;
  font-size:13.5px;
  cursor:pointer;
  font-weight:600;
}
button.primary:hover{ background:#235a51; }

#results{ margin-top:18px; }
.cat{
  margin-bottom:16px;
  padding-top:14px;
  border-top:1px dashed var(--line);
}
.cat:first-child{ border-top:none; padding-top:0;}
.cat h3{
  font-size:13px;
  margin:0 0 8px 0;
  color:var(--ink);
  display:flex;
  align-items:center;
  gap:8px;
}
.cat h3 .tag{
  font-family:"Cascadia Code","Consolas",monospace;
  font-size:10.5px;
  color:var(--accent);
  background:var(--accent-soft);
  padding:2px 7px;
  border-radius:4px;
}
.qline{
  padding:6px 0;
  font-size:14px;
}
.qline label{
  display:flex;
  align-items:flex-start;
  gap:8px;
}
.qline input[type=checkbox]{ margin-top:3px; flex-shrink:0; }
.answer-slot{
  display:none;
  margin:6px 0 2px 24px;
}
.answer-slot.show{ display:block; }
.answer-slot.flat{ margin:8px 0 0 0; }
.answer-slot input[type=text]{
  width:100%;
  border:1px solid var(--line);
  border-radius:6px;
  padding:6px 9px;
  font-size:13px;
  font-family:inherit;
  color:var(--ink);
  background:var(--input-bg);
}
.yesno{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}
.yesno button{
  border:1px solid var(--line);
  background:var(--input-bg);
  color:var(--muted);
  padding:5px 14px;
  border-radius:6px;
  font-size:12.5px;
  cursor:pointer;
}
.yesno button.active{ background:var(--accent); border-color:var(--accent); color:#fff; }
.empty-hint{
  color:var(--muted);
  font-size:13.5px;
}

.admin-item{
  padding:12px 0;
  border-top:1px dashed var(--line);
}
.admin-item:first-child{ border-top:none; padding-top:0;}
.admin-item label.q{
  display:block;
  font-size:14px;
  font-weight:600;
  margin-bottom:6px;
}
.required-mark{
  color:var(--danger);
  font-weight:700;
}
.admin-item input.invalid,
.admin-item select.invalid{
  border-color:var(--danger);
  background:#FDF1F0;
}
.autre-input{
  margin-top:8px;
}
.admin-item input[type=text]{
  width:100%;
  border:1px solid var(--line);
  border-radius:6px;
  padding:7px 9px;
  font-size:13.5px;
  font-family:inherit;
  color:var(--ink);
  background:var(--input-bg);
}
.admin-item select{
  width:100%;
  border:1px solid var(--line);
  border-radius:6px;
  padding:7px 9px;
  font-size:13.5px;
  font-family:inherit;
  color:var(--ink);
  background:var(--panel);
}
.footer-panel{
  grid-column:1 / -1;
}
#summary{
  width:100%;
  min-height:150px;
  font-family:"Cascadia Code","Consolas",monospace;
  font-size:12.5px;
  border:1px solid var(--line);
  border-radius:8px;
  padding:12px;
  background:var(--input-bg);
  color:var(--ink);
}
.footer-actions{
  display:flex;
  gap:10px;
  margin-top:10px;
  align-items:center;
}
#copyBtn{
  background:var(--accent);
  color:#fff;
  border:none;
  padding:8px 14px;
  border-radius:7px;
  font-size:13px;
  cursor:pointer;
}
#copyBtn:hover{ opacity:.85; }
#copyState{
  font-size:12.5px;
  color:var(--accent);
}
.note{
  color:var(--muted);
  font-size:12px;
  margin-top:14px;
}

.tabs{
  max-width:1180px;
  margin:0 auto;
  padding:14px 24px 0 24px;
  display:flex;
  gap:8px;
}
.tab-btn{
  background:none;
  border:1px solid var(--line);
  border-bottom:none;
  color:var(--muted);
  padding:8px 16px;
  border-radius:8px 8px 0 0;
  font-size:13px;
  cursor:pointer;
  font-family:inherit;
}
.tab-btn.active{
  background:var(--panel);
  color:var(--accent);
  font-weight:600;
}
.tab-btn:hover:not(.active){ color:var(--ink); }

.admin-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin-bottom:10px;
}
@media (max-width:880px){
  .admin-grid{ grid-template-columns:1fr; }
}
.admin-card{
  border:1px solid var(--line);
  border-radius:8px;
  padding:16px;
  background:var(--input-bg);
}
.admin-card h3{
  font-size:13.5px;
  margin:0 0 12px 0;
}
.mini-label{
  display:block;
  font-size:12px;
  color:var(--muted);
  margin:10px 0 4px 0;
}
.mini-label:first-of-type{ margin-top:0; }
.admin-card input[type=text], .admin-card select,
.admin-edit-form input[type=text], .admin-edit-form select{
  width:100%;
  border:1px solid var(--line);
  border-radius:6px;
  padding:7px 9px;
  font-size:13.5px;
  font-family:inherit;
  color:var(--ink);
  background:var(--input-bg);
}
.feedback{
  font-size:12.5px;
  color:var(--accent);
  min-height:16px;
  margin:8px 0 0 0;
}
.feedback.error{ color:var(--danger); }

.admin-cat-block{
  border:1px solid var(--line);
  border-radius:8px;
  padding:14px 16px;
  margin-bottom:12px;
  background:var(--input-bg);
}
.admin-cat-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.admin-cat-header h4{
  margin:0;
  font-size:14px;
  display:flex;
  align-items:center;
  gap:8px;
}
.admin-cat-header h4 .sep{
  color:var(--line);
  font-weight:400;
}
.admin-cat-actions, .admin-q-actions{
  display:flex;
  gap:6px;
  flex-shrink:0;
}
.btn-mini{
  border:1px solid var(--line);
  background:var(--panel);
  color:var(--muted);
  padding:4px 10px;
  border-radius:6px;
  font-size:12px;
  cursor:pointer;
  font-family:inherit;
}
.btn-mini:hover{ color:var(--ink); border-color:var(--muted); }
.btn-mini.danger{ color:var(--danger); border-color:#EBC7C4; }
.btn-mini.danger:hover{ background:#FDF1F0; }
.btn-mini.save{ color:#fff; background:var(--accent); border-color:var(--accent); }
.btn-mini.save:hover{ background:#235a51; }

.admin-questions{
  margin-top:10px;
  padding-top:10px;
  border-top:1px dashed var(--line);
}
.admin-q-row{
  padding:8px 0;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.admin-q-row + .admin-q-row{ border-top:1px dashed var(--line); }
.admin-q-text{
  font-size:13.5px;
  flex:1;
  min-width:220px;
}
.qtype-tag{
  font-family:"Cascadia Code","Consolas",monospace;
  font-size:10px;
  color:var(--muted);
  background:var(--accent-soft);
  padding:1px 6px;
  border-radius:4px;
  margin-left:6px;
}
.admin-edit-form{
  width:100%;
  margin-top:10px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:6px;
  background:var(--accent-soft);
}
.admin-edit-form .mini-label{ color:var(--ink); }
.admin-edit-actions{
  display:flex;
  gap:8px;
  margin-top:10px;
}
#admin-view-category{
  display:block;
  max-width:360px;
  width:100%;
  border:1px solid var(--line);
  border-radius:6px;
  padding:7px 9px;
  font-size:13.5px;
  font-family:inherit;
  color:var(--ink);
  background:var(--input-bg);
  margin-bottom:14px;
}
.empty-cat-hint{
  color:var(--muted);
  font-size:12.5px;
  font-style:italic;
  padding:6px 0;
}
.admin-top-bar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
  padding-bottom:16px;
  margin-bottom:16px;
  border-bottom:1px solid var(--line);
}
.export-block{
  display:flex;
  align-items:center;
  gap:12px;
  flex-shrink:0;
}
#exportBtn{
  background:var(--accent);
  color:#fff;
  border:none;
  padding:9px 16px;
  border-radius:7px;
  font-size:13px;
  cursor:pointer;
  font-weight:600;
}
#exportBtn:hover{ opacity:.85; }
#exportState{
  font-size:12.5px;
  color:var(--accent);
}
