/* ===== Atelier — styles des nouveautés : Planning, fichiers/versions, 3D, pages d'écriture ===== */
/* barre d'outils : jamais coupée, défile (molette ou doigt) quand l'écran est trop court */
#tools{box-sizing:border-box;max-height:calc(100% - 24px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--bd) transparent;scroll-padding:8px}
#tools::-webkit-scrollbar{width:5px}#tools::-webkit-scrollbar-thumb{background:var(--bd);border-radius:5px}

/* ---------- Planning ---------- */
.it.timeline{cursor:default}
.tl{background:var(--pn);border-radius:14px;box-shadow:var(--sh);overflow:hidden;font-size:13px}
.tl-tb{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--bd)}
.tl-title{font:700 15px "Segoe UI",system-ui,sans-serif;background:transparent;border:1px solid transparent;border-radius:8px;padding:5px 8px;color:var(--tx);width:220px}
.tl-title:hover{border-color:var(--bd)}
.tl-n{color:var(--mu);font-size:12px}
.tl-sc,.tl-btn{font:inherit;padding:5px 9px;border:1px solid var(--bd);border-radius:8px;background:var(--pn);color:var(--tx)}
.tl-hd{position:relative;border-bottom:1px solid var(--bd)}
.tl-hs{position:absolute;box-sizing:border-box;font-size:11px;color:var(--mu);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;border-left:1px solid var(--bd);padding:4px 6px}
.tl-hs.t{top:0;font-weight:700;color:var(--tx)}
.tl-hs.b{text-align:center;padding:5px 0}
.tl-hs.we{background:var(--hov)}
.tl-body{position:relative}
.tl-bg{position:absolute;top:0;bottom:0;pointer-events:none;z-index:0}
.tl-vl{position:absolute;top:0;bottom:0;border-left:1px solid var(--bd);opacity:.55}
.tl-vl.we{background:var(--hov);border:0;opacity:1}
.tl-today{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:#ff5555;opacity:.75}
.tl-row{position:relative;display:flex;border-bottom:1px solid var(--bd)}
.tl-row.tgt{background:var(--acs)}
.tl-lab{flex:none;box-sizing:border-box;display:flex;align-items:center;gap:2px;padding:0 6px 0 8px;background:var(--pn);border-right:1px solid var(--bd);position:relative;z-index:2}
.tl-rn{flex:1;min-width:0;font:600 13px "Segoe UI",system-ui,sans-serif;background:transparent;border:1px solid transparent;border-radius:6px;padding:4px 6px;color:var(--tx)}
.tl-rn:hover{border-color:var(--bd)}
.tl-x{border:0;background:transparent;padding:2px 6px;color:var(--mu);opacity:0}
.tl-row:hover .tl-x{opacity:1}
.tl-lane.h{display:block;position:relative;flex:none;cursor:crosshair;z-index:1}
.tl-ev.h{display:flex;position:absolute;align-items:center;gap:6px;padding:0 9px;border-radius:7px;border:1px solid rgba(0,0,0,.16);box-sizing:border-box;cursor:grab;overflow:hidden;white-space:nowrap;font-size:12px;z-index:1}
.tl-ev.h.sm{padding:0 5px}
.tl-ev.done{opacity:.55}.tl-ev.done .tl-t{text-decoration:line-through}
.tl-ev.drag{box-shadow:0 8px 20px rgba(20,24,40,.32);z-index:6;cursor:grabbing}
.tl-t{overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.tl-cb{width:14px;height:14px;flex:none;margin:0;accent-color:var(--ac);cursor:pointer}
.tl-ev.sm .tl-cb{display:none}
.tl-g{position:absolute;top:0;bottom:0;width:8px;cursor:ew-resize}
.tl-g.l{left:0}.tl-g.r{right:0}
.tl-g:hover{background:rgba(0,0,0,.14)}
.tl-ghost{position:absolute;top:4px;height:26px;border:2px dashed var(--ac);background:rgba(66,98,255,.13);border-radius:7px;pointer-events:none;box-sizing:border-box}
.tl-empty{padding:26px;text-align:center;color:var(--mu)}
.tl-hint{padding:7px 14px;color:var(--mu);font-size:11px;border-top:1px solid var(--bd)}
#ctx .tl-2{display:flex;gap:8px}#ctx .tl-2>div{flex:1;min-width:0}
#ctx .tlp{grid-template-columns:repeat(6,34px);gap:10px}
#ctx label.tl-chk{display:flex;align-items:center;gap:6px;color:var(--tx);cursor:pointer}

/* ---------- Fichiers : miniature, versions, colonne « Fichier » ---------- */
.file .card{position:relative}
.fth{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;margin:0 0 10px;background:#e4e7ee;cursor:pointer}
.fth[data-f3]{background:#3c4254}
.ficon.m3::after{content:"3D";position:absolute;inset:auto 4px 4px auto;border:0;font-size:9px;background:rgba(0,0,0,.28);padding:1px 4px;border-radius:4px;color:#fff;width:auto;height:auto}
.fbt{display:flex;gap:6px}.fbt .dlb{flex:1;min-width:0}
.vb{padding:6px 9px;font-size:12px;font-weight:700}
.vbadge{position:absolute;right:10px;top:10px;background:var(--ac);color:#fff;border-radius:99px;font-size:11px;font-weight:700;padding:1px 8px;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.dropt{outline:2px dashed var(--ac)!important;outline-offset:-3px;background:var(--acs)!important}
.table td.c-file{min-width:170px}
.chip{display:flex;align-items:center;gap:8px;max-width:260px;padding:4px 10px 4px 4px;border-radius:9px}
.cic{width:30px;height:30px;border-radius:7px;color:#fff;font:800 9px "Segoe UI",sans-serif;display:grid;place-items:center;flex:none}
.cth{width:36px;height:30px;object-fit:cover;border-radius:7px;flex:none;background:#e4e7ee}
.cnm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.cvb{background:var(--acs);color:var(--ac);font-size:11px;font-weight:700;border-radius:99px;padding:0 7px;flex:none}

#vdlg{width:min(580px,94vw);padding:22px 24px 18px}
#vdlg h3{margin:0 0 8px;font-size:20px}
.vinfo{color:var(--mu);font-size:13px;margin:0 0 14px;line-height:1.5}
.vimp{width:100%;padding:10px;border-radius:99px;font-weight:600;color:var(--ac);margin-bottom:12px}
.vlist{max-height:48vh;overflow:auto;border-top:1px solid var(--bd)}
.vrow{display:flex;align-items:center;gap:12px;padding:10px 6px;border-bottom:1px solid var(--bd);position:relative}
.vrow.cur{background:var(--hov);border-radius:10px}
.vth,.vic{width:42px;height:42px;border-radius:9px;flex:none;object-fit:cover}
.vic{display:grid;place-items:center;color:#fff;font:800 10px "Segoe UI",sans-serif}
.vin{flex:1;min-width:0}
.vn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vn em{color:var(--mu);font-style:normal}
.vs{color:var(--mu);font-size:12px;margin-top:2px}
.vdots{border:0;background:transparent;font-size:20px;line-height:1;padding:4px 10px}
.vmenu{position:fixed;z-index:50;width:240px;box-sizing:border-box;background:var(--pn);border-radius:12px;box-shadow:0 8px 28px rgba(20,24,40,.28);padding:6px;min-width:230px;border:1px solid var(--bd)}
.vmenu button{display:flex;gap:12px;align-items:center;width:100%;border:0;text-align:left;padding:9px 10px;background:transparent}
.vmenu button:hover{background:var(--hov)}.vmenu i{font-style:normal;width:18px;text-align:center;color:var(--mu)}
.vfoot{text-align:right;margin-top:14px}
.vclose{background:var(--ac);color:#fff;border-color:var(--ac);border-radius:99px;padding:8px 22px;font-weight:600}

/* ---------- Visionneuse 3D ---------- */
#v3dlg{width:min(1120px,96vw);height:min(88vh,calc(100dvh - 20px));padding:0;overflow:hidden}
#v3dlg[open]{display:flex;flex-direction:column}
.v3h{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--bd);flex-wrap:wrap}
.v3t{font-size:15px}.v3i{color:var(--mu);font-size:12px}
.v3h .sp{flex:1}
.v3h button{padding:5px 11px;font-size:13px}
.v3h button.on{background:var(--acs);color:var(--ac);border-color:var(--ac)}
.v3x{font-weight:700}
.v3b{position:relative;flex:1;min-height:0}
.v3c{position:absolute;inset:0}.v3c canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}
.v3m{position:absolute;inset:0;display:none;place-items:center;color:var(--mu);text-align:center;padding:20px}
.v3d{position:absolute;left:14px;bottom:10px;font-size:12px;line-height:1.5;color:var(--v3fg,#555);opacity:.85;pointer-events:none}

/* ---------- Pages d'écriture ---------- */
.it.doc{cursor:default}
.docc{height:100%;box-sizing:border-box;background:#fff;color:#202124;border-radius:6px;box-shadow:var(--sh);display:flex;flex-direction:column;overflow:hidden}
.dch{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid #ececec}
.dch b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dop{font-size:12px;padding:3px 9px;background:#f3f3f1;color:#202124;border-color:#e2e2dd}
.docpv{flex:1;min-height:0;overflow:hidden;padding:12px 18px;position:relative;font:14px/1.5 Arial,"Segoe UI",sans-serif;pointer-events:none}
.docpv::after{content:"";position:absolute;left:0;right:0;bottom:0;height:46px;background:linear-gradient(transparent,#fff)}
.docpv .ph2{color:#9aa0a6}
.dcf{padding:7px 14px;border-top:1px solid #ececec;font-size:12px;color:#5f6368}
.docpv,.docpaper{overflow-wrap:anywhere}
.docpv p,.docpaper p{margin:.35em 0}
.docpv h1,.docpaper h1{font-size:2em;margin:.6em 0 .3em;line-height:1.2}
.docpv h2,.docpaper h2{font-size:1.5em;margin:.6em 0 .3em;line-height:1.25}
.docpv h3,.docpaper h3{font-size:1.2em;margin:.6em 0 .3em}
.docpv ul,.docpv ol,.docpaper ul,.docpaper ol{padding-left:1.6em;margin:.4em 0}
.docpv blockquote,.docpaper blockquote{border-left:4px solid #d0d3d9;margin:.6em 0;padding:.1em 0 .1em 14px;color:#555}
.docpv table,.docpaper table{border-collapse:collapse;margin:.6em 0;max-width:100%}
.docpv td,.docpv th,.docpaper td,.docpaper th{border:1px solid #bfc3cb;padding:6px 10px;min-width:48px;vertical-align:top}
.docpv img,.docpaper img{max-width:100%;height:auto}
.docpv hr,.docpaper hr{border:0;border-top:1px solid #d0d3d9;margin:1em 0}
.docpv a,.docpaper a{color:#1a56db}
.pgl{display:inline-block;background:#eef1ff;color:#3a56d4!important;border-radius:6px;padding:0 9px;text-decoration:none;cursor:pointer;margin:1px 2px}

#docdlg{width:min(1240px,98vw);height:min(94vh,calc(100dvh - 12px));padding:0;overflow:hidden;border-radius:14px}
#docdlg[open]{display:flex;flex-direction:column}
.dh{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--bd)}
.dh .sp{flex:1}
.dbc{display:flex;align-items:center;gap:2px;min-width:0;overflow:hidden;white-space:nowrap}
.dcb{border:0;background:transparent;padding:3px 8px;max-width:200px;overflow:hidden;text-overflow:ellipsis}
.dcb.on{font-weight:700;background:var(--acs);color:var(--ac)}
.dsp{color:var(--mu)}
.dst{color:var(--mu);font-size:12px;white-space:nowrap}
.dtb{display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:6px 10px;border-bottom:1px solid var(--bd);background:var(--pn)}
.tb{border:0;background:transparent;min-width:30px;height:30px;padding:0 7px;border-radius:7px;font-size:14px;display:inline-grid;place-items:center}
.tb.on{background:var(--acs);color:var(--ac)}
.tsel{height:30px;border:1px solid var(--bd);border-radius:7px;background:var(--pn);color:var(--tx);font:inherit;max-width:140px;margin:0 2px}
.tcol{position:relative;cursor:pointer}
.tcol input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;padding:0;border:0}
.tsep{width:1px;height:20px;background:var(--bd);margin:0 5px}
.dm{flex:1;min-height:0;display:flex}
.dside{width:236px;flex:none;border-right:1px solid var(--bd);overflow:auto;background:var(--pn);padding:8px 0}
.noside .dside{display:none}
.dsh{font-size:11px;font-weight:700;color:var(--mu);text-transform:uppercase;letter-spacing:.04em;padding:6px 16px}
.dtr{display:flex;align-items:center;gap:2px;padding:5px 6px;border-radius:8px;margin:1px 8px;cursor:pointer}
.dtr:hover{background:var(--hov)}.dtr.on{background:var(--acs);color:var(--ac);font-weight:600}
.dtn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dta{border:0;background:transparent;padding:0 6px;opacity:0;color:inherit}
.dtr:hover .dta{opacity:1}
.dsc{flex:1;min-width:0;overflow:auto;background:var(--bg);padding:0 10px}
.dsheet{width:min(816px,100%);box-sizing:border-box;margin:22px auto 60px;background:#fff;color:#202124;box-shadow:0 1px 6px rgba(20,24,40,.18);min-height:1000px;padding:60px 72px}
.dtitle{display:block;width:100%;box-sizing:border-box;border:0;outline:none;background:transparent;color:#202124;font:700 34px/1.2 Georgia,"Times New Roman",serif;padding:0;margin-bottom:18px}
.dtitle::placeholder{color:#b3b7bf}
.docpaper{min-height:700px;outline:none;font:16px/1.6 Arial,"Segoe UI",sans-serif;color:#202124}
.docpaper:empty::before,.docpaper:has(>br:only-child)::before{content:attr(data-ph);color:#9aa0a6;pointer-events:none;position:absolute}
.docpaper,.docpaper *,.dtitle{-webkit-user-select:text;user-select:text}
@media(max-width:760px){.dsheet{padding:28px 20px;min-height:600px}.dtitle{font-size:26px}.dside{width:180px}}
#ctx label.cs{display:grid;margin:0;color:var(--tx)}
/* PDF / son sur les cartes */
.fbt{flex-wrap:wrap}.fbt .dlb{flex:1 1 auto}
.fth.pdf{object-position:top;aspect-ratio:3/4}

/* ===== Dossiers : la carte montre son contenu en arborescence (flèche ▸ pour dérouler) ===== */
.folder .fcard{background:var(--pn);border-radius:14px;box-shadow:var(--sh);padding:8px 8px 10px;text-align:left}
.fhead{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:10px}
.fhead .fn{font-size:15px}
.fhead .fs{margin:0}
.fico-w{flex:none;line-height:0}.fico{width:30px;height:24px;display:block}
.fhead.sel,.tdir.sel{background:var(--hov);box-shadow:inset 3px 0 0 var(--ac)}
.ftb{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:6px 4px}
.ftb button{border-radius:99px;font-weight:600;padding:4px 10px;font-size:12px}
.ftb .pri{background:var(--ac);color:#fff;border-color:var(--ac)}
.ftg{color:var(--mu);font-size:12px}
.ftree{max-height:440px;overflow:auto;margin-top:2px;padding:2px 0;user-select:none;border-top:1px solid var(--bd)}
.fempty{padding:18px 12px;text-align:center;color:var(--mu);font-size:13px;line-height:1.5}
.vmenu.mv{width:300px;max-height:50vh;overflow:auto}
.vmenu.mv button{white-space:normal;word-break:break-word}

.trow{gap:8px;padding:4px 8px;border-bottom:0;border-radius:8px}
.trow:hover{background:var(--hov)}
.tdir{cursor:pointer}
.trow .vth,.trow .vic{width:28px;height:28px;border-radius:7px;font-size:8px}
.trow .vs{font-size:11.5px;margin-top:0}
.trow .vb{padding:3px 8px}
.tind{flex:none;width:22px;align-self:stretch;margin-right:-8px;background:linear-gradient(var(--bd),var(--bd)) 11px 0/1px 100% no-repeat}
.tg{flex:none;width:22px;height:22px;padding:0;border:0;background:transparent;border-radius:6px;color:var(--mu);display:grid;place-items:center;cursor:pointer}
.tg::before{content:"";border:solid transparent;border-width:5px 0 5px 7px;border-left-color:currentColor;transition:transform .15s}
.tg.open::before{transform:rotate(90deg)}
.tg.sp{visibility:hidden}
.tdi{flex:none;width:28px;text-align:center;font-size:20px;line-height:1}
.tvide{display:flex;align-items:center;gap:8px;color:var(--mu);font-size:12px;font-style:italic;padding:2px 8px}

/* tirer une ligne pour la ranger dans un autre dossier */
.tfile{cursor:grab}
.trow.fdrag{opacity:.4}
.fghost{position:fixed;z-index:60;pointer-events:none;background:var(--pn);color:var(--tx);border:1px solid var(--ac);border-radius:8px;padding:4px 10px;font-size:13px;box-shadow:var(--sh);max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.fdragging,body.fdragging *{cursor:grabbing!important}

/* ===== Animation du modèle 3D ===== */
.v3h select{padding:5px 8px;font-size:13px;border:1px solid var(--bd);border-radius:8px;background:var(--pn);color:var(--tx);max-width:180px}
.v3h select[hidden],.v3h button[hidden]{display:none}

/* ===== Confirmation « Vider le tableau » : grande fenêtre au centre de l'écran ===== */
#cldlg{width:min(620px,92vw);padding:44px 40px 36px;border:1px solid var(--bd);border-radius:24px;background:var(--pn);color:var(--tx);text-align:center;box-shadow:0 30px 90px rgba(0,0,0,.45)}
#cldlg::backdrop{background:rgba(10,12,18,.62);backdrop-filter:blur(3px)}
#cldlg .cl-ic{font-size:64px;line-height:1;margin-bottom:14px}
#cldlg h2{margin:0 0 12px;font-size:30px;line-height:1.2}
#cldlg p{margin:0 auto 30px;max-width:440px;font-size:17px;line-height:1.5;color:var(--mu)}
#cldlg .cl-bt{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
#cldlg .cl-bt button{min-width:200px;padding:16px 26px;font-size:18px;font-weight:600;border-radius:14px;cursor:pointer}
#cldlg .cl-yes{background:#dc2626;border:1px solid #dc2626;color:#fff}
#cldlg .cl-yes:hover{background:#b91c1c}
