/* Dossiers : mêmes matières et typographie que la maison. */
.dm-maison { color:var(--encre,#141419); padding-top:8px; min-width:0; }
.dm-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.dm-heading p { margin:9px 0 0; color:#60606a; font-size:16px; line-height:1.5; }
.dm-top-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.dm-button { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:10px 16px; border:1px solid rgba(20,20,25,.1); border-radius:20px; background:rgba(255,255,255,.6); font:inherit; font-size:14px; color:var(--encre,#141419); cursor:pointer; text-decoration:none; line-height:1.3; }
.dm-button:hover { background:rgba(20,20,25,.07); }
.dm-primary { background:var(--encre,#141419); color:white; border-color:transparent; }
.dm-primary:hover { background:#353541; }
.dm-maison button:disabled { cursor:wait; opacity:.55; }
.dm-maison :is(button,a,input,select,summary):focus-visible { outline:3px solid var(--bleu,#2b2bea); outline-offset:3px; }
.dm-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:9px; margin:26px 0 16px; font-size:14px; color:#60606a; }
.dm-breadcrumb a { overflow-wrap:anywhere; }
.dm-breadcrumb a:hover,.dm-trash:hover { text-decoration:underline; }
.dm-toolbar { display:flex; align-items:center; gap:16px; flex-wrap:wrap; border-bottom:1px solid rgba(20,20,25,.09); padding-bottom:16px; }
.dm-search { display:flex; flex:1 1 220px; max-width:420px; min-width:0; background:rgba(255,255,255,.72); border:1px solid rgba(20,20,25,.12); border-radius:12px; }
.dm-search input { width:100%; min-width:0; height:42px; border:0; background:transparent; padding:0 13px; color:inherit; font:inherit; font-size:14px; }
.dm-search button { width:42px; flex-shrink:0; font-size:23px; }
.dm-filter { display:flex; align-items:center; gap:6px; font-size:13px; color:#60606a; }
.dm-filter select { font:inherit; color:var(--encre,#141419); background:transparent; border:0; min-height:38px; max-width:130px; }
.dm-maison .dm-view { display:flex; flex:0 0 auto; background:rgba(20,20,25,.05); padding:3px; border-radius:10px; }
.dm-maison .dm-view button { flex:0 0 44px; width:44px; height:44px; min-height:44px; min-width:44px; padding:0; border-radius:8px; }
.dm-view button[aria-pressed="true"] { background:white; box-shadow:0 1px 4px #0001; }
.dm-trash { font-size:14px; margin-left:auto; padding:10px 0; }
.dm-count { margin:18px 0 10px; color:#60606a; font-size:13px; }
.dm-items { display:grid; grid-template-columns:repeat(auto-fill,minmax(156px,1fr)); gap:16px; margin:10px 0 28px; }
.dm-item { position:relative; min-width:0; border-radius:16px; }
.dm-item:hover { background:rgba(255,255,255,.6); }
.dm-open { display:flex; flex-direction:column; align-items:center; text-align:center; padding:20px 13px 16px; gap:8px; border-radius:16px; min-height:168px; }
.dm-folder { height:72px; width:92px; filter:drop-shadow(0 5px 5px #3c4d9b15); }
.dm-file { width:60px; height:72px; }
.dm-name { display:block; font-size:14px; font-weight:600; line-height:1.35; overflow-wrap:anywhere; width:100%; }
.dm-meta { display:block; font-size:12px; color:#60606a; line-height:1.4; }
.dm-options { position:absolute; right:4px; top:4px; z-index:2; }
.dm-options[open] { z-index:4; }
.dm-options summary { list-style:none; cursor:pointer; border-radius:12px; padding:2px 8px; color:#60606a; min-height:28px; min-width:32px; text-align:center; }
.dm-options summary::-webkit-details-marker { display:none; }
.dm-options summary:hover { background:#fff; }
.dm-menu { position:absolute; right:0; width:200px; padding:6px; border-radius:12px; background:#fff; box-shadow:0 8px 30px #14141922; border:1px solid #e7e7ed; }
.dm-menu button { display:block; width:100%; text-align:left; padding:11px 10px; border-radius:8px; font-size:13px; }
.dm-menu button:hover { background:#f0f1f7; }
.dm-liste { display:block; border:1px solid rgba(20,20,25,.08); background:rgba(255,255,255,.5); border-radius:16px; }
.dm-liste .dm-item+.dm-item { border-top:1px solid rgba(20,20,25,.06); }
.dm-liste .dm-open { display:grid; grid-template-columns:44px minmax(0,1fr) 180px; text-align:left; min-height:70px; padding:12px 52px 12px 16px; gap:14px; }
.dm-liste :is(.dm-folder,.dm-file) { width:40px; height:38px; }
.dm-liste .dm-options { top:19px; right:12px; }
.dm-empty { grid-column:1/-1; padding:40px 20px; color:#60606a; line-height:1.5; text-align:center; }
.dm-empty p { max-width:500px; margin:12px auto; }
.dm-note { color:#60606a; font-size:13px; line-height:1.5; }
.dm-message:not(:empty) { padding:12px 0; font-size:14px; line-height:1.4; }
.dm-overlay { position:fixed; inset:0; z-index:1000; background:rgba(20,20,35,.24); backdrop-filter:blur(10px); display:flex; align-items:center; justify-content:center; padding:20px; }
.dm-dialog { width:560px; max-width:100%; max-height:90vh; max-height:90dvh; overflow:auto; border-radius:22px; background:#fcfcfd; box-shadow:0 20px 80px #14141935; padding:24px; }
.dm-dialog:has(.dm-preview) { width:920px; }
.dm-dialog header { display:flex; align-items:flex-start; gap:16px; justify-content:space-between; margin-bottom:16px; }
.dm-dialog h2 { margin:0; font-size:21px; line-height:1.3; overflow-wrap:anywhere; }
.dm-close { flex-shrink:0; width:32px; height:32px; font-size:25px; border-radius:50%; }
.dm-close:hover { background:#1414190b; }
.dm-dialog form>label { display:block; font-size:14px; font-weight:600; }
.dm-dialog :is(input:not([type="file"]),select) { display:block; width:100%; font:inherit; font-weight:400; color:inherit; background:white; border:1px solid #c6c6ce; border-radius:10px; padding:12px; margin-top:8px; }
.dm-dialog input[type="file"] { display:block; width:100%; padding:16px 0; font:inherit; font-size:13px; }
.dm-dialog input[hidden] { display:none; }
.dm-dialog p { font-size:14px; line-height:1.55; overflow-wrap:anywhere; }
.dm-dialog footer { display:flex; justify-content:flex-end; gap:9px; margin-top:20px; flex-wrap:wrap; }
.dm-form-error { color:#a12325; min-height:20px; }
.dm-selected { font-weight:600; }
.dm-preview-content { display:flex; flex-direction:column; align-items:flex-start; gap:16px; }
.dm-preview-content iframe { border:1px solid #dddde6; width:100%; height:55vh; border-radius:8px; background:white; }
.dm-preview-content img { display:block; max-width:100%; max-height:55vh; object-fit:contain; margin:auto; }
.dm-document { padding:18px 22px; background:white; border:1px solid #e5e5ed; border-radius:12px; white-space:pre-wrap; }
.dm-document p { margin:0 0 14px; font-size:16px; }
.dm-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* La maison sombre change --encre : toutes les surfaces qui la portent doivent
   changer ensemble, y compris les menus et dialogues rendus après un clic. */
body.cm-active .dm-maison :is(.dm-heading p,.dm-breadcrumb,.dm-filter,.dm-count,.dm-meta,.dm-options summary,.dm-empty,.dm-note) { color:var(--muet,#aabac0); }
body.cm-active .dm-maison :is(.dm-button,.dm-search,.dm-view,.dm-liste,.dm-menu,.dm-document) { background:var(--verre,#17242c); border-color:var(--trait,#35454d); }
body.cm-active .dm-maison :is(.dm-button:hover,.dm-item:hover,.dm-options summary:hover,.dm-menu button:hover,.dm-close:hover,.dm-view button[aria-pressed="true"]) { background:#263d47; }
body.cm-active .dm-maison .dm-primary { background:var(--encre,#f1f2ef); color:var(--sur-encre,#0d171c); border-color:transparent; }
body.cm-active .dm-maison .dm-primary:hover { background:var(--sourd,#c6c9c9); }
body.cm-active .dm-maison :is(.dm-toolbar,.dm-liste .dm-item+.dm-item) { border-color:var(--trait,#35454d); }
body.cm-active .dm-maison .dm-overlay { background:rgba(0,8,12,.62); }
body.cm-active .dm-maison .dm-dialog { background:var(--toile,#0d171c); color:var(--encre,#f1f2ef); border:1px solid var(--trait,#35454d); }
body.cm-active .dm-dialog :is(input:not([type="file"]),select) { background:var(--verre,#17242c); color:var(--encre,#f1f2ef); border-color:#58717c; }
body.cm-active .dm-maison input::placeholder { color:var(--muet,#aabac0); opacity:1; }
body.cm-active .dm-maison .dm-form-error { color:var(--rouge,#f2aaa3); }
@media(max-width:640px) {
 .dm-heading { align-items:flex-start; flex-direction:column; gap:16px; }
 .dm-top-actions { justify-content:flex-start; }
 .dm-heading .titre { font-size:30px; }
 .dm-toolbar { gap:8px 12px; }
 .dm-search { flex-basis:100%; max-width:none; }
 .dm-filter { gap:2px; }
 .dm-filter select { max-width:110px; }
 .dm-trash { margin-left:0; }
 .dm-items { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .dm-open { padding:18px 8px 12px; }
 .dm-liste { display:block; }
 .dm-liste .dm-open { grid-template-columns:38px minmax(0,1fr); gap:5px 10px; padding-right:44px; }
 .dm-liste .dm-meta { grid-column:2; }
 .dm-liste :is(.dm-folder,.dm-file) { grid-row:1/3; }
 .dm-menu { width:185px; }
 .dm-overlay { padding:10px; }
 .dm-dialog { padding:18px; border-radius:18px; }
 .dm-dialog h2 { font-size:19px; }
}
@media(prefers-reduced-motion:reduce) { .dm-maison * { scroll-behavior:auto; } }
