:root{--pa:#7a3fd0;--julien:#a87400;--boris:#d0342c;--armand:#1f8a4c;--bg:#f6f6f4;--card:#fff;--ink:#1c1c1a;--mute:#6b6b66;--line:#e2e2dc;--acc:#c4552d;--ok:#2f7d4f;--warn:#a86a00;--bad:#b83a2b}
@media(prefers-color-scheme:dark){:root{--pa:#c08bff;--julien:#f2c230;--boris:#ff6f66;--armand:#4fd08a;--bg:#161615;--card:#1f1f1d;--ink:#ecece8;--mute:#9a9a92;--line:#33332f;--acc:#e37a52;--ok:#5fb184;--warn:#d9a441;--bad:#e0705f}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,sans-serif}
header{display:flex;align-items:center;gap:14px;padding:10px 20px;border-bottom:1px solid var(--line);background:var(--card);flex-wrap:wrap;position:sticky;top:0;z-index:5}
header h1{font-size:16px;margin:0}
nav{display:flex;gap:2px;flex-wrap:wrap}
nav button{background:none;border:0;padding:6px 11px;border-radius:6px;color:var(--mute);cursor:pointer;font:inherit}
nav button.on{background:var(--bg);color:var(--ink);font-weight:600}
#askwrap{flex:1;min-width:200px;max-width:520px;margin-left:auto;position:relative}
#hits{display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px;max-height:70vh;overflow:auto;box-shadow:0 8px 24px rgba(0,0,0,.25);z-index:15}
#hits.on{display:block}
.hit.ask{border-color:var(--acc)}
.secret{-webkit-text-security:disc}
#panel{display:none;position:fixed;top:0;right:0;bottom:0;width:400px;max-width:100vw;background:var(--card);border-left:1px solid var(--line);padding:12px;z-index:10;flex-direction:column;gap:10px}
.panel-on #panel{display:flex}
.log{flex:1;overflow:auto;display:flex;flex-direction:column;gap:10px}
.done{margin:6px 0 0;padding-left:18px;color:var(--ok)}
.msg.bad{color:var(--bad)}
@media(min-width:1000px){.panel-on #app{margin-right:400px}}
main{max-width:1500px;margin:0 auto;padding:20px 16px}
h2{font-size:16px;margin:0 0 10px}
h3{font-size:14px;margin:16px 0 6px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:14px}
button{font:inherit}
.btn{background:var(--acc);color:#fff;border:0;border-radius:6px;padding:8px 14px;cursor:pointer}
.btn:disabled{opacity:.5;cursor:wait}
.ghost{background:none;border:1px solid var(--line);color:var(--ink);border-radius:6px;padding:5px 10px;cursor:pointer}
.ghost.on{border-color:var(--acc);color:var(--acc)}
.link{background:none;border:0;padding:0;color:var(--acc);cursor:pointer;text-align:left}
input,textarea,select{width:100%;font:inherit;padding:8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}
select{width:auto}
textarea{min-height:120px;resize:vertical}
.mono,pre{font:13px/1.5 ui-monospace,Menlo,monospace}
pre{white-space:pre-wrap;background:var(--bg);padding:12px;border-radius:6px;margin:0;max-height:520px;overflow:auto}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.row>input{flex:1;min-width:140px}
.between{justify-content:space-between}
.mute{color:var(--mute)}
.small{font-size:13px}
.err{background:color-mix(in srgb,var(--bad) 12%,transparent);color:var(--bad);padding:8px 12px;border-radius:6px;margin-bottom:12px}
.info{background:color-mix(in srgb,var(--acc) 10%,transparent);padding:8px 12px;border-radius:6px;margin-bottom:12px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:10px}
.topic{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px;font-size:14px}
.topic h3{margin:8px 0 0;font-size:15px}
.label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);margin-top:8px}
.badge{font-size:12px;padding:1px 8px;border-radius:99px;border:1px solid currentColor;white-space:nowrap}
.en_cours,.a_surveiller,.termine{color:var(--mute)}.bloque{color:var(--bad)}
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
@media(max-width:760px){.cols{grid-template-columns:1fr}}
.col{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px;min-height:220px}
.col.over{border-color:var(--acc)}
.col h3{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--mute);margin:0 0 8px}
.task{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px;margin-bottom:8px;cursor:grab}
.task.dragging{opacity:.4}
.task .row{margin-top:4px}
.split{display:grid;grid-template-columns:270px 1fr;gap:14px;align-items:start}
@media(max-width:760px){.split{grid-template-columns:1fr}}
.callitem{display:block;width:100%;text-align:left;background:none;border:0;border-radius:6px;padding:7px 9px;cursor:pointer;color:var(--ink)}
.callitem.on{background:var(--bg);font-weight:600}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);margin-right:6px}
.dot.off{background:var(--line)}
.md h1,.md h2,.md h3{font-size:15px;margin:14px 0 4px}
.md p{margin:6px 0}.md ul{margin:6px 0;padding-left:20px}
.empty{border:2px dashed var(--line);border-radius:10px;padding:32px;text-align:center;color:var(--mute);cursor:pointer}
.msg{padding:10px 12px;border-radius:8px;max-width:92%}
.msg.user{background:color-mix(in srgb,var(--acc) 12%,transparent);align-self:flex-end;white-space:pre-wrap}
.msg.assistant{background:var(--card);border:1px solid var(--line);align-self:flex-start}
.auth{max-width:340px;margin:12vh auto}
.auth input{margin-bottom:10px}
.hit{display:block;width:100%;text-align:left;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:8px;cursor:pointer;color:var(--ink)}

