.v4-pill.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}
.v4-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--accent);color:#fff;font-size:10px;font-weight:700;margin-left:6px;vertical-align:middle}
.thumb .v4-badge{position:absolute;right:6px;bottom:6px;margin:0;box-shadow:0 1px 4px rgba(0,0,0,.45)}
.fx-empty{height:100%;min-height:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:13px;text-align:center;padding:24px}
.fx-empty b{color:var(--ink);font-size:15px}
.fx-kv{grid-template-columns:110px minmax(0,1fr)!important;font-size:12px}
.fx-kv>span:first-child{color:var(--muted)}
.fx-kv .mono{font-size:11.5px;overflow-wrap:anywhere}
.v4-face-crop{cursor:pointer}
.v4-face-crop img{width:100%;height:100%;object-fit:cover;display:block}
.v4-face-crop.on{outline:2px solid var(--accent);outline-offset:1px}
.v4-face-name{position:absolute;left:0;right:0;top:0;padding:2px 4px;font-size:9.5px;background:rgba(0,0,0,.6);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v4-paint-slot.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.chip .x[data-action]{cursor:pointer;margin-left:4px;opacity:.6}
.chip .x[data-action]:hover{opacity:1}
.fx-modal{width:min(680px,92vw);max-height:78vh;display:flex;flex-direction:column;overflow:hidden}
.fx-head{display:flex;align-items:center;gap:10px;padding:16px 18px;border-bottom:1px solid var(--border);font-size:16px}
.fx-body{flex:1;min-height:0;overflow-y:auto;padding:8px}
.fx-foot{display:flex;align-items:center;gap:8px;padding:12px 18px;border-top:1px solid var(--border)}
.fx-hint{font-size:11px;color:var(--muted)}
.fx-row{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 10px;border-radius:var(--r-ctl);cursor:pointer;font-size:12.5px}
.fx-row:hover{background:var(--panel-up)}
.fx-row.static{cursor:default}
.fx-when{font-size:11px;color:var(--muted)}
.fx-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fx-n{font-size:11px;color:var(--accent)}
.fx-tag{font-size:10.5px;font-family:var(--mono);padding:2px 7px;border-radius:99px;background:var(--panel-up);color:var(--ink-muted)}
.fx-tag.ok{background:var(--accent-soft);color:var(--accent)}
.fx-tag.err{color:var(--warn)}
.fx-rowacts{display:flex;gap:6px;justify-content:flex-end;align-items:center}
.fx-tmplrow{grid-template-columns:180px 100px minmax(0,1fr) 70px!important}
.fx-csvrow{grid-template-columns:minmax(0,1fr) auto!important}
.fx-form{display:flex;flex-direction:column;gap:12px;max-width:520px}
.fx-danger{background:var(--warn)!important;border-color:var(--warn)!important}


/* Réglages › Mots-clés : dossiers repliables + étiquettes (kwlib.js) */
.kws-box { border: 1px solid var(--border); border-radius: var(--r-soft); background: var(--panel); overflow: hidden; }
.kws-bar { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--border); }
.kws-band { display: flex; align-items: center; gap: 6px; padding: 8px 12px; border-bottom: 1px solid var(--border); background: var(--accent-soft); flex-wrap: wrap; }
.kws-band { min-height: 45px; }
.kws-band.idle { background: transparent; }
.kws-hint { font-size: 12px; color: var(--muted); }
.kws-band-n { font-size: 13px; color: var(--ink); }
.kws-band-n b { color: var(--accent); }
.kws-band .btn { height: 28px; }
.kws-danger:hover { color: var(--danger, #d0533a); }
.kws-tree { max-height: 460px; overflow-y: auto; padding: 6px 8px 10px; }
.kws-row { display: flex; align-items: center; gap: 4px; min-height: 30px; padding: 0 8px 0 calc(4px + var(--d) * 20px); border-radius: 6px; font-size: 13px; color: var(--ink); border: 1px solid transparent; }
.kws-row[hidden], .kws-leaves[hidden], .kws-rootlbl[hidden], .kws-chip[hidden] { display: none; }
.kws-row:hover { background: var(--panel-up); }
.kws-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; cursor: pointer; padding: 4px 0; user-select: none; }
.kws-row.sel { background: var(--accent-soft); border-color: var(--accent); }
.kws-row.sel .kws-name, .kws-row.hit .kws-name { color: var(--accent); }
.kws-car { width: 20px; height: 20px; border: 0; background: transparent; color: var(--muted); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; transform: rotate(-90deg); transition: transform .12s; flex-shrink: 0; }
.kws-car.open { transform: none; }
.kws-car svg { width: 12px; height: 12px; }
.kws-cnt { font-family: var(--mono); font-size: 11px; color: var(--muted); font-weight: 400; }
.kws-rootlbl { margin: 10px 0 2px; padding: 4px 8px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .6px; color: var(--muted); border-radius: 6px; border: 1px dashed transparent; }
.kws-leaves { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 8px 8px calc(28px + var(--d) * 20px); border-radius: 6px; border: 1px dashed transparent; }
.kws-chip { display: inline-flex; align-items: center; height: var(--chip-h); padding: 0 10px; border: 1px solid var(--border-up); border-radius: var(--r-chip); background: var(--panel-up); color: var(--ink); font-size: 12.5px; cursor: pointer; user-select: none; white-space: nowrap; }
.kws-chip:hover { border-color: var(--accent); }
.kws-chip.hit { color: var(--accent); }
.kws-chip.sel { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.kws-chip.editing, .kws-name.editing { padding: 0 4px; cursor: text; }
.kws-chip input, .kws-name input { height: 22px; border: 0; outline: 0; background: transparent; color: inherit; font: inherit; padding: 0 4px; min-width: 6ch; }
.kws-chip.editing { background: var(--field); color: var(--ink); border-color: var(--accent); }
.kws-name input { background: var(--field); border: 1px solid var(--accent); border-radius: 5px; }
.kws-newchip { border-style: dashed; border-color: var(--accent); background: var(--field); padding: 0 4px; cursor: text; }
.kws-newchip input { width: 18ch; }
.kws-tree.dragging .kws-leaves, .kws-tree.dragging .kws-rootlbl { border-color: var(--border-up); }
.kws-tree .drop { border-color: var(--accent) !important; background: var(--accent-soft); }
.kws-chip.drop { border-style: dashed; }
.kws-none { padding: 14px; font-size: 12px; color: var(--muted); }

/* Onglet Mots-clés du panneau */
.kw-tablink { border: 0; background: transparent; color: var(--accent); font: inherit; font-size: 12px; cursor: pointer; padding: 0 2px; }
.kw-tablink:hover { text-decoration: underline; }
.kwt-search { position: relative; }
.kwt-search.open .kw-add { border-color: var(--accent); }
.kwt-drop { position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 40; background: var(--panel-up); border: 1px solid var(--border-up); border-radius: var(--r-soft); box-shadow: 0 14px 34px rgba(0,0,0,.28); display: flex; flex-direction: column; overflow: hidden; }
.kwt-list { max-height: min(420px, 55vh); overflow-y: auto; padding: 4px; display: flex; flex-direction: column; }
.kwt-list .dirf-opt.hi { background: var(--accent-soft); }
.kwt-help { padding: 6px 10px; border-top: 1px solid var(--border); font-size: 11px; color: var(--muted); }
.kwt-help b { color: var(--ink-muted); font-weight: 600; }
.kwt-pc { font-family: var(--mono); font-size: 10.5px; color: var(--accent); margin-left: 2px; }

/* Mots-clés choisis : champ texte avec étiquettes (comme le Complément) */
.well.kwf { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; min-height: var(--field-h); height: auto; padding: 6px 8px; cursor: text; }
.kwf:focus-within { border-color: var(--accent); }
.kwf .ctag { margin: 0; cursor: grab; }
.kwf .ctag.partial { border-style: dashed; color: var(--ink-muted); }
.kwf .kwp { font-style: normal; color: var(--accent); font-weight: 700; padding: 0 3px 0 0; cursor: pointer; }
.kwf-pc { font-family: var(--mono); font-size: 10px; color: var(--accent); margin-left: 3px; }
.kwf-in { flex: 1; min-width: 90px; height: 24px; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; font-size: 13px; padding: 0 2px; }
.kwf-in::placeholder { color: var(--muted); }

/* Réglages › Mots-clés : deux colonnes (dossiers à gauche, mots-clés à droite) */
.kws-split { display: grid; grid-template-columns: minmax(200px, 38%) 1fr; min-height: 380px; }
.kws-split > .kws-tree { max-height: 520px; }
.kws-dirs { border-right: 1px solid var(--border); }
.kws-dirs .kws-row { cursor: pointer; }
.kws-dirs .kws-row.cur { background: var(--accent-soft); }
.kws-dirs .kws-row.cur .kws-name { color: var(--accent); }
.kws-pick .kws-pickname { font-weight: 500; font-style: italic; }
.kws-pick[data-kws-pick="*"] { margin-bottom: 2px; }
.kws-car-sp { width: 20px; flex: none; }
.kws-wh { display: flex; align-items: baseline; gap: 8px; padding: 6px 8px 8px; font-size: 13px; }
.kws-wh b { font-weight: 600; }
.kws-leaves.kws-flat { padding: 4px 8px 8px; margin: 0; border-color: transparent; min-height: 60px; align-content: flex-start; }
.kws-sub { margin-left: 6px; font-size: 10px; color: var(--muted); }
.kws-chip.sel .kws-sub { color: inherit; opacity: .8; }
.kws-words .kws-none { padding: 6px 0; }
@media (max-width: 640px) { .kws-split { grid-template-columns: 1fr; } .kws-dirs { border-right: 0; border-bottom: 1px solid var(--border); max-height: 220px; } }
/* journal : détail des champs écrits ou relus */
.fx-log .fx-ch{grid-column:2 / -1;display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--ink-muted);margin-top:-4px}
.fx-log .fx-ch b{font-weight:600;color:var(--ink);margin-right:4px}
.fx-log .fx-ch s{color:var(--muted)}
.fx-log .fx-ch i{color:var(--faint)}
.fx-tag.sync{background:var(--warn-soft);color:var(--warn)}

/* déménagement legendmaker.vercel.app → vignett.app (demenagement.js, 01/11/2026) */
.vg-move { position: fixed; inset: 0; z-index: 10050; display: flex; align-items: center; justify-content: center; padding: 16px;
  background: color-mix(in srgb, var(--bg, #0f0d0a) 72%, transparent); backdrop-filter: blur(4px); }
.vg-card { width: min(460px, 100%); max-height: calc(100vh - 32px); overflow: auto; padding: 26px 28px 20px; color: var(--ink); }
.vg-brand { display: flex; align-items: center; gap: 14px; }
.vg-kicker { font-size: 12px; color: var(--muted); letter-spacing: .02em; }
.vg-name { font-size: 26px; font-weight: 700; letter-spacing: -.5px; line-height: 1.1; font-family: var(--display, var(--sans)); }
.vg-t { font-size: 17px; font-weight: 600; margin: 20px 0 6px; }
.vg-p { margin: 0 0 14px; line-height: 1.5; color: var(--ink-2, var(--ink)); }
.vg-acts { display: flex; gap: 10px; flex-wrap: wrap; margin: 4px 0 12px; }
.vg-acts .btn { justify-content: center; text-decoration: none; }
.vg-acts .btn.primary:first-child { flex: 1 1 auto; padding-top: 10px; padding-bottom: 10px; font-size: 15px; }
.vg-sub { font-size: 12.5px; color: var(--muted); margin: 2px 0 6px; }
.vg-list { margin: 0 0 12px; padding: 0; list-style: none; display: grid; gap: 4px; font-size: 13.5px; }
.vg-list li { padding-left: 16px; position: relative; }
.vg-list li::before { content: ''; position: absolute; left: 3px; top: .55em; width: 6px; height: 6px; border-radius: 2px; background: var(--accent); }
.vg-note { font-size: 12.5px; color: var(--muted); margin: 0 0 10px; line-height: 1.45; }
.vg-foot { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; border-top: 1px solid var(--border, rgba(127,127,127,.2)); padding-top: 10px; margin-top: 4px; }
.vg-foot .vg-link:only-child { margin-left: auto; }
.vg-link { background: none; border: 0; padding: 4px 0; color: var(--muted); font: inherit; font-size: 12.5px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.vg-link:hover { color: var(--ink); }
