/* ===== Target Sourcing — interface (charte Target Sourcing, refonte 2026) ===== */
:root{
  /* Charte Target Sourcing (spécification de la refonte, § 2) */
  --navy:#14213D; --navy-2:#22305A; --navy-tint:#E8EBF2;
  --orange:#E4572E; --orange-light:#F07A52; --orange-text:#C2410C; --orange-tint:#FDECE6; --orange-wash:#FFF7F4;
  --bg:#F3F4F6; --card:#FFFFFF; --ink:#14213D; --muted:#4B5563; --line:#D1D5DB; --line-strong:#6B7280;
  --ok:#15803D; --ok-bg:#E3F1E8; --warn:#B45309; --warn-bg:#F7ECDD; --danger:#B91C1C; --danger-bg:#F6E1E1; --info:#1D4ED8; --info-bg:#E1E8FA;
  --r-sm:6px; --r-md:10px; --r-lg:20px; --r-full:999px;
  --sh:0 1px 2px rgba(20,33,61,.06),0 4px 16px rgba(20,33,61,.06);
  --sh-pop:0 8px 32px rgba(20,33,61,.16);
  --focus:0 0 0 2px #FFFFFF,0 0 0 4px #E4572E;
  --font-display:"Space Grotesk","Inter",system-ui,sans-serif;
  --font-sans:"Inter",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  /* Anciennes variables (Direction B) → charte Target Sourcing (aucun violet, teal ni dégradé) */
  --navy2:var(--navy-2); --ink2:var(--navy); --accent:var(--navy); --accent-d:var(--navy-2); --accent2:var(--orange);
  --muted2:var(--muted); --grad:var(--navy); --chip-bg:var(--navy-tint); --chip-ink:var(--navy);
  --ok-ink:var(--ok); --warn-ink:var(--warn); --info-ink:var(--info); --danger-ink:var(--danger);
  --purple-bg:var(--navy-tint); --purple-ink:var(--orange-text); --grey-bg:var(--bg); --grey-ink:var(--muted);
  --r:var(--r-md); --sh-lg:var(--sh-pop);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:var(--accent);text-decoration:none}
img{max-width:100%}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:8px}
.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.muted{color:var(--muted)}.small{font-size:12px}