.pa,.owner-pa{--who:var(--pa)}.julien,.owner-julien{--who:var(--julien)}.boris,.owner-boris{--who:var(--boris)}.armand,.owner-armand{--who:var(--armand)}.owner-none{--who:var(--line)}
.person{display:inline-block;font-size:12px;font-weight:600;padding:1px 9px;border-radius:99px;color:var(--who,var(--mute));background:color-mix(in srgb,var(--who,var(--mute)) 15%,transparent);border:1px solid color-mix(in srgb,var(--who,var(--mute)) 40%,transparent)}
.name{color:var(--who);font-weight:600}
.pill{background:none;border:1px solid color-mix(in srgb,var(--who,var(--acc)) 45%,transparent);color:var(--who,var(--acc));border-radius:99px;padding:4px 12px;cursor:pointer;font-weight:600}
.pill.on{background:var(--who,var(--acc));color:var(--card)}
.task{border-left:4px solid var(--who)}
.nsgroup{border-left:4px solid var(--who);background:color-mix(in srgb,var(--who) 7%,transparent);border-radius:8px;padding:10px 12px;margin-bottom:10px}
.ns{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:6px 0;border-top:1px solid var(--line)}
.status{font-size:12px;padding:1px 8px;border-radius:99px;border:1px solid currentColor;white-space:nowrap}
.status{color:var(--mute)}
.keypoints{background:color-mix(in srgb,var(--acc) 8%,transparent);border-radius:8px;padding:10px 12px;margin-bottom:12px}
.keypoints ul{margin:6px 0 0;padding-left:18px}
:root{--p1:#a8a8a1;--p2:#d3d3cd;--p3:#f7f7f4}
@media(prefers-color-scheme:dark){:root{--p1:#0e0e0d;--p2:#2f2f2c;--p3:#5b5b56}}
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.tabs.subs{margin-bottom:12px;border-bottom:0;gap:6px}
.tab{background:none;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;padding:8px 14px;color:var(--mute);cursor:pointer;font-weight:600}
.tab.on{color:var(--cat,var(--ink));border-bottom-color:var(--cat,var(--ink))}
.tab .count{margin-left:6px;font-size:12px;font-weight:400;color:var(--mute)}
.tabs.subs .tab{border:1px solid var(--line);border-radius:99px;margin:0;padding:3px 12px;font-size:13px}
.tabs.subs .tab.on{border-color:var(--cat,var(--ink));color:var(--cat,var(--ink))}
.tags{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.tag{border:1px solid var(--line);border-radius:4px;padding:0 7px;font-size:12px;cursor:pointer;color:var(--mute);background:none}
.prio{background:none;border:1px solid var(--line);border-radius:4px;padding:0 4px;font-size:12px;font-weight:700;color:var(--ink)}
.topictasks{margin-top:8px;border-top:1px solid var(--line)}
.ttask{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;padding:4px 0;font-size:13px}
select.linked{max-width:190px;background:none;font-size:12px;padding:1px 4px;color:var(--mute)}
.plain{background:none;border:0;padding:0;color:var(--mute);cursor:pointer;font-size:12px}
.plain:hover{color:var(--ink)}
.ttask{align-items:center}
.tasklink{flex:1;min-width:0;background:none;border:0;padding:0;color:var(--ink);cursor:pointer;text-align:left;font:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tasklink:hover{text-decoration:underline}
.callshover{position:relative;display:inline-block;margin-top:8px;font-size:12px;color:var(--mute);cursor:default}
.callspop{display:none;position:absolute;left:0;bottom:100%;min-width:190px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:4px;box-shadow:0 6px 18px rgba(0,0,0,.3);z-index:6}
.callshover:hover .callspop,.callshover:focus-within .callspop{display:block}
.dropzone{border:2px dashed var(--line);border-radius:8px;padding:12px;text-align:center;cursor:pointer;font-size:14px}
.dropzone.over{border-color:var(--ink);background:var(--bg)}
.dot.wait{background:var(--warn)}
.focus{outline:1px solid color-mix(in srgb,var(--ink) 55%,transparent);outline-offset:1px;border-radius:6px}
.rv{display:flex;gap:6px;align-items:center;margin-bottom:6px;flex-wrap:wrap}
.rv select{max-width:190px}
.rvtopic{border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:8px}
.rv{flex-wrap:wrap;gap:6px 8px;padding:4px 0;margin:0;border-bottom:1px solid var(--line)}
.rv.off{opacity:.45}
.rv.off input.bare{text-decoration:line-through}
.tick{width:16px;height:16px;flex:none;margin:0}
input.bare{flex:1 1 340px;width:auto;min-width:0;border:1px solid transparent;background:none;padding:3px 5px}
input.bare:hover,input.bare:focus{border-color:var(--line)}
.pillsel{width:auto;max-width:170px;flex:none;background:none;border:1px solid var(--line);border-radius:99px;padding:1px 6px;font-size:12px}
.newtag{flex:none;font-size:11px;font-weight:700;border-radius:4px;padding:1px 6px;background:var(--ink);color:var(--card)}
.rvname{flex:none}
.rvstate{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.split>*{min-width:0}
.rv input.tick{flex:none;width:16px}
.tags{gap:4px}
.cardactions{margin-left:auto;display:flex;gap:10px;align-items:center}
.cardtext{margin-top:4px;font-size:13px;line-height:1.4;cursor:pointer;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.cardtext.open{display:block}
.cardnext{margin-top:4px;line-height:1.35}
.topic h3{margin-top:6px}
.topictasks{margin-top:6px;padding-top:4px}
.minitabs{display:flex;gap:10px;margin-bottom:2px}
.minitabs button{background:none;border:0;border-bottom:2px solid transparent;padding:1px 0;font-size:12px;color:var(--mute);cursor:pointer}
.minitabs button.on{color:var(--ink);border-bottom-color:var(--ink)}
.ttask{padding:2px 0;gap:6px}
.tick2{flex:none;width:16px;height:16px;padding:0;border-radius:50%;border:1px solid var(--mute);background:none;color:#fff;font-size:11px;line-height:14px;cursor:pointer}
.tick2:hover{border-color:var(--ink)}
.tick2.on{border-color:transparent;background:#6b6b66}
.callshover{margin:0}
.callspop{top:100%;bottom:auto}
:root{--c-setup:#6d4bc4;--c-product:#1f6fd1;--c-piggy:#c23f86;--c-other:#b3611a;--c-marketing:#a87400}
@media(prefers-color-scheme:dark){:root{--c-setup:#b49cf5;--c-product:#5aa9ff;--c-piggy:#f08abf;--c-other:#ee9e5a;--c-marketing:#f2c230}}
.cat-setup{--cat:var(--c-setup)}.cat-product{--cat:var(--c-product)}.cat-piggy{--cat:var(--c-piggy)}.cat-marketing{--cat:var(--c-marketing)}.cat-other{--cat:var(--c-other)}
.tag[class*="cat-"]{color:var(--cat);border-color:color-mix(in srgb,var(--cat) 45%,transparent);background:color-mix(in srgb,var(--cat) 14%,transparent);font-weight:600}
span.tag{cursor:default}
.arrow{padding:2px 8px}
.task.dropbefore{box-shadow:0 -3px 0 var(--ink)}

/* --- Passe de clarté --- */
button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
.ghost:hover{background:color-mix(in srgb,var(--ink) 7%,transparent)}
.btn:hover{filter:brightness(1.08)}
header{padding:8px 20px}
main{padding:16px}
.count{margin-left:6px;font-size:12px;font-weight:400;color:var(--mute)}
.iconbtn{background:none;border:0;border-radius:4px;padding:2px 6px;color:var(--mute);cursor:pointer;font-size:14px;line-height:1.2}
.iconbtn:hover{background:color-mix(in srgb,var(--ink) 10%,transparent);color:var(--ink)}
.plain:hover{text-decoration:underline}
.addlink{font-size:13px;white-space:nowrap}
/* Suivi : deux niveaux bien distincts */
.suivibar{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:12px}
.suivibar .row{padding-bottom:6px}
.suivibar .addlink{padding-bottom:12px}
.tabs.cats{border-bottom:0}
.tabs.cats .tab{font-size:15px;padding:8px 12px 10px}
.tabs.cats .tab[class*="cat-"]::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--cat);margin-right:7px}
.tabs.cats .tab.on{color:var(--ink);border-bottom-color:var(--cat,var(--ink))}
.subbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-4px 0 12px;padding:6px 10px;border-radius:8px;background:color-mix(in srgb,var(--cat) 10%,transparent)}
.subbarlabel{font-size:13px;font-weight:600;color:var(--cat)}
.tabs.subs{margin:0}
.tabs.subs .tab{border-color:transparent;background:none;font-weight:500}
.tabs.subs .tab.on{background:var(--cat);border-color:var(--cat);color:var(--card)}
.tabs.subs .tab.on .count{color:inherit}
.addtopic{margin-bottom:12px;max-width:560px}
/* To-do */
.col{background:color-mix(in srgb,var(--ink) 3%,transparent);padding:8px}
.col h3{display:flex;align-items:center}
.task{background:var(--card);margin-bottom:6px;padding:8px 8px 6px 10px;transition:box-shadow .1s}
.task:hover{box-shadow:0 1px 6px rgba(0,0,0,.2)}
.taskhead{display:flex;gap:8px;align-items:flex-start;justify-content:space-between}
.tasktext{font-size:14px;line-height:1.35;min-width:0}
.taskwho{flex:none;display:flex;gap:4px}
.taskfoot{display:flex;gap:6px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:6px}
.taskfoot .tags{min-width:0}
.taskactions{display:flex;align-items:center;gap:2px;margin-left:auto}
select.linked{border:0;max-width:170px;padding:0 2px}
.col .addlink{display:block;margin:0 0 8px 2px}
.topic.form{background:var(--card);border-color:var(--ink);grid-row:span 1}
.formname{font-weight:600}
.prios{display:flex;gap:4px;margin-top:3px}
.prio-btn{flex:1;border:2px solid transparent;border-radius:6px;padding:3px 0;font-weight:700;font-size:13px;cursor:pointer;color:var(--ink)}
.prio-btn.p1{background:var(--p1)}.prio-btn.p2{background:var(--p2)}.prio-btn.p3{background:var(--p3)}
.prio-btn.p1{border-color:var(--line)}
.prio-btn.on{border-color:var(--ink)}
.catpick{display:flex;gap:4px;flex-wrap:wrap;margin-top:3px}
.catpick .tag{padding:2px 8px;opacity:.6}
.catpick .tag.picked{opacity:1;outline:2px solid var(--cat)}
.topic.form select{width:100%;margin-top:3px}
.taskform{background:var(--card);border:1px solid var(--ink);border-radius:8px;padding:8px;margin:4px 0 8px}
.taskform select{width:100%;margin-top:3px}
.taskform .pill{padding:2px 10px;font-size:12px}
.addmini{border-bottom-color:transparent}
.minitabs button.addmini:hover{color:var(--ink)}
.tag.plainpick{color:var(--ink);border-color:var(--ink);opacity:1;outline:0}
.tasktopic{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 50%,transparent)}
.col>.taskform{margin-top:0}
.rvmerge{flex:1;min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--warn)}

/* --- Glisser-déposer --- */
.tab[draggable]{cursor:grab}
.tab.lifted,.task.dragging{opacity:.35}
.task.dragging{box-shadow:none}
.task{will-change:transform}
/* --- Filtre de priorité --- */
.trackertop{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.prios.filter{margin:0;gap:6px}
.prio-btn .count{color:inherit;opacity:.75}
.tabs .tab .count{margin-left:5px}
.suivibar{padding-top:0}
/* --- Confort de lecture --- */
body{line-height:1.55}
header{padding:12px 24px;gap:16px}
main{padding:24px}
.card{padding:20px;margin-bottom:18px}
.grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}
.topic{padding:16px 18px;font-size:14px;border-radius:12px}
.topic h3{margin-top:10px;font-size:16px;line-height:1.3}
.tags{gap:6px}
.tag{padding:1px 8px}
.cardactions{gap:12px}
.cardtext{margin-top:8px;line-height:1.5}
.topictasks{margin-top:12px;padding-top:10px}
.minitabs{gap:14px;margin-bottom:6px}
.minitabs button{font-size:13px;padding:2px 0}
.ttask{padding:4px 0;gap:8px}
.tick2{width:17px;height:17px}
.subbar{margin:0 0 16px;padding:8px 12px}
.suivibar{margin-bottom:16px}
.tabs.subs{gap:8px}
/* To-do : juste un peu d'air */
.cols{gap:16px}
.col{padding:12px}
.col h3{margin-bottom:10px}
.task{padding:10px 12px 8px 12px;margin-bottom:8px}
.taskfoot{margin-top:8px}
.tasktext{line-height:1.4}
/* Calls et réglages */
.split{gap:18px}
.callitem{padding:8px 10px}
.ns{padding:8px 0}
.nsgroup{padding:12px 14px;margin-bottom:12px}
.rv{padding:6px 0}
.md p{margin:8px 0}.md ul{margin:8px 0}
.md li{margin-bottom:3px}
.keypoints{padding:12px 14px;margin-bottom:16px}
@media(max-width:760px){main{padding:16px}header{padding:10px 16px}}

.tag.priotag{color:var(--ink);font-weight:700;border-color:transparent}
.tag.priotag.p1{background:var(--p1)}.tag.priotag.p2{background:var(--p2)}.tag.priotag.p3{background:var(--p3);border-color:var(--line)}
.nsmain{min-width:0;flex:1;display:flex;flex-direction:column;gap:6px}
.rvmeta{flex:1 0 100%;display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding-left:24px}
.prios.filter{gap:2px}
.prios.filter .prio-btn{flex:none;background:none;border:0;padding:4px 8px;font-weight:500;color:var(--mute)}
.prios.filter .prio-btn:hover{color:var(--ink)}
.prios.filter .prio-btn.on{color:var(--ink);font-weight:700}
.taskdetail{margin-top:6px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;line-height:1.5}
input.rvdetail{flex:1 0 100%;margin-left:24px;max-width:calc(100% - 24px);color:var(--mute)}
.ownerpick{display:flex;gap:4px;flex-wrap:wrap;flex:none}
.ownerpick .pill{padding:1px 9px;font-size:12px}
.ownerpick .pill:not(.on){opacity:.55}
.ns .ownerpick{margin-top:2px}
.gitem{padding:10px 0;border-top:1px solid var(--line)}
.gfields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:6px}
.gfield .label{margin-top:0}
.gunsure{color:var(--warn)}
@media(max-width:700px){.gfields{grid-template-columns:1fr}}
.rv>input.bare:not(.rvdetail){flex:1 1 calc(100% - 40px);font-weight:500}
.rvwho{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-left:auto}
.gctx{margin-top:6px;padding:8px 10px;background:var(--bg);border-radius:6px;font-size:13px;line-height:1.5}
.gctx mark{background:color-mix(in srgb,var(--warn) 30%,transparent);color:inherit;border-radius:3px;padding:0 2px}
.tag.subtag[class*="cat-"]{background:none;font-weight:500}
.tagmenu{position:relative;display:inline-flex;max-width:200px}
.tag.menutag{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:18px;position:relative;cursor:pointer}
.tag.menutag::after{content:"▾";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:10px;opacity:.7}
.menupop{position:absolute;top:calc(100% + 4px);left:0;z-index:40;display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:150px;padding:8px;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.35)}
.menupop .tag{white-space:nowrap}
.menupop .tag.picked{outline:2px solid var(--cat,var(--ink));outline-offset:1px}
.tree{width:280px;max-height:340px;overflow:auto;display:flex;flex-direction:column;gap:8px}
.treecat,.treesub{display:flex;flex-direction:column;gap:3px}
.treesub{padding-left:10px;margin-top:3px}
.treehead{display:flex;align-items:center;justify-content:space-between;gap:8px}
.treeitem{background:none;border:0;color:var(--ink);cursor:pointer;text-align:left;font:inherit;font-size:13px;padding:3px 6px;border-radius:4px;margin-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.treeitem:hover{background:color-mix(in srgb,var(--ink) 10%,transparent)}
.treeitem.picked{font-weight:700;background:color-mix(in srgb,var(--cat,var(--ink)) 18%,transparent)}
.tree>*,.treecat>*,.treesub>*{flex:none}
.ttask .priotag{flex:none}
.ttask,.topic[draggable]{cursor:grab}
.ttask.dragging,.topic.dragging{opacity:.35}
.person.mini{width:18px;height:18px;padding:0;line-height:18px;text-align:center;font-size:11px;flex:none}
.ttask .priotag{font-size:10px;padding:0 4px;line-height:15px}
.catsection{margin-bottom:24px}
.cathead{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15px;margin-bottom:10px}
.cathead::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--cat)}
.cathead .count{font-weight:400}
.topic[class*="cat-"] h3,.topic[class*="cat-"] .cardtext{color:var(--ink)}
.trackertop{justify-content:flex-end}
.quads{display:grid;grid-template-columns:1fr 1fr;gap:28px 24px;align-items:start}
.quad{min-width:0}
.quad .grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.quadmore{margin-top:8px}
@media(max-width:760px){.quads{grid-template-columns:1fr}}
.topic[class*="cat-"]{background:var(--topic-bg);border:2px solid color-mix(in srgb,var(--cat) 70%,transparent)}
.taskdetail .link{color:var(--mute)}
.taskpath{font-size:12px;color:var(--mute);line-height:1.4;min-width:0}
.pathcat{color:var(--cat);font-weight:600}
.pathsep{margin:0 4px;opacity:.6}
.topic:not(.form){min-height:290px}
.suivibar{justify-content:space-between}
.suivibar .baractions{margin-left:auto;gap:8px}
.ownerfilter .pill{background:none;color:var(--who);padding:3px 11px}
.ownerfilter .pill:not(.on){opacity:.4}
.ownerfilter .pill.on{background:none;color:var(--who);border-color:var(--who)}
.ownerfilter .pill.allpill{--who:var(--ink)}
.quadmore{margin:0 0 0 auto;font-weight:400;color:var(--mute)}
.pathlink{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer}
.pathlink:hover{text-decoration:underline}
.pathlink.pathcat{color:var(--cat)}
.suivibar{margin-bottom:22px;padding-bottom:0}
.suivibar .row.baractions{padding-bottom:8px;gap:10px;align-items:center}
.baractions .row{padding:0;gap:10px;flex-wrap:nowrap}
.baractions button{height:38px;box-sizing:border-box;padding:0 16px;display:inline-flex;align-items:center;line-height:1;white-space:nowrap}
.grid,.quad .grid{gap:18px}
.quads{gap:32px}
.quad .cathead{margin-bottom:14px}
.quadmore{margin:10px 0 0;font-weight:400;color:var(--mute);display:block}
.task{border-left:4px solid var(--cat)}
.taskpath{color:var(--cat)}
.pathsep{opacity:.5}
.subbar{width:fit-content;max-width:100%}
.subbar .tabs{border-bottom:0}
.prios.filter .prio-btn{min-width:78px;text-align:left;font-variant-numeric:tabular-nums}
.prios.filter .count{display:inline-block;min-width:4ch}
.tabs .count{display:inline-block;min-width:4ch;font-variant-numeric:tabular-nums}
.prios.filter{gap:8px;margin-left:20px}
.prios.filter .prio-btn{min-width:68px;padding:4px 10px;text-align:center;border:1px solid var(--line);border-radius:6px;color:var(--ink);font-weight:600}
.prios.filter .prio-btn.p1{background:var(--p1)}.prios.filter .prio-btn.p2{background:var(--p2)}.prios.filter .prio-btn.p3{background:var(--p3)}
.prios.filter .prio-btn:not(.on){opacity:.4;color:var(--ink)}
.prios.filter .prio-btn.on{color:var(--ink);font-weight:600}
.prios.filter .count{min-width:3.6ch;text-align:left}
.ownerfilter{gap:10px}
.ownerfilter .pill{padding:4px 15px}
.duetag{font-size:12px;color:var(--mute);white-space:nowrap}
.duetag.late{color:var(--warn);font-weight:700}
input.duedate{width:auto;font-size:12px;padding:1px 6px;background:none;border:1px solid var(--line);border-radius:6px;color:var(--mute);color-scheme:dark light}
.taskform input.duedate{font-size:14px;padding:4px 8px;margin-top:3px}
.rvcheck{flex:1 0 100%;display:flex;gap:8px;align-items:center;padding-left:24px;font-size:13px;color:var(--warn)}
.checktag{font-size:11px;font-weight:700;border:1px solid var(--warn);border-radius:4px;padding:0 6px;flex:none}
.topicmore{margin-top:8px;font-size:13px;line-height:1.45}
.topicmore .label{margin-top:8px}
.histitem{margin-top:4px}
.histitem ul{margin:2px 0 0;padding-left:18px}
.summaryedit{min-height:320px;width:100%}
.nsgroup[class*="cat-"]{border-left:4px solid var(--cat);background:color-mix(in srgb,var(--cat) 6%,transparent)}
.rv[class*="cat-"]{border-left:4px solid var(--cat);padding-left:10px;margin-bottom:6px}
.noticebar{flex-wrap:nowrap;align-items:flex-start}
.activity{max-height:320px;overflow:auto}
.actrow{padding:8px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.45}

/* Ambiance Dagmar Capital : bleu nuit, ivoire, serif pour les titres, mono pour les repères. */
:root{--bg:#fbfbf9;--card:#fff;--ink:#0e1a2b;--mute:#5d6b7c;--line:#dde2e8;--acc:#0e1a2b;--acc-ink:#fbfbf9;--topic-bg:#fff;--c-serif:"Source Serif 4",Georgia,"Times New Roman",serif;--c-sans:"IBM Plex Sans","Helvetica Neue",Arial,sans-serif;--c-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}
@media(prefers-color-scheme:dark){:root{--bg:#0e1a2b;--card:#13223a;--ink:#f4f4f0;--mute:#93a3b7;--line:#26384f;--acc:#f4f4f0;--acc-ink:#0e1a2b;--topic-bg:#13223a;--p1:#070f1b;--p2:#2a3c55;--p3:#5a6c83}
body{background:radial-gradient(ellipse 90% 60% at 50% 0,#1a2d49 0,transparent 70%) no-repeat fixed,#0e1a2b}
header{background:rgba(14,26,43,.92);backdrop-filter:blur(6px)}
.topic[class*="cat-"]{--ink:#e6e8ea}}
body{font-family:var(--c-sans)}
h2,h3,.topic h3,.cathead{font-family:var(--c-serif);font-weight:600}
h2{font-size:19px}
.topic h3{font-size:17px}
.cathead{font-size:17px}
.brand{display:flex;align-items:center;gap:12px;margin:0}
.brand img{height:42px;display:block}
.brandword{font:500 11px/1 var(--c-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--mute)}
.authlogo{display:block;height:150px;margin:8px auto 6px}
.auth .brandword{text-align:center;margin-bottom:18px}
nav button{font-family:var(--c-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
nav button.on{background:none;color:var(--ink);box-shadow:inset 0 -1px 0 var(--ink);border-radius:0}
.label{font-family:var(--c-mono);letter-spacing:.1em}
.count{font-family:var(--c-mono)}
.btn{background:var(--acc);color:var(--acc-ink);border-radius:2px;font-weight:500}
.ghost,.card,.topic,.nsgroup,.task,.taskform,.subbar,input,textarea,select,.prios.filter .prio-btn{border-radius:3px}
.ghost.on{border-color:var(--ink);color:var(--ink)}
.link{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.topic[class*="cat-"]{background:var(--topic-bg)}
.pill.allpill{--who:var(--ink)}
.callitem{display:flex;align-items:center;gap:6px;white-space:nowrap}
.calllabel{min-width:0;overflow:hidden;text-overflow:ellipsis}
.callpeople{margin-left:auto;display:inline-flex;gap:3px;flex:none}
.brand img{height:36px}
@media(prefers-color-scheme:light){.brand img,.authlogo{filter:invert(1) hue-rotate(180deg) brightness(.25)}}
.brand img{height:30px}
.authlogo{margin-bottom:20px}
