main { max-width: 1400px; }
.top a.back { color: var(--mute); text-decoration: none; }
.dirty { color: #ffd166; font-size: 13px; }
.split { display: grid; grid-template-columns: 280px 1fr; gap: 18px; align-items: start; }
@media (max-width: 860px) { .split { grid-template-columns: 1fr; } }
.list { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 8px; display: flex; flex-direction: column; gap: 2px; position: sticky; top: 80px; max-height: calc(100vh - 100px); overflow: auto; }
.list .grp { color: var(--accent); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; padding: 10px 8px 4px; }
.list button { text-align: left; background: transparent; border-color: transparent; display: flex; justify-content: space-between; gap: 8px; }
.list button small { color: var(--mute); }
.list button.sel { background: var(--panel2); border-color: var(--accent); }
.list .add { border: 1px dashed var(--line); margin-top: 6px; justify-content: center; color: var(--accent); }
.form { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; display: flex; flex-direction: column; gap: 16px; }
.form h3 { margin: 0; display: flex; align-items: center; gap: 10px; }
.form h3 .code { font-size: 12px; }
.fgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px 14px; }
.fgrid label, .rtable label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--mute); }
.fgrid input, .fgrid select { width: 100%; }
fieldset { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; margin: 0; }
legend { color: var(--accent); font-weight: 800; font-size: 13px; padding: 0 6px; }
.rtable { display: grid; grid-template-columns: 110px 90px 90px; gap: 6px 10px; align-items: center; font-size: 13px; }
.rtable .h { color: var(--mute); font-size: 11px; text-transform: uppercase; }
.rtable input { width: 100%; padding: 6px 8px; }
.ranges { display: flex; gap: 18px; flex-wrap: wrap; }
.checks { display: flex; flex-wrap: wrap; gap: 8px; }
.checks label { display: flex; align-items: center; gap: 6px; background: var(--panel2); border: 1px solid var(--line); padding: 5px 10px; border-radius: 99px; font-size: 13px; cursor: pointer; color: var(--ink); }
.checks input { accent-color: var(--accent); }
.formactions { display: flex; gap: 10px; flex-wrap: wrap; }
.preview { font-size: 13px; color: var(--mute); }
table.t { width: 100%; border-collapse: collapse; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; font-size: 14px; }
table.t th, table.t td { padding: 8px 10px; border-bottom: 1px solid var(--line); text-align: left; }
table.t th { color: var(--mute); font-size: 12px; text-transform: uppercase; }
table.t input[type=number] { width: 110px; padding: 5px 8px; }
textarea { width: 100%; min-height: 60vh; background: #120e0b; color: var(--ink); border: 1px solid var(--line); border-radius: 12px; padding: 12px; font: 12px/1.5 'JetBrains Mono', monospace; }
.help { color: var(--mute); font-size: 13px; margin: 0 0 12px; }
.form label.full { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--mute); }

/* IA, atelier, tournois */
.t.bots input[type=number] { width: 78px; }
.t.bots input.bo { width: 46px; }
.t.bots td { vertical-align: top; }
.t .row { display: flex; gap: 4px; flex-wrap: wrap; align-items: center; }
.formactions input { min-width: 260px; }
textarea[data-t="lines"] { min-height: 120px; font-family: inherit; }
/* sons des espèces */
fieldset.sounds .snd { display: flex; align-items: center; gap: 8px; padding: 2px 0; }
fieldset.sounds .snd span { flex: 1; font-size: 13px; }
fieldset.sounds .row { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
fieldset.sounds select { max-width: 200px; }
label.upload { cursor: pointer; padding: 6px 10px; border: 1px dashed var(--line, #3a2e24); border-radius: 8px; font-size: 12px; }
details.soundlib { margin: 0 0 16px; }
details.soundlib summary { cursor: pointer; color: var(--accent, #f2a541); font-weight: 700; margin-bottom: 8px; }
a.btnlink { padding: 9px 14px; border-radius: 10px; border: 1px solid var(--line, #3a2e24); text-decoration: none; color: inherit; }
/* traductions (noms anglais / espagnols) */
.trbox { border-style: dashed; }
.trbox input::placeholder { font-style: italic; opacity: .55; }
.trmini { display: flex; gap: 6px; align-items: center; margin-top: 4px; }
.trmini span { font-size: 10px; font-weight: 800; color: var(--mute, #a99); width: 20px; }
.trmini input { padding: 4px 8px; font-size: 12px; }
.trmini input::placeholder { font-style: italic; opacity: .55; }
/* fiche joueur */
.linkbtn { background: none; border: 0; padding: 0; color: var(--text, #eee); font: inherit; cursor: pointer; text-align: left; }
.linkbtn:hover { color: var(--accent, #f2a541); text-decoration: underline; }
table.players tr.sel td { background: #f2a54114; }
.psheet { margin-top: 18px; }
.tscroll { overflow-x: auto; }
table.dogs { font-size: 13px; }
table.dogs td, table.dogs th { padding: 6px 8px; white-space: nowrap; vertical-align: top; }
table.dogs tr.dead { opacity: .6; }
table.dogs .pow { color: var(--accent, #f2a541); font-weight: 800; }
.swatch { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; border: 1px solid #0006; }
.hpbar { height: 4px; background: #0005; border-radius: 3px; margin-top: 4px; width: 80px; }
.hpbar i { display: block; height: 100%; background: #6ac46a; border-radius: 3px; }
.tag { display: inline-block; padding: 1px 7px; margin: 1px 2px; border-radius: 99px; font-size: 11px; background: #ffffff14; }
.tag.pos { background: #2e7d3233; color: #9be29b; }
.tag.neg { background: #c6282833; color: #ff9a9a; }
.st { font-size: 12px; font-weight: 700; }
.st.ok { color: #9be29b; } .st.busy { color: #f2a541; } .st.dead { color: #ff9a9a; } .st.sale { color: #8ec5ff; } .st.train { color: #c9a3ff; }
.pshead { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.pshead h3 { margin: 0; }
.psbtns { display: flex; gap: 8px; }
.psbtns button { white-space: nowrap; }