/* Header */
header.app{background:var(--grad);color:#fff;position:relative;overflow:hidden}
header.app::after{content:none}
.hbar{max-width:1180px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:14px;position:relative;z-index:1}
.brandlogo{height:34px;width:auto;display:block}
.hnav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.hnav a,.hnav button{font:inherit;font-size:13px;font-weight:600;color:var(--muted);background:transparent;border:0;cursor:pointer;padding:8px 12px;border-radius:10px;text-decoration:none}
.hnav a:hover,.hnav button:hover{background:rgba(255,255,255,.12);color:#fff}
.hnav .who{color:var(--muted);font-weight:500;margin-right:4px}
.hnav .who b{color:#fff;font-weight:700}
.hero{max-width:1180px;margin:0 auto;padding:10px 20px 26px;position:relative;z-index:1}
.hero h1{font-size:28px;font-weight:800;letter-spacing:-.4px}
.hero p{opacity:.85;font-size:14px;margin-top:6px;max-width:640px}
.stats{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.stat{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);border-radius:13px;padding:10px 16px;backdrop-filter:blur(6px)}
.stat b{font-size:20px;font-weight:800;display:block;line-height:1}
.stat span{font-size:11px;opacity:.8;text-transform:uppercase;letter-spacing:.5px}

main{max-width:1180px;margin:0 auto;padding:22px 20px 72px}

/* Toolbar: search + filters */
.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:4px 0 20px;align-items:center}
.search{flex:1;min-width:200px;display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 13px;box-shadow:var(--sh)}
.search svg{flex:none;color:var(--muted2)}
.search input{border:0;outline:0;background:transparent;font:inherit;width:100%;color:var(--ink)}
.filters{display:flex;gap:8px;flex-wrap:wrap}
.pill{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;box-shadow:var(--sh)}
.pill:hover{border-color:var(--accent);color:var(--accent)}
.pill.active{background:var(--navy);color:#fff;border-color:transparent}
select.fsel{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:9px 12px;font:inherit;font-size:13px;font-weight:600;color:var(--ink);box-shadow:var(--sh);cursor:pointer}

/* Cards grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;box-shadow:var(--sh);display:flex;flex-direction:column;gap:11px;cursor:pointer;transition:transform .16s,box-shadow .16s;position:relative;text-align:left;width:100%;font:inherit;color:inherit}
.card:hover{transform:translateY(-3px);box-shadow:var(--sh-lg)}
.card::before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:3px;background:var(--orange);opacity:0;transition:.16s}
.card:hover::before{opacity:1}
.crow{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ref{font-family:ui-monospace,Menlo,monospace;font-size:11.5px;color:var(--accent);font-weight:700}
.bz{display:flex;gap:6px;align-items:center}
.new{background:var(--navy);color:#fff;font-size:10px;font-weight:800;padding:3px 8px;border-radius:7px;text-transform:uppercase;letter-spacing:.4px}
.ctitle{font-size:16.5px;font-weight:700;color:var(--ink2);line-height:1.3}
.meta{display:flex;flex-wrap:wrap;gap:5px 14px;font-size:12.5px;color:var(--muted)}
.meta i{font-style:normal}
.meta .tjm{font-weight:700;color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{background:var(--chip-bg);color:var(--chip-ink);font-size:11px;font-weight:600;padding:4px 10px;border-radius:8px}

/* Badges */
.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;padding:4px 11px;border-radius:999px;white-space:nowrap}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.b-ouvert{background:var(--ok-bg);color:var(--ok-ink)}
.b-pres{background:var(--warn-bg);color:var(--warn-ink)}
.b-pourvu{background:var(--grey-bg);color:var(--grey-ink)}
.b-gagne{background:var(--info-bg);color:var(--info-ink)}
.b-perdu{background:var(--danger-bg);color:var(--danger-ink)}
.b-clos{background:var(--grey-bg);color:var(--grey-ink)}
.b-nonlu{background:var(--grey-bg);color:var(--grey-ink)}
.b-interesse{background:var(--ok-bg);color:var(--ok-ink)}
.b-positionne{background:var(--info-bg);color:var(--info-ink)}
.b-entretien{background:var(--purple-bg);color:var(--purple-ink)}
.b-refus{background:var(--danger-bg);color:var(--danger-ink)}
.b-nonposi{background:var(--grey-bg);color:var(--grey-ink)}
.b-admin{background:var(--purple-bg);color:var(--purple-ink)}
.b-commercial{background:var(--info-bg);color:var(--info-ink)}
.b-sourceur{background:var(--ok-bg);color:var(--ok-ink)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-size:14px;font-weight:700;padding:11px 18px;border-radius:12px;border:0;cursor:pointer;background:var(--navy);color:#fff;box-shadow:0 8px 20px rgba(109,40,217,.25);transition:.15s}
.btn:hover{filter:brightness(1.06);transform:translateY(-1px);color:#fff}
.btn:disabled{opacity:.55;cursor:default;transform:none;filter:none}
.btn.sec{background:var(--bg);color:var(--ink);box-shadow:none;border:1px solid var(--line)}
.btn.sec:hover{background:var(--line);color:var(--ink)}
.btn.ghost{background:#fff;color:var(--accent);border:1px solid var(--line);box-shadow:none}
.btn.danger{background:var(--danger);box-shadow:none}
.btn.sm{padding:7px 12px;font-size:12.5px;border-radius:9px;box-shadow:none}
.btn.block{width:100%}

/* Section title */
.sect{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin:22px 0 12px}

/* Modal */
.ov{position:fixed;inset:0;background:rgba(10,20,40,.55);backdrop-filter:blur(3px);display:none;align-items:flex-start;justify-content:center;padding:26px 14px;overflow:auto;z-index:70}
.ov.open{display:flex}
.modal{background:#fff;width:100%;max-width:780px;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-lg);animation:pop .18s ease}
@keyframes pop{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
.mhead{background:var(--grad);color:#fff;padding:22px 24px;position:relative}
.mhead .x{position:absolute;top:14px;right:16px;cursor:pointer;font-size:24px;line-height:1;opacity:.85;background:0;border:0;color:#fff}
.mhead .x:hover{opacity:1}
.mhead .ref{color:var(--info-bg)}
.mhead h2{font-size:21px;font-weight:800;margin-top:3px}
.mhead .fsub{opacity:.85;font-size:13.5px;margin-top:5px}
.mbody{padding:22px 24px}
.fgrid{display:grid;grid-template-columns:1fr 260px;gap:22px}
.pres h3{font-size:12.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--accent);font-weight:800;margin:18px 0 8px}
.pres h3:first-child{margin-top:0}
.pres p{font-size:14px;line-height:1.65;color:var(--ink);margin:6px 0;max-width:66ch}
.pres ul{margin:6px 0;list-style:none;display:flex;flex-direction:column;gap:7px}
.pres li{font-size:14px;line-height:1.5;padding-left:20px;position:relative}
.pres li::before{content:"";position:absolute;left:3px;top:8px;width:6px;height:6px;border-radius:2px;background:var(--orange)}
.pres .grp{margin:8px 0}.pres .grp .gt{font-weight:700;color:var(--ink2);font-size:13.5px;margin-bottom:4px}
.aside{background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:16px;align-self:start;position:sticky;top:10px}
.kv{display:flex;flex-direction:column;margin-bottom:12px}
.kv span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.kv b{font-size:14px;margin-top:2px}
.sep{height:1px;background:var(--line);margin:18px 0}
.note{background:var(--ok-bg);border:1px solid var(--ok-bg);border-left:4px solid var(--accent2);padding:12px 14px;border-radius:10px;font-size:13px;color:var(--ok);margin-top:14px}

/* Forms */
.card-soft{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--sh)}
label{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin:12px 0 5px}
input,select,textarea{font:inherit;font-size:14px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);transition:.15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus)}
input[type=file]{padding:8px;background:var(--bg)}
.form2{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px}

/* Tabs + tables */
.tabs{display:flex;gap:7px;margin:4px 0 20px;flex-wrap:wrap}
.tabs button{font:inherit;font-size:13px;font-weight:600;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:11px;padding:9px 16px;cursor:pointer;box-shadow:var(--sh)}
.tabs button.active{background:var(--navy);color:#fff;border-color:transparent}
.panel{display:none}.panel.active{display:block;animation:fade .18s}
@keyframes fade{from{opacity:0}to{opacity:1}}
.cards-stat{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.cstat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 18px;box-shadow:var(--sh);min-width:140px}
.cstat b{font-size:22px;font-weight:800;color:var(--ink2);display:block;line-height:1}
.cstat span{font-size:12px;color:var(--muted)}
.tablewrap{overflow-x:auto;border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh);background:#fff}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;min-width:560px}
th,td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
th{background:var(--bg);color:var(--muted);font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;font-weight:700;cursor:default}
th.sortable{cursor:pointer;user-select:none}
th.sortable:hover{color:var(--accent)}
tbody tr:hover{background:var(--bg)}
td select{padding:7px 10px}
.count-pill{background:var(--chip-bg);color:var(--chip-ink);border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700}

/* States */
.empty{text-align:center;color:var(--muted);padding:48px 20px;background:#fff;border:1px dashed var(--line);border-radius:16px}
.empty .emoji{font-size:30px;display:block;margin-bottom:8px}
.skeleton{background:var(--navy-tint);animation:skp 1.3s ease-in-out infinite;border-radius:var(--r-md)}
@keyframes skp{0%,100%{opacity:.55}50%{opacity:1}}
@keyframes sk{0%{background-position:100% 0}100%{background-position:-100% 0}}
.sk-card{height:150px}

/* Toast */
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(10px);background:var(--navy);color:#fff;padding:13px 22px;border-radius:12px;font-weight:600;font-size:14px;opacity:0;transition:.3s;z-index:99;box-shadow:var(--sh-lg)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.err{background:var(--danger)}

/* Footer */
footer.app{border-top:1px solid var(--line);margin-top:10px;background:#fff}
.fwrap{max-width:1180px;margin:0 auto;padding:20px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:12px}
.fwrap img{height:22px;opacity:.9}

@media(max-width:720px){
  .fgrid{grid-template-columns:1fr}
  .aside{position:static}
  .hero h1{font-size:23px}
  .form2{grid-template-columns:1fr}
  .hnav .who{display:none}
}

/* Composant Visibilité */
.vis{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--bg)}
.vis .vhead{font-weight:700;color:var(--ink2);margin-bottom:10px}
.vis .vradio{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:4px}
.vis label.opt{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--ink);cursor:pointer;margin:0}
.vis label.opt input{width:auto}
.vis .vsel{margin-top:10px}
.vis .vchips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}
.vis .vchip{background:var(--chip-bg);color:var(--chip-ink);font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;display:inline-flex;gap:6px;align-items:center;cursor:pointer}
.vis .vchip:hover{background:var(--navy-tint)}
.vis .vtools{display:flex;gap:8px;align-items:center;margin:8px 0;flex-wrap:wrap}
.vis .vcount{font-size:12px;color:var(--muted);font-weight:600;margin-left:auto}
.vis .vlist{max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff}
.vis .vrow{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);cursor:pointer;margin:0}
.vis .vrow:last-child{border-bottom:0}.vis .vrow:hover{background:var(--bg)}
.vis .vrow input{width:auto;flex:none}
.vis .vrow .nm{font-weight:600;color:var(--ink)}.vis .vrow .em{color:var(--muted);font-size:12px;margin-left:4px}

/* Priorité */
.prio{font-size:10px;font-weight:800;padding:3px 8px;border-radius:7px;text-transform:uppercase;letter-spacing:.4px;display:inline-flex;align-items:center;gap:4px}
.prio-top{background:var(--danger-bg);color:var(--danger)}
.prio-urgent{background:var(--orange-tint);color:var(--orange-text)}

/* --- Évolutions : ancienneté AO, modif candidature, pièces jointes --- */
.pubage{margin-top:8px;font-size:12px;color:var(--muted);font-weight:600}
.modline{margin-top:8px;font-size:12.5px;font-weight:700;color:var(--warn);background:var(--orange-wash);border:1px solid var(--orange-tint);border-radius:8px;padding:5px 9px;display:inline-block}
.locknote{font-size:12.5px;font-weight:600;color:var(--danger);background:var(--danger-bg);border:1px solid var(--danger-bg);border-radius:8px;padding:6px 10px;display:inline-block}
.att{margin-top:10px;padding:10px 12px;background:var(--soft,var(--bg));border:1px solid var(--line,var(--line));border-radius:10px}
.att-t{font-weight:800;font-size:12.5px;color:var(--ink2);margin-bottom:6px}
.att-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;flex-wrap:wrap}
.att-row a{font-size:13px;font-weight:600;color:var(--accent,var(--navy));text-decoration:none}
.att-row a:hover{text-decoration:underline}
.att-add{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-size:12.5px;font-weight:700;color:var(--ink2);cursor:pointer}
.att-add input[type=file]{font-weight:400}
/* mise en évidence côté commercial : candidature modifiée après évaluation */
.mod-afteretat{font-size:12.5px;font-weight:800;color:var(--orange-text);background:var(--orange-tint);border:1px solid var(--orange-light);border-radius:8px;padding:5px 9px;display:inline-block;margin-top:6px}

/* ===== Poste de travail Candidatures (vue commerciale) ===== */
.subdash{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.dcard{display:flex;flex-direction:column;gap:4px;align-items:flex-start;text-align:left;padding:14px 16px;border-radius:14px;border:1px solid var(--line,var(--line));background:#fff;cursor:pointer;transition:.15s;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.dcard:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(15,23,42,.08)}
.dcard b{font-size:26px;line-height:1;color:var(--ink,var(--ink))}
.dcard span{font-size:12px;font-weight:600;color:var(--muted,var(--muted))}
.dcard.on{outline:2px solid var(--accent,var(--navy));outline-offset:1px}
.dcard.d-red b{color:var(--danger)}.dcard.d-violet b{color:var(--navy)}.dcard.d-amber b{color:var(--warn)}.dcard.d-green b{color:var(--ok)}
.subcard{padding:14px 16px;border:1px solid var(--line,var(--line));border-radius:14px;background:#fff;margin-bottom:12px;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.subcard.untreated{border-left:4px solid var(--navy)}
.subcard.is-stale{border-left:4px solid var(--danger);background:var(--danger-bg)}
.sc-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.sc-id b{font-size:15px}
.sc-meta{font-size:12.5px;color:var(--muted,var(--muted));margin-top:5px}
.sc-meta .ref{font-weight:700;color:var(--ink2,var(--ink))}
.sc-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.new{display:inline-block;background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-bg);border-radius:999px;font-size:10.5px;font-weight:800;padding:2px 8px;vertical-align:middle}
.mini-mod{display:inline-block;background:var(--orange-wash);color:var(--warn);border:1px solid var(--orange-tint);border-radius:999px;font-size:10.5px;font-weight:800;padding:2px 8px;vertical-align:middle}
.stale{display:inline-block;background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-bg);border-radius:999px;font-size:10.5px;font-weight:800;padding:2px 8px;vertical-align:middle}
.chip.sm{font-size:11px;padding:2px 8px}
/* Panneau Répondre */
.resp-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:20px}
.resp-left .rm{margin-bottom:12px}
.cvframe{width:100%;height:520px;border:1px solid var(--line,var(--line));border-radius:10px;background:var(--bg)}
.presets{display:flex;flex-wrap:wrap;gap:6px}
.preset{font-size:12px;font-weight:600;color:var(--ink2,var(--ink));background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:5px 10px;cursor:pointer}
.preset:hover{background:var(--navy-tint);border-color:var(--line);color:var(--navy-2)}
.tl{border-left:2px solid var(--line);padding:4px 0 10px 12px;margin-left:4px;position:relative}
.tl-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.tl-c{font-size:13px;color:var(--ink);white-space:pre-wrap;margin-top:4px}
.note.sm{font-size:12.5px;margin-top:8px}
@media(max-width:820px){.subdash{grid-template-columns:repeat(2,1fr)}.resp-grid{grid-template-columns:1fr}.cvframe{height:360px}}

/* Sourceur : nouvelle réponse + historique */
.newresp{display:inline-block;background:var(--ok-bg);color:var(--ok);border:1px solid var(--ok-bg);border-radius:999px;font-size:11px;font-weight:800;padding:2px 9px;vertical-align:middle}
.navdot{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;background:var(--ok);color:#fff;border-radius:999px;font-size:11px;font-weight:800}
.hist{margin-top:10px;padding:10px 12px;background:var(--soft,var(--bg));border:1px solid var(--line,var(--line));border-radius:10px}

/* --- Description : repli « Voir tout / Réduire » (ne perd jamais de texte) --- */
.desc{font-size:13.5px;white-space:pre-wrap;color:var(--ink);margin:8px 0;line-height:1.5;word-break:break-word}
.desc.clamp{max-height:7.8em;overflow:hidden;position:relative}
.desc.clamp::after{content:none}
.desc-toggle{margin:2px 0 8px;font-size:12.5px;color:var(--info);background:none;border:none;cursor:pointer;padding:2px 0;font-weight:600}
.desc-toggle:hover{text-decoration:underline}
.desc-trunc{display:inline-block;margin:0 0 8px 2px;font-size:11.5px;color:var(--warn);background:var(--orange-wash);border:1px solid var(--orange-tint);border-radius:6px;padding:1px 7px}

/* Barre d'actions sous la description + bouton copier */
.desc-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:2px 0 10px}
.desc-copy{font-size:12.5px;color:var(--info);background:var(--info-bg);border:1px solid var(--info-bg);border-radius:8px;cursor:pointer;padding:4px 10px;font-weight:600}
.desc-copy:hover{background:var(--info-bg)}
.desc-copy.ok{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-bg)}
.desc-toggle{margin:0}

/* ===== Visionneuse CV / pièce jointe (intégrée, app mobile) ===== */
.cvv-modal{max-width:1000px;width:100%;display:flex;flex-direction:column;max-height:92vh}
.cvv-actions{display:flex;gap:8px;flex-wrap:wrap;padding:0 4px 10px;border-bottom:1px solid var(--line,var(--line));margin-bottom:10px}
.cvv-body{position:relative;flex:1;min-height:60vh}
.cvv-frame{width:100%;height:72vh;border:1px solid var(--line,var(--line));border-radius:10px;background:var(--bg)}
.cvv-msg{padding:28px 16px;text-align:center;color:var(--muted,var(--muted));font-size:14px}
.cvv-load{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted,var(--muted));font-size:13px;background:#fff;border-radius:10px;z-index:2}
.spin{width:34px;height:34px;border:3px solid var(--line);border-top-color:var(--accent,var(--navy));border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.cvframe-wrap{position:relative}
.linkbtn{background:none;border:none;padding:0;color:var(--accent,var(--navy));font-weight:600;font-size:13px;cursor:pointer;text-align:left}
.linkbtn:hover{text-decoration:underline}
@media(max-width:820px){
  .cvv-modal{max-height:100vh;height:100vh;border-radius:0}
  .cvv-frame{height:68vh}
  .cvv-actions{position:sticky;top:0;background:#fff;z-index:3}
}

/* ---- Socle multi-organisations : tarif, organisations, chartes ---- */
.tarif-prev{background:var(--bg);border:1px dashed var(--line);border-radius:10px;padding:8px 12px;min-height:20px}
.org-grid{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start}
.org-item{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:8px;cursor:pointer;font:inherit;color:var(--ink)}
.org-item.active{border-color:var(--navy2);box-shadow:0 0 0 2px rgba(36,58,115,.12)}
.org-logo{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:12px}
.org-logo img{max-height:64px;max-width:180px;border:1px solid var(--line);border-radius:8px;padding:4px;background:#fff}
.ch-type{margin-top:10px}.ch-type-t{font-weight:800;color:var(--ink2);font-size:13.5px;margin-bottom:4px}
.ch-row{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:6px}
.ch-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}
.ch-json{width:100%;min-height:440px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.45;white-space:pre;tab-size:2}
.sws{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.sw{display:flex;gap:8px;align-items:center;font-size:12px}.sw span{width:28px;height:28px;border-radius:7px;border:1px solid rgba(0,0,0,.12);flex:none}
.ch-grad{height:10px;border-radius:6px;margin-bottom:12px}
.tsrc{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--navy-tint);color:var(--navy);white-space:nowrap}
@media (max-width:860px){.org-grid,.ch-grid{grid-template-columns:1fr}.ch-json{min-height:300px}}

/* ---- Onglet Claude ---- */
.ai-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.ai-h{color:var(--ink2);margin-bottom:10px;font-size:16px;font-weight:800}
.kvs>div{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}
.kvs>div:last-child{border-bottom:0}
.ai-out{margin-top:12px;min-height:40px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.ai-ok{color:var(--ok);font-weight:700;margin-bottom:4px}
.ai-alert{background:var(--warn-bg);border:1px solid var(--warn);color:var(--warn);border-radius:12px;padding:10px 14px;margin-bottom:14px;font-weight:600;font-size:13.5px}
.ai-alert.err{background:var(--danger-bg);border-color:var(--danger-bg);color:var(--danger)}
.ai-warn{margin-top:6px;color:var(--warn);font-size:12.5px;font-weight:600}
.ai-bar{height:10px;border-radius:6px;background:var(--bg);overflow:hidden;margin-bottom:6px}.ai-bar span{display:block;height:100%}
.ai-t{width:100%;min-width:0;border-collapse:collapse;font-size:12.5px;margin-top:8px}.ai-t th,.ai-t td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.ai-guide h4{margin:14px 0 6px;color:var(--ink2)}.ai-guide ol,.ai-guide ul{padding-left:20px;font-size:13.5px;line-height:1.6}
.ai-guide code{background:var(--bg);border-radius:5px;padding:1px 5px;font-size:12px}
.spin{display:inline-block;width:12px;height:12px;border:2px solid var(--line);border-top-color:var(--navy2);border-radius:50%;animation:aispin .8s linear infinite;vertical-align:-2px;margin-right:4px}
@keyframes aispin{to{transform:rotate(360deg)}}

/* ---- Matching CV ↔ AO (prompt 3/6) ---- */
.mt{margin-top:10px;border:1px solid var(--line);border-radius:12px;background:var(--bg);padding:12px 14px;font-size:13px}
.mt-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.mt-title{font-weight:800;color:var(--ink2);font-size:13px}
.mt-taux{display:inline-flex;align-items:center;justify-content:center;min-width:52px;padding:3px 10px;border-radius:999px;font-weight:800;font-size:13px}
.mt-vert{background:var(--ok-bg);color:var(--ok)}.mt-orange{background:var(--orange-tint);color:var(--orange-text)}.mt-rouge{background:var(--danger-bg);color:var(--danger)}.mt-gris{background:var(--bg);color:var(--muted)}
.mt-badge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-weight:800;font-size:11.5px;white-space:nowrap}
.mt-note{color:var(--muted);font-size:12.5px;margin:4px 0}
.mt-warn{color:var(--warn);font-weight:600;font-size:12.5px;margin:4px 0}
.mt-new{color:var(--navy);background:var(--bg);border:1px solid var(--navy-tint);border-radius:8px;padding:6px 10px;font-weight:600;font-size:12.5px;margin:6px 0}
.mt-err{color:var(--danger);font-weight:600;font-size:12.5px;margin:4px 0}
.mt-tag{display:inline-block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--muted);background:var(--bg);border-radius:6px;padding:1px 6px;margin-left:6px}
.mt-tag.obl{color:var(--orange-text);background:var(--orange-tint)}
.mt-list{list-style:none;margin:6px 0 0;padding:0}
.mt-list li{display:grid;grid-template-columns:22px 1fr;gap:6px;padding:5px 0;border-top:1px dashed var(--line)}
.mt-list li:first-child{border-top:0}
.mt-ic{font-size:13px;line-height:1.4;text-align:center}
.mt-lib{font-weight:600;color:var(--ink)}.mt-sc{font-size:11.5px;color:var(--muted);margin-left:6px}
.mt-just{color:var(--muted);font-size:12.5px}
.mt-sub{font-weight:800;font-size:12px;color:var(--ink2);margin-top:10px}
.mt-points{margin:4px 0 0;padding-left:18px;color:var(--ink)}
.mt-synth{margin-top:8px;background:var(--bg);border-radius:8px;padding:8px 10px;color:var(--ink)}
.mt-infos{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px;font-size:12.5px;color:var(--ink)}
.mt-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:10px}
.gr-row{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.6fr 1.4fr 32px;gap:6px;align-items:center;margin-bottom:6px}
.gr-row input,.gr-row select{padding:7px 8px;font-size:12.5px;margin:0}
.gr-head{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--muted);letter-spacing:.3px}
@media (max-width:720px){.gr-row{grid-template-columns:1fr 1fr}.gr-head{display:none}}

.b-attente{background:var(--warn-bg);color:var(--warn-ink)}
.ai-mois .ai-t th,.ai-mois .ai-t td{padding:6px 5px}
mark.hl{background:var(--warn-bg);color:inherit;padding:0 1px;border-radius:3px}
.needs-t{min-width:1180px}.needs-t select{min-width:118px}.needs-t td.ref{white-space:nowrap}
.ech-orange{color:var(--orange-text);font-weight:700}.ech-rouge{color:var(--danger);font-weight:700}
/* ---- Dossier de compétences (prompt 4) ---- */
.dc{margin-top:10px;border:1px solid var(--line,var(--line));border-radius:12px;padding:10px 12px;background:#fff}
.dc-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.dc-title{font-weight:800;color:var(--ink2,var(--ink))}
.dc-v{font-size:12px;color:var(--muted,var(--muted))}
.dc-st{font-size:11.5px;font-weight:700;border-radius:999px;padding:2px 8px;background:var(--bg);color:var(--ink)}
.dc-st.dc-pret{background:var(--ok-bg);color:var(--ok)}.dc-st.dc-erreur{background:var(--danger-bg);color:var(--danger)}
.dc-st.dc-redaction,.dc-st.dc-rendu{background:var(--navy-tint);color:var(--navy-2)}
.dc-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}
.dc-actions a.btn{text-decoration:none}
.dc-work{border-top:1px dashed var(--line,var(--line));margin-top:8px;padding-top:8px;display:grid;gap:8px}
.dc-row{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}
.dc-row select{flex:1;min-width:180px}.dc-row textarea{flex:1;min-width:220px}
.dc-warn li{color:var(--warn)}
.dc-det{margin-top:6px;font-size:13px}.dc-det summary{cursor:pointer;font-weight:600;color:var(--ink2,var(--ink))}
.dc-vers{margin:6px 0 0 18px;padding:0}
.dc-sec{font-weight:800;margin:14px 0 6px;color:var(--ink2,var(--ink))}
.dc-comp{display:grid;grid-template-columns:270px 1fr;gap:8px;margin-bottom:6px}
.dc-exp{border:1px solid var(--line,var(--line));border-radius:10px;padding:10px;margin-bottom:10px}
.dc-exp-h{display:flex;gap:6px;align-items:center;margin-bottom:6px}
var(--line)-body textarea,var(--line)-body input,var(--line)-body select{width:100%;box-sizing:border-box}
@media (max-width:640px){.dc-comp{grid-template-columns:1fr}}
/* ---- Bloc mail client (prompt 5) ---- */
.bm-edit label{margin-top:6px}
.bm-edit textarea,.bm-edit input{width:100%;box-sizing:border-box}
.bm-prev{border:1px dashed var(--line,var(--line));border-radius:8px;padding:10px 12px;background:#fff;color:#000;font-size:14px;line-height:1.45}
.bm-prev ul{margin:0;padding-left:22px}
.bm-sel{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px;padding:8px 10px;border:1px solid var(--line,var(--line));border-radius:10px;background:var(--bg)}
.bm-cbl{display:inline-flex;margin:0 8px 0 0;vertical-align:-2px}
.bm-cbl input{width:16px;height:16px}
/* ---- Éditeur de prompts : aperçu des différences (prompt 5 bis) ---- */
.pr-diff{max-height:320px;overflow:auto;background:var(--ink);color:var(--line);border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.45;white-space:pre-wrap;margin:6px 0 0}
.pr-diff .da{color:var(--ok-bg);background:rgba(34,197,94,.12);display:inline-block;width:100%}
.pr-diff .ds{color:var(--danger-bg);background:rgba(239,68,68,.12);display:inline-block;width:100%;text-decoration:line-through}
.pr-diff .de{color:var(--muted)}
/* ---- AO depuis un texte / modification d'un AO (prompt 6) ---- */
.aoe-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
@media (max-width:980px){.aoe-grid{grid-template-columns:1fr}}
.aoe-form textarea{min-height:44px}
.aoe-apercu{position:sticky;top:0;max-height:78vh;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--bg);padding:12px}
.aoe-pied{margin-top:14px;border-top:1px solid var(--line);padding-top:12px;align-items:center}
.ao-sec{border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:8px;background:var(--bg)}
.ao-sec-h{display:flex;gap:6px;align-items:center;margin-bottom:6px}.ao-sec-h input{flex:1;font-weight:700}.ao-sec-h select{width:auto;flex:none}
.ao-alerte{background:var(--orange-wash);border:1px solid var(--orange-light);color:var(--orange-text);border-radius:10px;padding:8px 11px;font-size:13px;margin-bottom:8px}
.ao-alerte-mini{background:var(--orange-tint);color:var(--orange-text);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}
input.ao-orange,textarea.ao-orange{border-color:var(--orange-light);background:var(--orange-wash)}
.ao-ver{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;background:#fff}
.ao-source{white-space:pre-wrap;font:inherit;font-size:12.5px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px;max-height:300px;overflow:auto}
.ao-maj{display:inline-block;background:var(--info-bg);color:var(--info);border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:700}
.aoprev{background:#fff;font-family:Calibri,Carlito,Arial,sans-serif;font-size:12px;color:var(--doc-texte,#2D3748);padding:18px 20px;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.aop-entete{display:flex;justify-content:space-between;align-items:baseline;color:var(--doc-navy,#1A2B4A);font-weight:700;font-size:11px;letter-spacing:.5px}.aop-entete small{font-weight:400;color:#6b7280;font-size:9.5px}
.aop-barre{height:4px;margin:6px 0 14px;background:var(--doc-bleu,#0070C0);box-shadow:inset 90px 0 0 var(--doc-navy,#1A2B4A)}
.aop-titre{font-size:20px;font-weight:700;color:var(--doc-navy,#1A2B4A);line-height:1.2}.aop-sous{font-size:13px;color:var(--doc-bleu,#0070C0);margin-top:3px}
.aop-stack{font-size:11px;color:var(--doc-gris,#64748B);margin:6px 0 10px}
.aop-recap{width:100%;min-width:0;border-collapse:collapse;margin-bottom:10px;font-size:11.5px}.aop-recap th,.aop-recap td{padding:5px 8px;border:0}
.aop-recap th{width:38%;color:#fff;font-weight:700;background:var(--doc-navy,#1A2B4A)}.aop-recap tr.b th{background:var(--doc-navy-alt,#253553)}
.aop-recap td{background:var(--doc-fond,#F0F6FC);border-bottom:1px solid var(--doc-bordure,#D1E8F5)}
.aop-bandeau{background:var(--doc-bleu,#0070C0);color:#fff;font-weight:700;font-size:11.5px;letter-spacing:.6px;padding:5px 9px;margin:12px 0 6px;border-left:5px solid var(--doc-teal,#00C4B4)}
.aop-p{margin:4px 0;line-height:1.45}.aop-ul{margin:4px 0 4px 18px;padding:0}.aop-ul li{margin:2px 0;line-height:1.4}
.aop-tags{display:flex;flex-wrap:wrap;gap:5px}.aop-tags span{padding:3px 9px;border-radius:4px;font-weight:700;font-size:11px;color:#fff;background:var(--doc-bleu,#0070C0)}.aop-tags span.b{background:var(--doc-bleu2,#0DA0D4)}
.aop-sg{font-weight:700;color:var(--doc-navy,#1A2B4A);margin:8px 0 2px}
.aop-cand{border:1.5px solid var(--doc-bleu,#0070C0);background:var(--doc-fond,#F0F6FC);border-radius:6px;padding:9px 12px;margin-top:14px}
/* ---- Prompt 7 : état « Retenu », cartes cliquables ---- */
.b-retenu{background:var(--ok-bg);color:var(--ok)}
.cstat.clic{cursor:pointer;font:inherit;text-align:left;transition:transform .15s,box-shadow .15s}
.cstat.clic:hover{transform:translateY(-1px);box-shadow:var(--sh-lg)}
.cstat.clic:focus-visible{outline:2px solid var(--accent,var(--navy));outline-offset:2px}
.tag-bientot{display:inline-block;background:var(--orange-wash);color:var(--orange-text);border:1px solid var(--orange-light);border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:700}
.stat.clic{cursor:pointer;font:inherit;color:inherit;text-align:left;transition:background .15s}
.stat.clic:hover{background:rgba(255,255,255,.18)}
.card-soft.flash{box-shadow:0 0 0 3px var(--accent,var(--navy))}
#cv-ov{z-index:80}  /* visionneuse toujours au-dessus des autres fenêtres (fiche AO, candidature) */

/* ---- Ma charte (prompt 8 lot 3) — habillage provisoire, repris par la refonte ---- */
.charte-onglets{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:12px}
.charte-onglets button{background:none;border:0;border-bottom:2px solid transparent;padding:10px 14px;font-weight:600;color:var(--muted);cursor:pointer;min-height:44px}
.charte-onglets button.actif{color:var(--ink2);border-bottom-color:var(--orange)}
.charte-etat{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.charte-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:14px 0}
.charte-opt{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff}.charte-opt.actif{border:2px solid var(--ink2)}.charte-opt.off{opacity:.6}
.charte-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:1024px){.charte-grille{grid-template-columns:1fr}}
.charte-form{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}
.charte-etape{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--ink2);margin:16px 0 8px}.charte-etape:first-child{margin-top:0}
.charte-etape > span:first-child{display:inline-flex;width:24px;height:24px;border-radius:999px;background:var(--ink2);color:#fff;align-items:center;justify-content:center;font-size:12px}
.charte-nuancier{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}.charte-nuancier button{width:36px;height:36px;border-radius:8px;border:1px solid var(--line);cursor:pointer}
.charte-coul.actif label{color:var(--orange-text)}
.cadre-doc{background:var(--line);border-radius:10px;padding:16px}
.charte-apercu{position:sticky;top:12px}
.charte-bandeau{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:var(--orange-tint);color:var(--navy);border-radius:10px;padding:10px 14px;margin:0 0 12px}
.charte-attente{margin-bottom:16px;background:var(--orange-wash)}
.charte-att-ligne{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:16px;padding:12px 0;border-top:1px solid var(--line)}
@media (max-width:1024px){.charte-att-ligne{grid-template-columns:1fr}}
.charte-form,.charte-apercu{min-width:0}.charte-coul > div{flex-wrap:wrap}
@media (max-width:640px){.charte-form .form2{grid-template-columns:1fr}.charte-form select,.charte-form input:not([type=color]){max-width:100%}}
.cadre-doc table{min-width:0}
/* Icônes Lucide (licence ISC), intégrées en SVG (masque CSS), sans dépendance réseau. Usage : <i class=ico-NOM aria-hidden=true></i> */
[class^="ico-"],[class*=" ico-"]{display:inline-block;width:1.15em;height:1.15em;flex:none;vertical-align:-.2em;background-color:currentColor;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat;font-style:normal}
.ico-search{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2211%22 cy=%2211%22 r=%228%22/%3E%3Cpath d=%22m21 21-4.3-4.3%22/%3E%3C/svg%3E")}
.ico-map-pin{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0%22/%3E%3Ccircle cx=%2212%22 cy=%2210%22 r=%223%22/%3E%3C/svg%3E")}
.ico-graduation-cap{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z%22/%3E%3Cpath d=%22M22 10v6%22/%3E%3Cpath d=%22M6 12.5V16a6 3 0 0 0 12 0v-3.5%22/%3E%3C/svg%3E")}
.ico-calendar{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M8 2v4%22/%3E%3Cpath d=%22M16 2v4%22/%3E%3Crect width=%2218%22 height=%2218%22 x=%223%22 y=%224%22 rx=%222%22/%3E%3Cpath d=%22M3 10h18%22/%3E%3C/svg%3E")}
.ico-clock{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpolyline points=%2212 6 12 12 16 14%22/%3E%3C/svg%3E")}
.ico-euro{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M4 10h12%22/%3E%3Cpath d=%22M4 14h9%22/%3E%3Cpath d=%22M19 6a7.7 7.7 0 0 0-5.2-2A7.9 7.9 0 0 0 6 12c0 4.4 3.5 8 7.8 8 2 0 3.8-.8 5.2-2%22/%3E%3C/svg%3E")}
.ico-file-text{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z%22/%3E%3Cpath d=%22M14 2v4a2 2 0 0 0 2 2h4%22/%3E%3Cpath d=%22M10 9H8%22/%3E%3Cpath d=%22M16 13H8%22/%3E%3Cpath d=%22M16 17H8%22/%3E%3C/svg%3E")}
.ico-eye{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%223%22/%3E%3C/svg%3E")}
.ico-paperclip{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48%22/%3E%3C/svg%3E")}
.ico-inbox{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpolyline points=%2222 12 16 12 14 15 10 15 8 12 2 12%22/%3E%3Cpath d=%22M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z%22/%3E%3C/svg%3E")}
.ico-list{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 12h.01%22/%3E%3Cpath d=%22M3 18h.01%22/%3E%3Cpath d=%22M3 6h.01%22/%3E%3Cpath d=%22M8 12h13%22/%3E%3Cpath d=%22M8 18h13%22/%3E%3Cpath d=%22M8 6h13%22/%3E%3C/svg%3E")}
.ico-plus{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M5 12h14%22/%3E%3Cpath d=%22M12 5v14%22/%3E%3C/svg%3E")}
.ico-align-left{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M15 12H3%22/%3E%3Cpath d=%22M17 18H3%22/%3E%3Cpath d=%22M21 6H3%22/%3E%3C/svg%3E")}
.ico-upload{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4%22/%3E%3Cpolyline points=%2217 8 12 3 7 8%22/%3E%3Cline x1=%2212%22 x2=%2212%22 y1=%223%22 y2=%2215%22/%3E%3C/svg%3E")}
.ico-download{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4%22/%3E%3Cpolyline points=%227 10 12 15 17 10%22/%3E%3Cline x1=%2212%22 x2=%2212%22 y1=%2215%22 y2=%223%22/%3E%3C/svg%3E")}
.ico-history{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8%22/%3E%3Cpath d=%22M3 3v5h5%22/%3E%3Cpath d=%22M12 7v5l4 2%22/%3E%3C/svg%3E")}
.ico-users{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2%22/%3E%3Ccircle cx=%229%22 cy=%227%22 r=%224%22/%3E%3Cpath d=%22M22 21v-2a4 4 0 0 0-3-3.87%22/%3E%3Cpath d=%22M16 3.13a4 4 0 0 1 0 7.75%22/%3E%3C/svg%3E")}
.ico-user{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2%22/%3E%3Ccircle cx=%2212%22 cy=%227%22 r=%224%22/%3E%3C/svg%3E")}
.ico-building{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect width=%2216%22 height=%2220%22 x=%224%22 y=%222%22 rx=%222%22 ry=%222%22/%3E%3Cpath d=%22M9 22v-4h6v4%22/%3E%3Cpath d=%22M8 6h.01%22/%3E%3Cpath d=%22M16 6h.01%22/%3E%3Cpath d=%22M12 6h.01%22/%3E%3Cpath d=%22M12 10h.01%22/%3E%3Cpath d=%22M12 14h.01%22/%3E%3Cpath d=%22M16 10h.01%22/%3E%3Cpath d=%22M16 14h.01%22/%3E%3Cpath d=%22M8 10h.01%22/%3E%3Cpath d=%22M8 14h.01%22/%3E%3C/svg%3E")}
.ico-sparkles{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z%22/%3E%3C/svg%3E")}
.ico-bell{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9%22/%3E%3Cpath d=%22M10.3 21a1.94 1.94 0 0 0 3.4 0%22/%3E%3C/svg%3E")}
.ico-menu{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cline x1=%224%22 x2=%2220%22 y1=%2212%22 y2=%2212%22/%3E%3Cline x1=%224%22 x2=%2220%22 y1=%226%22 y2=%226%22/%3E%3Cline x1=%224%22 x2=%2220%22 y1=%2218%22 y2=%2218%22/%3E%3C/svg%3E")}
.ico-x{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M18 6 6 18%22/%3E%3Cpath d=%22m6 6 12 12%22/%3E%3C/svg%3E")}
.ico-chevron-right{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m9 18 6-6-6-6%22/%3E%3C/svg%3E")}
.ico-chevron-left{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m15 18-6-6 6-6%22/%3E%3C/svg%3E")}
.ico-send{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m22 2-7 20-4-9-9-4Z%22/%3E%3Cpath d=%22M22 2 11 13%22/%3E%3C/svg%3E")}
.ico-lock{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect width=%2218%22 height=%2211%22 x=%223%22 y=%2211%22 rx=%222%22 ry=%222%22/%3E%3Cpath d=%22M7 11V7a5 5 0 0 1 10 0v4%22/%3E%3C/svg%3E")}
.ico-mail{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect width=%2220%22 height=%2216%22 x=%222%22 y=%224%22 rx=%222%22/%3E%3Cpath d=%22m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7%22/%3E%3C/svg%3E")}
.ico-check{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M20 6 9 17l-5-5%22/%3E%3C/svg%3E")}
.ico-check-circle{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M22 11.08V12a10 10 0 1 1-5.93-9.14%22/%3E%3Cpath d=%22m9 11 3 3L22 4%22/%3E%3C/svg%3E")}
.ico-x-circle{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22m15 9-6 6%22/%3E%3Cpath d=%22m9 9 6 6%22/%3E%3C/svg%3E")}
.ico-minus-circle{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M8 12h8%22/%3E%3C/svg%3E")}
.ico-filter{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpolygon points=%2222 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3%22/%3E%3C/svg%3E")}
.ico-log-out{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4%22/%3E%3Cpolyline points=%2216 17 21 12 16 7%22/%3E%3Cline x1=%2221%22 x2=%229%22 y1=%2212%22 y2=%2212%22/%3E%3C/svg%3E")}
.ico-alert-triangle{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3%22/%3E%3Cpath d=%22M12 9v4%22/%3E%3Cpath d=%22M12 17h.01%22/%3E%3C/svg%3E")}
.ico-copy{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect width=%2214%22 height=%2214%22 x=%228%22 y=%228%22 rx=%222%22 ry=%222%22/%3E%3Cpath d=%22M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2%22/%3E%3C/svg%3E")}
.ico-pencil{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z%22/%3E%3Cpath d=%22m15 5 4 4%22/%3E%3C/svg%3E")}
.ico-globe{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20%22/%3E%3Cpath d=%22M2 12h20%22/%3E%3C/svg%3E")}
.ico-refresh-cw{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8%22/%3E%3Cpath d=%22M21 3v5h-5%22/%3E%3Cpath d=%22M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16%22/%3E%3Cpath d=%22M8 16H3v5%22/%3E%3C/svg%3E")}
.ico-folder{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z%22/%3E%3C/svg%3E")}
.ico-crosshair{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cline x1=%2222%22 x2=%2218%22 y1=%2212%22 y2=%2212%22/%3E%3Cline x1=%226%22 x2=%222%22 y1=%2212%22 y2=%2212%22/%3E%3Cline x1=%2212%22 x2=%2212%22 y1=%226%22 y2=%222%22/%3E%3Cline x1=%2212%22 x2=%2212%22 y1=%2222%22 y2=%2218%22/%3E%3C/svg%3E")}
.ico-palette{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2213.5%22 cy=%226.5%22 r=%22.5%22 fill=%22%23000%22/%3E%3Ccircle cx=%2217.5%22 cy=%2210.5%22 r=%22.5%22 fill=%22%23000%22/%3E%3Ccircle cx=%228.5%22 cy=%227.5%22 r=%22.5%22 fill=%22%23000%22/%3E%3Ccircle cx=%226.5%22 cy=%2212.5%22 r=%22.5%22 fill=%22%23000%22/%3E%3Cpath d=%22M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z%22/%3E%3C/svg%3E")}
.ico-help-circle{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%2210%22/%3E%3Cpath d=%22M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3%22/%3E%3Cpath d=%22M12 17h.01%22/%3E%3C/svg%3E")}
.ico-image{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect width=%2218%22 height=%2218%22 x=%223%22 y=%223%22 rx=%222%22 ry=%222%22/%3E%3Ccircle cx=%229%22 cy=%229%22 r=%222%22/%3E%3Cpath d=%22m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21%22/%3E%3C/svg%3E")}
.ico-type{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpolyline points=%224 7 4 4 20 4 20 7%22/%3E%3Cline x1=%229%22 x2=%2215%22 y1=%2220%22 y2=%2220%22/%3E%3Cline x1=%2212%22 x2=%2212%22 y1=%224%22 y2=%2220%22/%3E%3C/svg%3E")}
.ico-brush{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m9.06 11.9 8.07-8.06a2.85 2.85 0 1 1 4.03 4.03l-8.06 8.08%22/%3E%3Cpath d=%22M7.07 14.94c-1.66 0-3 1.35-3 3.02 0 1.33-2.5 1.52-2 2.02 1.08 1.1 2.49 2.02 4 2.02 2.2 0 4-1.8 4-4.04a3.01 3.01 0 0 0-3-3.02z%22/%3E%3C/svg%3E")}
.ico-settings{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z%22/%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%223%22/%3E%3C/svg%3E")}
.ico-layout-grid{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Crect width=%227%22 height=%227%22 x=%223%22 y=%223%22 rx=%221%22/%3E%3Crect width=%227%22 height=%227%22 x=%2214%22 y=%223%22 rx=%221%22/%3E%3Crect width=%227%22 height=%227%22 x=%2214%22 y=%2214%22 rx=%221%22/%3E%3Crect width=%227%22 height=%227%22 x=%223%22 y=%2214%22 rx=%221%22/%3E%3C/svg%3E")}
.ico-briefcase{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16%22/%3E%3Crect width=%2220%22 height=%2214%22 x=%222%22 y=%226%22 rx=%222%22/%3E%3C/svg%3E")}
.ico-more-horizontal{--ico:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%23000%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Ccircle cx=%2212%22 cy=%2212%22 r=%221%22/%3E%3Ccircle cx=%2219%22 cy=%2212%22 r=%221%22/%3E%3Ccircle cx=%225%22 cy=%2212%22 r=%221%22/%3E%3C/svg%3E")}

/* =====================================================================================================
   SOCLE DE LA REFONTE (lot 1) — charte Target Sourcing : typographie, en-tête, bandeau, boutons, champs,
   badges, onglets, fenêtres, pied. Mode clair uniquement. Les aperçus de documents (.aop-*, .cadre-doc)
   gardent la charte de l'organisation.
   ===================================================================================================== */
body{font-family:var(--font-sans);color:var(--ink);background:var(--bg)}
h1,h2,h3,.stat b,.cstat b{font-family:var(--font-display)}
a{color:var(--orange-text)}
a:hover{text-decoration:underline}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r-sm)}
.muted{color:var(--muted)}

/* En-tête : blanc, filet bas, logo couleur */
header.app{background:var(--card);color:var(--ink);overflow:visible}
header.app .hbar{min-height:64px;padding:12px 24px;border-bottom:1px solid var(--line);max-width:none}
header.app .hbar > *{max-width:100%}
.brandlogo{height:32px}
.hnav a,.hnav button{color:var(--ink);font-size:14px;font-weight:600;min-height:40px;display:inline-flex;align-items:center;gap:6px;border-radius:var(--r-md)}
.hnav a:hover,.hnav button:hover{background:var(--navy-tint);color:var(--navy);text-decoration:none}
.hnav .who{color:var(--muted);font-weight:500}
.hnav .who b{color:var(--ink)}
@media (max-width:640px){.brandlogo{height:26px}header.app .hbar{padding:10px 16px}}

/* Bandeau bleu nuit sous l'en-tête (titre de page) */
.hero{background:var(--navy);color:#fff;max-width:none;padding:24px max(24px,calc((100% - 1180px)/2 + 20px)) 28px;margin:0}
.hero h1{font-size:28px;line-height:36px;font-weight:700;letter-spacing:-.5px;color:#fff}
.hero p{color:#C9D0DD;opacity:1;font-size:15px}
@media (max-width:640px){.hero h1{font-size:24px;line-height:32px}}
.stat{background:var(--card);border:0;color:var(--ink);border-radius:var(--r-lg);padding:14px 18px;box-shadow:var(--sh);backdrop-filter:none}
.stat b{font-size:28px;line-height:32px;font-weight:700;color:var(--ink)}
.stat span{color:var(--muted);opacity:1;text-transform:none;letter-spacing:0;font-size:14px}

/* Boutons */
.btn{background:var(--navy);color:#fff;font-size:14px;font-weight:600;min-height:44px;padding:10px 20px;border-radius:var(--r-md);box-shadow:none;transition:background .15s}
.btn:hover{background:var(--navy-2);filter:none;transform:none;color:#fff;text-decoration:none}
.btn:disabled{opacity:.5}
.btn.fort{background:var(--orange);font-size:16px}
.btn.fort:hover{background:#CF4A23}
.btn.sec{background:transparent;color:var(--ink);border:1px solid var(--line-strong)}
.btn.sec:hover{background:var(--navy-tint);color:var(--navy)}
.btn.ghost{background:transparent;color:var(--ink);border:0}
.btn.ghost:hover{background:var(--navy-tint)}
.btn.danger{background:var(--danger)}
.btn.danger:hover{background:#991B1B}
.btn.sm{min-height:36px;padding:6px 12px;font-size:13px;border-radius:var(--r-md)}

/* Champs */
label{font-size:14px;font-weight:600;color:var(--ink)}
input,select,textarea{font-size:15px;border:1px solid var(--line);border-radius:var(--r-sm);min-height:44px}
textarea{min-height:88px}
input[type=checkbox],input[type=radio]{min-height:0;width:18px;height:18px;accent-color:var(--navy)}
input[type=color]{min-height:0}
input:hover,select:hover,textarea:hover{border-color:var(--line-strong)}
input:focus,select:focus,textarea:focus{border-color:var(--navy);box-shadow:var(--focus)}
select.fsel{border-radius:var(--r-sm);min-height:44px;box-shadow:none;font-size:14px}
.search{border-radius:var(--r-sm);box-shadow:none;min-height:44px}
.search svg{color:var(--muted)}
.pill{box-shadow:none;color:var(--ink);font-size:14px;min-height:40px}
.pill:hover{border-color:var(--navy);color:var(--navy)}
.pill.active{background:var(--navy);color:#fff}

/* Badges (texte toujours présent, la couleur ne porte jamais seule l'information) */
.badge{font-size:12px;line-height:16px;font-weight:600;padding:2px 10px;border-radius:var(--r-full)}
.badge::before{content:none}
.b-ouvert,.b-gagne,.b-positionne,.b-retenu,.b-interesse.ok{background:var(--ok-bg);color:var(--ok)}
.b-interesse,.b-entretien,.b-pres{background:var(--info-bg);color:var(--info)}
.b-perdu,.b-refus,.b-nonposi{background:var(--danger-bg);color:var(--danger)}
.b-pourvu,.b-clos,.b-nonlu,.b-sourceur{background:var(--bg);color:var(--muted)}
.b-attente{background:var(--warn-bg);color:var(--warn)}
.b-admin{background:var(--navy);color:#fff}
.b-commercial{background:var(--info-bg);color:var(--info)}
.b-top{background:var(--orange-tint);color:var(--orange-text)}
.b-urgent{background:var(--warn-bg);color:var(--warn)}
.new{border-radius:var(--r-full);font-weight:600;text-transform:none;letter-spacing:0;font-size:12px}

/* Onglets */
.tabs{gap:4px;border-bottom:1px solid var(--line)}
.tabs button{background:transparent;border:0;border-bottom:2px solid transparent;border-radius:0;box-shadow:none;font-size:14px;font-weight:600;color:var(--muted);padding:10px 14px;min-height:44px}
.tabs button:hover{color:var(--navy)}
.tabs button.active{background:transparent;color:var(--navy);border-bottom-color:var(--orange)}

/* Fenêtres */
.ov{background:rgba(20,33,61,.55);backdrop-filter:none}
.modal{box-shadow:var(--sh-pop);border-radius:var(--r-lg)}
.mhead{background:var(--card);color:var(--ink);border-bottom:1px solid var(--line)}
.mhead .x{color:var(--ink);opacity:1;width:44px;height:44px;border-radius:var(--r-md);top:10px;right:10px}
.mhead .x:hover{background:var(--navy-tint)}
.mhead .ref{color:var(--orange-text);font-size:12px;font-weight:600;letter-spacing:.6px;text-transform:uppercase}
.mhead h2{font-size:24px;line-height:32px;font-weight:600;color:var(--ink)}
.mhead .fsub{color:var(--muted);opacity:1}

/* Cartes, pied, toast */
.card,.card-soft{border-radius:var(--r-lg);border-color:var(--line);box-shadow:var(--sh)}
.card:hover{transform:none;box-shadow:var(--sh-pop)}
footer.app{background:var(--card);border-top:1px solid var(--line)}
.fwrap{color:var(--muted);font-size:14px}
.fwrap img{height:22px;opacity:1}
.toast{background:var(--navy);border-radius:var(--r-md)}
.toast.err{background:var(--danger)}
select.fsel{width:auto;max-width:100%;flex:0 1 auto}
.search{padding:0 12px}
.search input,.search input:hover,.search input:focus{min-height:42px;border:0;padding:0;box-shadow:none;background:transparent}
.search:focus-within{box-shadow:var(--focus);border-color:var(--navy)}
@media (max-width:640px){select.fsel{width:100%;flex:1 1 100%}}
.prio{font-size:12px;line-height:16px;font-weight:600;padding:2px 10px;border-radius:var(--r-full);text-transform:none;letter-spacing:0}
.prio-top{background:var(--orange-tint);color:var(--orange-text)}
.prio-urgent{background:var(--warn-bg);color:var(--warn)}

/* =====================================================================================================
   LOT 2 — Vue sourceur : en-tête et navigation, bandeau à réticule, compteurs, cartes AO, fiche AO en deux
   colonnes, « Mes candidatures » en tableau. (Classes génériques réutilisées par la console au lot 3.)
   ===================================================================================================== */
.brandlink{display:inline-flex;align-items:center;flex:none}
.brandlink:hover{text-decoration:none}
.hnav{margin-left:auto;gap:4px}
.hnav > a{position:relative}
.hnav > a.on{background:var(--navy-tint);color:var(--navy);box-shadow:inset 0 -2px 0 var(--orange)}
.nb{display:inline-flex;min-width:20px;height:20px;border-radius:var(--r-full);background:var(--orange);color:#fff;font-size:12px;font-weight:600;align-items:center;justify-content:center;padding:0 6px;margin-left:6px}
.hnav .who{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--muted);padding-left:12px;margin-left:8px;border-left:1px solid var(--line)}
.av{width:32px;height:32px;border-radius:var(--r-full);background:var(--navy);color:#fff;font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex:none}
.hlogout{width:40px;height:40px;justify-content:center;padding:0!important}
.navtoggle{display:none;margin-left:auto;width:44px;height:44px;border:0;background:transparent;border-radius:var(--r-md);color:var(--ink);font-size:20px;cursor:pointer;align-items:center;justify-content:center}
.navtoggle:hover{background:var(--navy-tint)}
@media (max-width:860px){
  .navtoggle{display:inline-flex}
  header.app{position:relative;z-index:40}
  .hnav{display:none;position:absolute;left:0;right:0;top:64px;background:var(--card);border-bottom:1px solid var(--line);box-shadow:var(--sh-pop);flex-direction:column;align-items:stretch;padding:8px 16px 16px;gap:2px;margin:0}
  .hnav.open{display:flex}
  .hnav > a,.hnav > button{min-height:44px;justify-content:flex-start}
  .hnav .who{border-left:0;margin:8px 0 0;padding:12px 0 0;border-top:1px solid var(--line)}
  .hlogout{width:auto;justify-content:flex-start;padding:0 12px!important}
  .hlogout::after{content:"Déconnexion";font-weight:600}
}

/* Bandeau bleu nuit à réticule */
.hero{position:relative;overflow:hidden;padding:0}
.hero .in{max-width:1200px;margin:0 auto;padding:32px 24px;position:relative}
.hero .ret{position:absolute;right:-120px;top:-160px;width:520px;height:520px;fill:none;stroke:var(--navy-2);stroke-width:3;stroke-linecap:round;pointer-events:none}
.hero p{margin-top:6px;max-width:680px}
.stats4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:24px}
.stats4[hidden]{display:none}
.stats4 .stat{display:flex;flex-direction:column;gap:4px;text-align:left;border:1px solid transparent;font:inherit;cursor:pointer;box-shadow:none;min-height:44px}
.stats4 .stat.on{border-color:var(--orange);box-shadow:0 0 0 1px var(--orange)}
.si{width:36px;height:36px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;margin-bottom:6px;font-size:18px}
.si-o{background:var(--orange-tint);color:var(--orange-text)}.si-n{background:var(--navy-tint);color:var(--navy)}.si-w{background:var(--warn-bg);color:var(--warn)}.si-i{background:var(--info-bg);color:var(--info)}.si-g{background:var(--ok-bg);color:var(--ok)}
@media (max-width:640px){.stats4{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stats4 .stat b{font-size:22px;line-height:28px}.hero .ret{width:360px;height:360px;right:-140px;top:-120px}}

main{max-width:1200px;padding:8px 24px 64px}
@media (max-width:640px){main{padding:8px 16px 48px}}
.toolbar{margin:24px 0 16px;gap:12px}
.segbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.seg{display:inline-flex;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:3px;gap:2px;flex-wrap:wrap}
.seg button{font:inherit;font-size:14px;font-weight:500;border:0;background:transparent;color:var(--ink);padding:6px 12px;border-radius:8px;cursor:pointer;min-height:36px}
.seg button .muted{font-weight:400}
.seg button.on{background:var(--navy);color:#fff}
.seg button.on .muted{color:#C9D0DD}

/* Carte AO */
.grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:24px}
@media (max-width:640px){.grid{grid-template-columns:1fr;gap:16px}}
.card.ao{padding:0 24px 20px;gap:12px;overflow:hidden;border:1px solid transparent}
.card.ao::before{content:none}
.card.ao:hover{border-color:var(--line);box-shadow:var(--sh)}
.ao-top{margin:0 -24px;padding:12px 24px;background:var(--navy-tint);display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.card.ao.is-top .ao-top{background:var(--orange-tint)}
.ao-top .bz{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.ref,.refi{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.4px;color:var(--muted);font-family:var(--font-sans)}
.refi{display:inline-flex;gap:6px;align-items:center}
.refi i{color:var(--orange);font-size:15px}
.card.ao .ctitle{font-family:var(--font-display);font-size:18px;line-height:26px;font-weight:600;color:var(--ink)}
.ty{display:inline-flex;gap:6px;border-radius:var(--r-sm);padding:3px 10px;font-size:13px;line-height:20px;font-weight:600}
.ty-f{background:var(--navy);color:#fff}.ty-c{background:var(--orange);color:#fff}.ty-f b{color:var(--orange-light);font-weight:600}
.card.ao .meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px;line-height:20px;color:var(--muted)}
.card.ao .meta span{display:inline-flex;gap:6px;align-items:center}
.card.ao .meta i{color:var(--navy)}
.rem{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;background:var(--orange-tint);color:var(--navy);border-radius:var(--r-md);padding:6px 12px;font-size:15px;font-weight:600}
.rem i{color:var(--orange-text)}
.chip{background:var(--navy-tint);color:var(--navy);font-weight:500;border-radius:var(--r-sm);padding:2px 8px;font-size:13px;line-height:20px;border:0}
.pub{font-size:13px;color:var(--muted);border-top:1px solid var(--bg);padding-top:12px;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:auto}
.go{color:var(--orange-text);font-weight:600;display:inline-flex;gap:4px;align-items:center}
.b-new{background:var(--navy);color:#fff}

/* Fiche AO : en-tête, deux colonnes (AO à gauche, « Proposer un profil » sur fond orange très léger) */
.modal.fiche{max-width:1120px}
.fiche-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:24px 28px}
.fiche-head .fh-txt{display:flex;flex-direction:column;gap:8px;min-width:0}
.fiche-head .ref{display:flex;gap:8px;align-items:center;flex-wrap:wrap;text-transform:none;letter-spacing:.4px}
.fiche-head .fh-act{display:flex;gap:8px;align-items:center;flex:none}
.fiche-head .x{position:static;display:inline-flex;align-items:center;justify-content:center;font-size:20px}
.fiche-body{display:grid;grid-template-columns:minmax(0,1fr) 440px}
.fiche-l{padding:24px 28px;display:flex;flex-direction:column;gap:20px;min-width:0}
.fiche-r{padding:24px 28px;background:var(--orange-wash);border-left:1px solid var(--line);display:flex;flex-direction:column;gap:12px;min-width:0}
.fiche-r h2{font-family:var(--font-display);font-size:20px;line-height:28px;font-weight:600;color:var(--ink)}
.fiche-r .form2{grid-template-columns:1fr 1fr}
.fiche-r .form2 .full{grid-column:1/-1}
.kvg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;background:var(--navy-tint);border-radius:var(--r-md);padding:16px}
.kvg div{display:flex;flex-direction:column;gap:2px;min-width:0}
.kvg b{font-size:14px;line-height:20px;font-weight:600;color:var(--ink);overflow-wrap:anywhere}
.lbl,.label-s{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.fiche-pres h3{font-family:var(--font-display);font-size:16px;line-height:24px;font-weight:600;color:var(--ink);margin:16px 0 8px;padding-bottom:6px;position:relative}
.fiche-pres h3::after{content:"";position:absolute;left:0;bottom:0;width:32px;height:2px;background:var(--orange)}
.fiche-pres p,.fiche-pres li{font-size:15px;line-height:24px}
.drop{display:flex;gap:12px;align-items:center;border:1.5px dashed var(--line-strong);border-radius:var(--r-md);background:var(--card);padding:14px 16px;font-size:14px;font-weight:500;color:var(--ink);cursor:pointer;margin:0;min-height:52px}
.drop i{font-size:20px;color:var(--navy)}
.drop input{position:absolute;opacity:0;width:1px;height:1px}
.drop.ok{border-color:var(--orange);background:var(--orange-wash)}
.drop:focus-within{box-shadow:var(--focus)}
@media (max-width:1024px){.fiche-body{grid-template-columns:1fr}.fiche-r{border-left:0;border-top:1px solid var(--line)}.kvg{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.ov{padding:0}.modal{border-radius:0;min-height:100vh}.fiche-head{padding:16px}.fiche-l,.fiche-r{padding:16px}.fiche-r .form2{grid-template-columns:1fr}.fiche-head .fh-act .btn{display:none}}

/* Mes candidatures : tableau dans une carte (cartes empilées sur mobile) */
#vue-mine .toolbar{margin-top:24px}
.tcard{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh);overflow-x:auto}
.ttab{width:100%;border-collapse:collapse;font-size:14px;line-height:20px;min-width:0}
.ttab th{background:var(--navy-tint);color:var(--navy);text-align:left;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;padding:12px 16px;border-bottom:1px solid var(--line)}
.ttab td{padding:16px;border-bottom:1px solid var(--bg);vertical-align:middle}
.ttab tr.nr td{background:var(--orange-wash)}
.ttab .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.ttab tr.det td{background:var(--bg);padding:12px 16px 16px}
.ttab .nowrap{white-space:nowrap}
.dot{display:inline-block;width:8px;height:8px;border-radius:var(--r-full);background:var(--orange);margin-right:6px;vertical-align:middle}
.nresp{color:var(--orange-text);font-weight:600;font-size:13px}
.reflink{background:none;border:0;padding:0;font:inherit;font-size:12px;font-weight:600;letter-spacing:.4px;color:var(--orange-text);cursor:pointer}
.reflink:hover{text-decoration:underline}
.taux{font-family:var(--font-display);font-weight:700;font-size:16px}
.t-ok{color:var(--ok)}.t-warn{color:var(--warn)}.t-ko{color:var(--danger)}
.jauge{display:block;width:72px;height:6px;border-radius:var(--r-full);background:var(--navy-tint);overflow:hidden;margin-top:4px}
.jauge i{display:block;height:100%;border-radius:var(--r-full)}
.j-ok{background:var(--ok)}.j-warn{background:var(--warn)}.j-ko{background:var(--danger)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:760px){
  .ttab thead{display:none}
  .ttab tr{display:block;padding:12px 16px;border-bottom:1px solid var(--line)}
  .ttab td{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border:0;text-align:right}
  .ttab td::before{content:attr(data-l);font-size:12px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);text-align:left}
  .ttab td[data-l=""]::before{content:none}
  .ttab .acts{justify-content:flex-start}
  .ttab tr.det{padding:0}.ttab tr.det td{display:block;text-align:left}.ttab tr.det td::before{content:none}
}
.ttab td.acts{display:table-cell;text-align:right;white-space:nowrap}
.ttab td.acts .btn{margin:2px 0 2px 4px}
.ttab th{white-space:nowrap}
@media (max-width:760px){.ttab td.acts{display:flex;flex-wrap:wrap;gap:6px;white-space:normal;text-align:left}.ttab td.acts .btn{margin:0}}
.note{background:var(--navy-tint);border:0;border-left:3px solid var(--orange);color:var(--ink);font-size:14px;border-radius:var(--r-md)}
.newresp{background:transparent;border:0;color:var(--orange-text);font-size:13px;font-weight:600;padding:0}
.att-add{position:relative;border:1.5px dashed var(--line-strong);border-radius:var(--r-md);padding:8px 12px;font-size:13px;font-weight:600;color:var(--ink);min-height:40px;background:var(--card)}
.att-add:hover{border-color:var(--navy)}
.att-add input[type=file]{position:absolute;opacity:0;width:1px;height:1px}
.att-add:focus-within{box-shadow:var(--focus)}
.ttab tr[hidden]{display:none!important}
.filtres-btn{display:none}
@media (max-width:640px){
  #vue-besoins .toolbar .search{flex:1 1 calc(100% - 120px);min-width:0}
  .filtres-btn{display:inline-flex}
  #vue-besoins .toolbar select.fsel{display:none}
  #vue-besoins .toolbar.ouvert select.fsel{display:block}
}

/* ---- Corrections après revue du lot 2 ---- */
/* Encarts (§ 4.13) : teintés, sans bordure gauche */
.encart{display:flex;gap:10px;align-items:flex-start;border-radius:var(--r-md);padding:12px 16px;font-size:14px;line-height:20px;margin-top:8px}
.encart > i{font-size:20px;flex:none;margin-top:-1px}
.encart.warn{background:var(--warn-bg);color:var(--ink)}.encart.warn > i{color:var(--warn)}
.encart.info{background:var(--navy-tint);color:var(--navy)}
.encart.ok{background:var(--ok-bg);color:var(--ink)}.encart.ok > i{color:var(--ok)}
.encart.marque{background:var(--orange-tint);color:var(--navy)}.encart.marque > i{color:var(--orange-text)}
.retour{background:var(--navy-tint);border-radius:var(--r-md);padding:10px 14px;margin-top:8px}
.retour .lbl{display:block;margin-bottom:2px;color:var(--navy)}
.retour p{margin:0;font-size:14px;line-height:20px;color:var(--ink)}
.note{border-left:0}

/* Références d'AO : jamais coupées */
.ref,.refi,.reflink,#m-ref span:first-child{white-space:nowrap}

/* Cartes AO : encart de rémunération ajusté au contenu ; « Top » plein sur les cartes Top */
.card.ao{display:flex;flex-direction:column;align-items:flex-start}
.card.ao > *{max-width:100%}
.card.ao .ao-top,.card.ao .pub,.card.ao .chips,.card.ao .meta,.card.ao .ctitle{align-self:stretch}
.card.ao .rem{align-self:flex-start;width:auto}
.card.ao.is-top .b-top{background:var(--orange);color:#fff}

/* Compteurs : icône 20 px */
.si i{width:20px;height:20px}

/* Fiche AO : « Télécharger la fiche » aussi sur mobile (icône seule) */
@media (max-width:640px){.fiche-head .fh-act .btn{display:inline-flex;width:44px;padding:0;justify-content:center;font-size:0;gap:0}.fiche-head .fh-act .btn i{font-size:18px}}

/* Tiroir de navigation (≤ 860 px) : voile + panneau latéral */
.nav-voile{position:fixed;inset:0;background:rgba(20,33,61,.55);z-index:60}
.nav-voile[hidden]{display:none}
.nav-tete{display:none}
@media (max-width:860px){
  .hnav{position:fixed;top:0;right:0;bottom:0;left:auto;width:min(320px,86vw);z-index:61;border:0;padding:12px 16px 24px;overflow-y:auto;box-shadow:var(--sh-pop);transform:translateX(100%);transition:transform .2s ease;display:flex;visibility:hidden}
  .hnav.open{transform:none;visibility:visible}
  .nav-tete{display:flex;align-items:center;justify-content:space-between;padding:4px 0 12px;margin-bottom:8px;border-bottom:1px solid var(--line)}
  .nav-tete .navtoggle{display:inline-flex;margin:0}
  body.tiroir-ouvert{overflow:hidden}
}
@media (prefers-reduced-motion:reduce){.hnav{transition:none}}

/* Besoins ouverts, mobile : recherche + « Filtres » sur une ligne ; segments pleine largeur */
@media (max-width:640px){
  #vue-besoins .toolbar{flex-wrap:wrap}
  #vue-besoins .toolbar .search{flex:1 1 0!important;min-width:0!important;width:auto}
  #vue-besoins .toolbar .filtres-btn{flex:none}
  .segbar{flex-direction:column;align-items:stretch;gap:8px}
  .seg{display:flex;width:100%}.seg button{flex:1}
}

/* Mes candidatures : recherche et tri dans le bandeau */
#hero-outils .toolbar{margin:24px 0 0;background:transparent}
#hero-outils .search,#hero-outils select{background:var(--card)}
.card.ao .ao-top{max-width:none;width:calc(100% + 48px)}
@media (max-width:640px){.seg button{flex:1 1 auto;padding:6px 8px;font-size:13px;white-space:nowrap}}
.card.ao .rem{font-size:14px;padding:6px 10px;gap:6px}

/* =====================================================================================================
   LOT 3 — Console : menu latéral bleu nuit (tiroir ≤ 1024 px), en-tête « Console », titres de page,
   compteurs, listes en tableau, fenêtres, cadre « document » des aperçus.
   ===================================================================================================== */
.console-h .hbar{gap:16px}
.console-badge{margin-left:2px}
.console-nav{margin-left:auto}
.side-toggle{display:none;margin:0 -4px 0 -8px}
.console{display:flex;align-items:stretch;min-height:calc(100vh - 64px)}
.side{width:248px;flex:none;background:var(--navy);padding:16px 12px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;align-self:flex-start;min-height:calc(100vh - 64px)}
.side .grp{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:#8F9AB0;padding:16px 12px 6px}
.side .grp:first-of-type{padding-top:4px}
.side a{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:#E5E9F0;text-decoration:none;padding:10px 12px;border-radius:var(--r-md);min-height:40px}
.side a i{color:#AEB6C6;font-size:18px}
.side a:hover{background:var(--navy-2);text-decoration:none}
.side a.on{background:var(--navy-2);color:#fff;font-weight:600}
.side a.on i{color:var(--orange-light)}
.side a .n{margin-left:auto;font-size:12px;font-weight:600;background:var(--orange);color:#fff;border-radius:var(--r-full);padding:0 8px;line-height:20px}
.side .bot{margin-top:auto;border-top:1px solid var(--navy-2);padding-top:12px;display:flex;flex-direction:column;gap:2px}
.side a:focus-visible{box-shadow:0 0 0 2px var(--navy),0 0 0 4px var(--orange-light)}
.side-tete{display:none}
.side-voile{position:fixed;inset:0;background:rgba(20,33,61,.55);z-index:60}
.side-voile[hidden]{display:none}
#main{flex:1;min-width:0;max-width:none;padding:32px}
.page-tete{margin-bottom:20px}
.page-tete h1{font-family:var(--font-display);font-size:28px;line-height:36px;font-weight:700;letter-spacing:-.5px;color:var(--ink)}
.page-tete p{margin-top:4px}
.stats5,#sub-dash{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-bottom:24px}
.stats5[hidden]{display:none}
.stats5 .stat,#sub-dash .stat{display:flex;flex-direction:column;gap:4px;text-align:left;border:1px solid transparent;font:inherit;cursor:pointer;min-height:44px}
.stats5 .stat b,#sub-dash .stat b{font-size:28px;line-height:32px}
#sub-dash .stat.on{border-color:var(--orange);box-shadow:0 0 0 1px var(--orange)}
.filtre-actif{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:var(--navy-tint);color:var(--navy);border-radius:var(--r-md);padding:8px 8px 8px 16px;margin-bottom:12px;font-size:14px}
.subs-t .badges{display:flex;gap:4px;flex-wrap:wrap;margin:4px 0}
.subs-t td:first-child{min-width:200px}
.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:260px;margin-top:4px}
@media (max-width:1024px){
  .side-toggle{display:inline-flex}
  .side{position:fixed;top:0;left:0;bottom:0;z-index:61;min-height:0;overflow-y:auto;transform:translateX(-100%);transition:transform .2s ease;visibility:hidden;width:min(300px,86vw)}
  .side.open{transform:none;visibility:visible}
  .side-tete{display:flex;justify-content:space-between;align-items:center;padding:0 4px 8px 12px;color:#8F9AB0}
  .side-tete .navtoggle{display:inline-flex;color:#fff;margin:0}
  .side-tete .navtoggle:hover{background:var(--navy-2)}
  #main{padding:24px 20px}
  .stats5,#sub-dash{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:860px){.console-nav{display:flex;position:static;transform:none;visibility:visible;width:auto;box-shadow:none;padding:0;flex-direction:row;background:none;border:0}.console-nav .who-t,.console-nav .hlogout::after{display:none}.console-nav .who{border:0;margin:0;padding:0}}
@media (max-width:640px){
  #main{padding:20px 16px}
  .stats5,#sub-dash{display:flex;overflow-x:auto;gap:12px;scroll-snap-type:x mandatory;padding-bottom:4px}
  .stats5 .stat,#sub-dash .stat{flex:0 0 150px;scroll-snap-align:start}
  .console-badge{display:none}
  .page-tete h1{font-size:24px;line-height:32px}
}
@media (prefers-reduced-motion:reduce){.side{transition:none}}

/* Tableaux génériques de la console (Besoins, Journal, Utilisateurs, Claude…) */
.tablewrap{background:var(--card);border-radius:var(--r-lg);box-shadow:var(--sh);border:0;overflow-x:auto}
.tablewrap table{border-collapse:collapse;width:100%}
.tablewrap th{background:var(--navy-tint);color:var(--navy);font-size:12px;line-height:16px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;padding:12px 16px;border-bottom:1px solid var(--line);text-align:left}
.tablewrap td{padding:14px 16px;border-bottom:1px solid var(--bg);font-size:14px;vertical-align:middle}
.tablewrap tr:hover td{background:#FAFBFC}
.panel > .card-soft,.panel .card-soft{background:var(--card)}
.tabs[hidden]{display:none}

/* Cadre « document » : l'aperçu garde la charte de l'organisation, jamais celle de Target Sourcing */
.cadre-doc{background:#E5E7EB;border-radius:var(--r-md);padding:20px}
.cadre-doc-lbl{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:8px}
.cadre-doc .aoprev,.cadre-doc .aop-page{box-shadow:0 1px 4px rgba(0,0,0,.12)}
/* ---- Refonte lot 3 : finitions console ---- */
.console{position:relative}
.console::before{content:"";position:absolute;left:0;top:0;bottom:0;width:248px;background:var(--navy);z-index:0}
.console>.side{z-index:1}
.console>main{position:relative;z-index:1}
@media (max-width:1024px){.console::before{display:none}}
input[type=file]{padding:8px;font-size:14px;color:var(--muted);cursor:pointer}
input[type=file]::file-selector-button{font:600 14px/20px Inter,system-ui,sans-serif;color:var(--navy);background:#fff;border:1px solid var(--navy);border-radius:var(--r-md);padding:7px 14px;margin-right:12px;cursor:pointer}
input[type=file]::file-selector-button:hover{background:var(--navy-tint)}
.tablewrap td select,.tablewrap td input:not([type=checkbox]):not([type=radio]){min-height:34px;padding:5px 30px 5px 10px;font-size:13.5px}
.tablewrap td input:not([type=checkbox]):not([type=radio]):not([type=date]){padding-right:10px}
.needs-t td:nth-child(2){min-width:220px}
.needs-t td select{min-width:118px}
.needs-t td:nth-child(n+6),.ai-t td:first-child{white-space:nowrap}
.users-t td:first-child,.users-t td:nth-child(2){white-space:nowrap}
.users-t td select{min-width:128px}

.cadre-doc-lbl .badge{background:#fff;color:var(--ink2);border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}
@media (max-width:600px){.cadre-doc{padding:10px}.aoprev{padding:14px 12px}}
