@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500&family=DM+Mono:wght@400;500&family=Outfit:wght@300;400;500;600&display=swap');

:root {
  --night: #100d13;
  --night-soft: #171219;
  --plum: #251b25;
  --plum-light: #332431;
  --cream: #f2e9dd;
  --cream-muted: #c7b9ad;
  --smoke: #8e828b;
  --gold: #d6b579;
  --gold-bright: #f0d397;
  --rose: #ad7184;
  --line: rgba(226, 203, 174, .14);
  --glass: rgba(35, 27, 35, .76);
  --shadow: 0 28px 90px rgba(2, 0, 5, .48);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { margin: 0; min-height: 100%; background: var(--night); color: var(--cream); font-family: Outfit, Arial, sans-serif; }
body { background-image: radial-gradient(circle at 85% 10%, rgba(135, 73, 105, .12), transparent 32%), radial-gradient(circle at 12% 88%, rgba(190, 142, 90, .08), transparent 28%); }
button, input, select { font: inherit; }
button, a { touch-action: manipulation; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.noise { position: fixed; inset: 0; z-index: 50; opacity: .045; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

/* Connexion */
.login-shell { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(420px, .85fr); position: relative; overflow: hidden; background: linear-gradient(135deg, #0d0b0f 0%, #171018 52%, #211521 100%); }
.login-shell::before { content: ""; position: absolute; inset: 20px; border: 1px solid rgba(214, 181, 121, .12); pointer-events: none; }
.intro { position: relative; z-index: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 8vw, 140px); overflow: hidden; }
.intro::after { content: ""; position: absolute; width: 480px; height: 480px; left: 8%; bottom: -330px; border: 1px solid rgba(214, 181, 121, .2); border-radius: 50%; box-shadow: 0 0 0 70px rgba(214, 181, 121, .025), 0 0 0 140px rgba(214, 181, 121, .018); }
.room-art { position: absolute; inset: 0; opacity: .72; pointer-events: none; }
.room-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10, 8, 12, .9) 0%, rgba(12, 9, 13, .65) 40%, rgba(14, 10, 15, .18) 100%), linear-gradient(0deg, rgba(12, 9, 13, .5), transparent 45%); }
.room-art svg { width: 100%; height: 100%; display: block; object-fit: cover; }
.brand { display: flex; align-items: center; gap: 13px; color: var(--cream); font: 500 10px DM Mono, monospace; letter-spacing: .2em; }
.intro .brand { position: absolute; left: clamp(42px, 8vw, 140px); top: 50px; }
.brand-mark { width: 35px; height: 35px; display: grid; place-items: center; color: var(--night); background: linear-gradient(145deg, var(--gold-bright), #a77c43); font-family: "Cormorant Garamond", Georgia, serif; font-size: 20px; font-weight: 600; letter-spacing: 0; box-shadow: 0 0 24px rgba(214, 181, 121, .16); }
.brand-mark { clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); }
.brand-logo { width: 40px; height: 40px; display: block; flex: 0 0 40px; filter: drop-shadow(0 7px 10px rgba(139, 83, 79, .16)); }
.eyebrow { position: relative; margin: 0 0 22px; color: var(--gold); text-transform: uppercase; font: 500 10px DM Mono, monospace; letter-spacing: .24em; }
.eyebrow::before { content: ""; display: inline-block; width: 34px; height: 1px; margin: 0 12px 3px 0; background: var(--gold); }
.intro h1 { position: relative; z-index: 1; max-width: 760px; margin: 0; font: 500 clamp(63px, 7vw, 108px)/.82 "Cormorant Garamond", Georgia, serif; letter-spacing: -.055em; text-wrap: balance; }
.intro h1 em { color: var(--gold-bright); font-weight: 500; text-shadow: 0 12px 45px rgba(201, 145, 88, .2); }
.lead { position: relative; z-index: 1; max-width: 540px; margin: 38px 0; color: #b7aab3; font-size: clamp(15px, 1.35vw, 18px); font-weight: 300; line-height: 1.75; }
.trust { position: relative; z-index: 1; display: flex; align-items: center; gap: 11px; color: #81757e; font: 9px DM Mono, monospace; letter-spacing: .05em; }
.trust span { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 5px rgba(214, 181, 121, .08), 0 0 16px var(--gold); }
.login-card { position: relative; z-index: 2; align-self: stretch; display: flex; flex-direction: column; justify-content: center; margin: 24px; padding: clamp(38px, 6vw, 92px); overflow: hidden; background: linear-gradient(145deg, rgba(40, 29, 39, .96), rgba(20, 16, 22, .98)); border: 1px solid rgba(233, 207, 172, .16); box-shadow: -30px 0 90px rgba(0, 0, 0, .35); }
.login-card::before { content: "✦"; position: absolute; right: 38px; top: 30px; color: var(--gold); font-size: 18px; opacity: .65; }
.card-glow { position: absolute; width: 330px; height: 330px; right: -190px; top: -180px; border-radius: 50%; background: rgba(173, 113, 132, .16); filter: blur(70px); pointer-events: none; }
.card-heading { position: relative; display: flex; align-items: flex-start; gap: 20px; margin-bottom: 36px; }
.card-heading > span { padding-top: 7px; color: var(--gold); border-top: 1px solid var(--gold); font: 9px DM Mono, monospace; }
.card-heading p { margin: 0; color: #847681; text-transform: uppercase; font: 9px DM Mono, monospace; letter-spacing: .2em; }
.card-heading h2 { margin: 3px 0 0; color: var(--cream); font: 500 38px/1 "Cormorant Garamond", Georgia, serif; letter-spacing: -.02em; }
form label { display: block; margin-bottom: 19px; color: #9c8f98; text-transform: uppercase; font: 500 9px DM Mono, monospace; letter-spacing: .16em; }
input, select { display: block; width: 100%; padding: 12px 2px; color: var(--cream); border: 0; border-bottom: 1px solid rgba(226, 203, 174, .22); border-radius: 0; outline: none; background: transparent; font: 400 15px Outfit, sans-serif; }
input::placeholder { color: #5f5660; }
input:focus, select:focus { border-color: var(--gold); }
select option { color: var(--cream); background: var(--plum); }
.fields-row { display: grid; grid-template-columns: 1fr 100px; gap: 28px; }
.check { display: flex !important; align-items: center; gap: 10px; cursor: pointer; }
.check input { position: absolute; width: 1px; opacity: 0; }
.check span { position: relative; width: 18px; height: 18px; border: 1px solid #665a64; }
.check input:checked + span { border-color: var(--gold); background: var(--gold); }
.check input:checked + span::after { content: "✓"; position: absolute; inset: 0; color: var(--night); text-align: center; line-height: 16px; }
.primary, .secondary { display: inline-flex; align-items: center; justify-content: center; border: 0; cursor: pointer; text-decoration: none; }
.primary { width: 100%; padding: 16px 20px; color: #1a1217; background: linear-gradient(110deg, #b88b50, var(--gold-bright), #b7864c); background-size: 200% 100%; font-weight: 600; letter-spacing: .02em; transition: background-position .3s, transform .2s, box-shadow .2s; }
.primary:hover { background-position: 100% 0; box-shadow: 0 10px 30px rgba(195, 146, 79, .2); }
.primary:active { transform: scale(.985); }
.primary span { flex: 1; text-align: left; }
.primary b { font-size: 19px; }
.primary:disabled { opacity: .55; cursor: wait; }
.form-error { min-height: 20px; margin: 12px 0 0; color: #dc91a4; font-size: 12px; }
.form-error.pending { color: #a89aa4; }
.button-spinner { width: 18px; height: 18px; border: 2px solid rgba(24, 16, 21, .25); border-top-color: var(--night); border-radius: 50%; animation: spin .7s linear infinite; }

/* Explorateur */
.app-shell { min-height: 100vh; background: var(--night-soft); }
.topbar { position: relative; z-index: 10; height: 76px; display: flex; align-items: center; gap: 25px; padding: 0 30px; color: var(--cream); background: rgba(15, 12, 17, .96); border-bottom: 1px solid var(--line); box-shadow: 0 8px 34px rgba(0, 0, 0, .22); }
.topbar::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: linear-gradient(90deg, transparent, var(--gold), transparent); opacity: .32; }
.topbar .brand { margin-right: auto; }
.server-pill { display: flex; align-items: center; gap: 9px; max-width: 250px; padding: 8px 13px; color: #9f929b; border: 1px solid var(--line); border-radius: 20px; font: 9px DM Mono, monospace; }
.server-pill i { width: 6px; height: 6px; flex: 0 0 6px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 10px var(--gold); }
.server-pill span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.logout { color: #8d8189; border: 0; background: none; cursor: pointer; font: 9px DM Mono, monospace; letter-spacing: .06em; }
.logout:hover { color: var(--gold-bright); }
.workspace { height: calc(100vh - 76px); display: grid; grid-template-columns: 260px minmax(0, 1fr); }
.sidebar { display: flex; flex-direction: column; overflow: auto; padding: 28px 17px; background: linear-gradient(180deg, #171218, #120f14); border-right: 1px solid var(--line); }
.side-title { display: flex; justify-content: space-between; padding: 0 11px 21px; color: #746a72; text-transform: uppercase; font: 9px DM Mono, monospace; letter-spacing: .2em; }
.tree { flex: 1; }
.tree-row { width: 100%; min-height: 38px; display: flex; align-items: center; gap: 8px; padding: 8px 10px; color: #978a94; border: 0; border-radius: 4px; background: transparent; text-align: left; white-space: nowrap; cursor: pointer; font-size: 12px; transition: color .15s, background .15s; }
.tree-row:hover { color: var(--cream); background: rgba(214, 181, 121, .05); }
.tree-row.active { color: var(--gold-bright); background: linear-gradient(90deg, rgba(214, 181, 121, .12), transparent); }
.tree-row .chev { width: 12px; color: #625862; }
.tree-row .folder { color: var(--gold); }
.tree-children { margin-left: 15px; padding-left: 10px; border-left: 1px solid rgba(214, 181, 121, .1); }
.side-foot { display: flex; align-items: center; gap: 9px; padding: 20px 8px 0; border-top: 1px solid var(--line); }
.side-foot span { padding: 4px 6px; color: var(--night); background: var(--gold); font: 500 8px DM Mono, monospace; }
.side-foot small { color: #645b62; font-size: 9px; }
.content { overflow: auto; padding: clamp(27px, 4vw, 55px); background-image: radial-gradient(circle at 82% 15%, rgba(173, 113, 132, .09), transparent 25%); }
.content-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 22px; }
.content-head .eyebrow { margin-bottom: 10px; }
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.breadcrumbs button { padding: 0; color: var(--cream); border: 0; background: none; cursor: pointer; font: 500 clamp(27px, 3vw, 40px)/1 "Cormorant Garamond", Georgia, serif; }
.breadcrumbs button:not(:last-child) { color: #766c74; }
.breadcrumbs button:hover { color: var(--gold-bright); }
.breadcrumbs .slash { color: var(--rose); font: 25px "Cormorant Garamond", serif; }
.actions { display: flex; gap: 9px; }
.secondary { padding: 11px 14px; color: #b8abb4; border: 1px solid rgba(226, 203, 174, .18); background: rgba(255, 255, 255, .015); font-size: 11px; transition: .18s; }
.secondary:hover { color: var(--gold-bright); border-color: rgba(214, 181, 121, .55); background: rgba(214, 181, 121, .06); }
.secondary:disabled { opacity: .28; cursor: not-allowed; }
.parent-button { color: var(--gold); }
.primary.compact { width: auto; padding: 12px 18px; white-space: nowrap; font-size: 11px; }
.stats { display: flex; align-items: center; gap: 23px; margin-top: 37px; padding: 0 2px 13px; color: #706670; border-bottom: 1px solid var(--line); text-transform: uppercase; font: 8px DM Mono, monospace; letter-spacing: .1em; }
.stats strong { color: #b5a8b1; }
.view-switch { display: flex; margin-left: auto; padding: 2px; border: 1px solid var(--line); border-radius: 3px; }
.view-switch button { width: 32px; height: 27px; display: grid; place-items: center; color: #6e646d; border: 0; background: transparent; cursor: pointer; font-size: 16px; }
.view-switch button.active { color: #1b1318; background: var(--gold); }
.search-box { height: 50px; display: flex; align-items: center; gap: 11px; margin-top: 18px; padding: 0 14px; background: rgba(255, 255, 255, .025); border: 1px solid var(--line); border-radius: 4px; transition: border-color .2s, box-shadow .2s, background .2s; }
.search-box:focus-within { border-color: rgba(214, 181, 121, .5); background: rgba(255, 255, 255, .04); box-shadow: 0 9px 32px rgba(0, 0, 0, .16); }
.search-box > span { color: var(--gold); font: 25px/1 Outfit; }
.search-box input { flex: 1; min-width: 0; height: 100%; padding: 0; border: 0; color: var(--cream); font-size: 13px; }
.search-box input::-webkit-search-cancel-button { display: none; }
.search-box small { color: #786d76; white-space: nowrap; text-transform: uppercase; font: 8px DM Mono, monospace; letter-spacing: .08em; }
.search-box button { width: 27px; height: 27px; display: grid; place-items: center; padding: 0; color: #9d8f99; border: 1px solid var(--line); border-radius: 50%; background: transparent; cursor: pointer; opacity: 0; visibility: hidden; transition: .15s; }
.search-box button.visible { opacity: 1; visibility: visible; }
.search-box button:hover { color: var(--night); background: var(--gold); }
.file-panel { position: relative; min-height: 360px; }
.table-head, .file-row { display: grid; grid-template-columns: minmax(230px, 1fr) 120px 150px 100px; align-items: center; }
.table-head { padding: 15px 17px 11px; color: #5e555e; text-transform: uppercase; font: 8px DM Mono, monospace; letter-spacing: .14em; }
.file-row { min-height: 70px; padding: 8px 15px; border-top: 1px solid rgba(226, 203, 174, .08); transition: background .18s, transform .18s, box-shadow .18s; }
.file-row:hover { z-index: 1; background: linear-gradient(90deg, rgba(214, 181, 121, .07), rgba(173, 113, 132, .035)); box-shadow: 0 11px 35px rgba(0, 0, 0, .16); transform: translateY(-1px); }
.file-name { display: flex; align-items: center; gap: 14px; min-width: 0; }
.file-name .file-icon { width: 40px; height: 40px; flex: 0 0 40px; display: grid; place-items: center; color: #92848e; background: rgba(255, 255, 255, .045); border: 1px solid rgba(255, 255, 255, .04); text-transform: uppercase; font: 8px DM Mono, monospace; }
.file-icon.folder-icon { color: var(--night); background: linear-gradient(145deg, var(--gold-bright), #ae814a); border: 0; font-size: 18px; transform: rotate(2deg); }
.file-text { min-width: 0; }
.file-text strong { display: block; overflow: hidden; color: #d8cdd2; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 400; }
.file-text small { display: none; }
.file-size, .file-date { color: #70666e; font: 9px DM Mono, monospace; }
.row-actions { display: flex; justify-content: flex-end; gap: 5px; }
.row-actions button, .row-actions a, .grid-info a, .grid-info button { width: 34px; height: 34px; display: grid; place-items: center; color: #8b7f87; border: 1px solid transparent; background: transparent; text-decoration: none; cursor: pointer; transition: .15s; }
.row-actions button:hover, .row-actions a:hover, .grid-info a:hover, .grid-info button:hover { color: var(--gold-bright); border-color: rgba(214, 181, 121, .35); background: rgba(214, 181, 121, .06); }
.empty, .loading { min-height: 330px; display: flex; align-items: center; justify-content: center; flex-direction: column; color: #655c64; }
.empty div { color: var(--rose); font: 40px "Cormorant Garamond", serif; }
.empty h3 { margin: 12px 0 3px; color: #b9abb4; font: 500 23px "Cormorant Garamond", serif; }
.empty p, .loading p { font-size: 11px; }
.loading span { width: 25px; height: 25px; border: 2px solid #372e36; border-top-color: var(--gold); border-radius: 50%; animation: spin .7s linear infinite; }
.drop-overlay { position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--cream); border: 1px dashed var(--gold); background: rgba(24, 17, 24, .96); backdrop-filter: blur(10px); }
.drop-overlay strong { color: var(--gold-bright); font: 500 32px "Cormorant Garamond", serif; }
.drop-overlay span { margin-top: 7px; color: #958891; font-size: 11px; }

/* Mosaïque */
.file-list.mosaic { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; padding: 22px 0 42px; }
.grid-card { min-width: 0; overflow: hidden; cursor: pointer; background: linear-gradient(145deg, rgba(46, 34, 45, .82), rgba(24, 19, 25, .94)); border: 1px solid var(--line); border-radius: 5px; box-shadow: 0 8px 25px rgba(0, 0, 0, .12); transition: transform .22s, box-shadow .22s, border-color .22s; }
.grid-card:hover { border-color: rgba(214, 181, 121, .4); box-shadow: 0 20px 48px rgba(0, 0, 0, .3); transform: translateY(-5px); }
.thumb-frame, .folder-visual, .generic-visual { position: relative; height: 174px; display: grid; place-items: center; overflow: hidden; background: #19141a; }
.thumb-frame::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 58%, rgba(11, 8, 12, .55)); }
.thumb-frame img { width: 100%; height: 100%; display: block; object-fit: cover; filter: saturate(.82) contrast(1.04); transition: transform .45s, filter .45s; }
.thumb-frame img:not(.loaded) { opacity: 0; }
.thumb-loader { position: absolute; z-index: 2; left: calc(50% - 12px); top: calc(50% - 12px); width: 24px; height: 24px; border: 2px solid rgba(215, 119, 123, .15); border-top-color: #d7777b; border-radius: 50%; animation: spin .8s linear infinite; }
.thumb-frame:has(img.loaded) .thumb-loader, .thumb-frame.failed .thumb-loader { display: none; }
.grid-card:hover .thumb-frame img { filter: saturate(1) contrast(1.02); transform: scale(1.035); }
.thumb-frame.failed img { display: none; }
.thumb-frame.failed::before { content: "Aperçu indisponible"; color: #776c75; font: 9px DM Mono; }
.video-thumb { display: grid; grid-template-columns: repeat(3, 1fr); background: #0b090c; }
.video-thumb img { grid-column: 1 / -1; grid-row: 1; width: 100%; object-fit: cover; }
.video-thumb > i { position: absolute; z-index: 2; top: 8px; bottom: 8px; width: 1px; background: rgba(239, 215, 183, .42); }
.video-thumb > i:nth-of-type(1) { left: 33.333%; }
.video-thumb > i:nth-of-type(2) { left: 66.666%; }
.video-badge { position: absolute; z-index: 3; left: 10px; bottom: 10px; padding: 5px 8px; color: #21161b; background: var(--gold-bright); font: 500 8px DM Mono, monospace; letter-spacing: .08em; }
.folder-visual { color: var(--gold); background: radial-gradient(circle at 50% 38%, rgba(214, 181, 121, .12), transparent 44%), #1c171d; }
.folder-visual::after { content: ""; position: absolute; width: 90px; height: 90px; border: 1px solid rgba(214, 181, 121, .12); border-radius: 50%; }
.folder-visual span { z-index: 1; font-size: 61px; line-height: 1; transform: rotate(-3deg); }
.folder-visual small { position: absolute; bottom: 13px; color: #7d7179; text-transform: uppercase; font: 8px DM Mono; letter-spacing: .16em; }
.generic-visual { background: radial-gradient(circle, #2c202b, #19151a); }
.generic-visual span { width: 62px; height: 76px; display: grid; place-items: center; color: var(--gold-bright); background: linear-gradient(145deg, #3b2938, #241b25); border: 1px solid rgba(214, 181, 121, .25); clip-path: polygon(0 0, 72% 0, 100% 23%, 100% 100%, 0 100%); font: 9px DM Mono; }
.grid-info { height: 70px; display: flex; align-items: center; gap: 8px; padding: 11px 12px 10px 14px; }
.grid-info > div { flex: 1; min-width: 0; }
.grid-info strong { display: block; overflow: hidden; color: #d5c9d0; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; font-weight: 400; }
.grid-info small { display: block; margin-top: 5px; color: #746972; font: 8px DM Mono; }
.grid-info a, .grid-info button { flex: 0 0 34px; border-color: var(--line); }

/* Visionneuse et lecteur */
.preview-dialog { width: min(1060px, calc(100vw - 34px)); height: min(820px, calc(100vh - 34px)); max-width: none; max-height: none; padding: 0; overflow: hidden; color: var(--cream); background: #0b090c; border: 1px solid rgba(226, 203, 174, .22); border-radius: 7px; box-shadow: 0 35px 120px rgba(0, 0, 0, .75); }
.preview-dialog::backdrop { background: rgba(7, 5, 8, .86); backdrop-filter: blur(9px); }
.preview-dialog::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; box-shadow: inset 0 0 90px rgba(173, 113, 132, .06); }
.preview-top, .preview-foot { height: 72px; display: flex; align-items: center; padding: 0 24px; background: linear-gradient(90deg, #171218, #110e13); }
.preview-top { border-bottom: 1px solid var(--line); }
.preview-top div { min-width: 0; }
.preview-top small { display: block; color: var(--gold); text-transform: uppercase; font: 8px DM Mono; letter-spacing: .2em; }
.preview-top strong { display: block; overflow: hidden; margin-top: 5px; color: #ded3d8; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 400; }
.preview-top button { margin-left: auto; color: #b1a4ac; border: 0; background: none; cursor: pointer; font: 29px/1 "Cormorant Garamond", serif; }
.preview-top button:hover { color: var(--gold-bright); }
.preview-body { height: calc(100% - 144px); display: flex; align-items: center; justify-content: center; overflow: auto; background: radial-gradient(circle at center, #181219, #070608 72%); touch-action: pan-y; }
.preview-body > img { max-width: 100%; max-height: 100%; object-fit: contain; box-shadow: 0 15px 55px rgba(0, 0, 0, .5); }
.preview-foot { justify-content: space-between; border-top: 1px solid var(--line); }
.preview-foot span { color: #837781; font: 8px DM Mono; }
.swipe-hint { display: none; color: #665c64; font: 8px DM Mono; }
.preview-arrow { position: absolute; z-index: 6; top: 50%; width: 50px; height: 50px; display: grid; place-items: center; padding: 0 0 3px; color: var(--cream); border: 1px solid rgba(214, 181, 121, .35); border-radius: 50%; background: rgba(24, 17, 23, .86); box-shadow: 0 12px 35px rgba(0, 0, 0, .4); backdrop-filter: blur(8px); cursor: pointer; transform: translateY(-50%); font: 500 25px/1 "Cormorant Garamond", serif; transition: .18s; }
.preview-arrow:hover { color: #1b1218; border-color: var(--gold-bright); background: var(--gold-bright); }
.preview-arrow:active { transform: translateY(-50%) scale(.94); }
.preview-arrow:disabled { opacity: .16; cursor: default; box-shadow: none; }
.preview-arrow.previous { left: 20px; }
.preview-arrow.next { right: 20px; }
.preview-loading, .preview-error { display: flex; flex-direction: column; align-items: center; color: #746a71; text-align: center; }
.preview-loading span { width: 28px; height: 28px; border: 2px solid #332a31; border-top-color: var(--gold); border-radius: 50%; animation: spin .7s linear infinite; }
.preview-loading p, .preview-error p { margin-top: 12px; font-size: 10px; }
.preview-error strong { color: var(--cream); font: 500 23px "Cormorant Garamond", serif; }
.custom-player { position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; overflow: hidden; background: radial-gradient(circle, #171017, #050406 70%); }
.custom-player::before { content: "A"; position: absolute; color: rgba(214, 181, 121, .025); font: 500 min(60vh, 520px)/1 "Cormorant Garamond", serif; pointer-events: none; }
.custom-player video { z-index: 1; width: 100%; height: 100%; object-fit: contain; cursor: pointer; }
.video-controls { position: absolute; z-index: 3; left: 22px; right: 22px; bottom: 18px; min-height: 58px; display: flex; align-items: center; gap: 9px; padding: 10px 12px; background: linear-gradient(90deg, rgba(25, 18, 24, .94), rgba(13, 10, 14, .92)); border: 1px solid rgba(214, 181, 121, .22); border-radius: 5px; box-shadow: 0 14px 45px rgba(0, 0, 0, .52); backdrop-filter: blur(12px); }
.video-controls button { height: 36px; min-width: 38px; display: grid; place-items: center; padding: 0 9px; color: #c5b8c0; border: 1px solid rgba(226, 203, 174, .16); border-radius: 3px; background: rgba(255, 255, 255, .025); cursor: pointer; font: 500 9px DM Mono; transition: .15s; }
.video-controls button:hover { color: var(--gold-bright); border-color: rgba(214, 181, 121, .55); background: rgba(214, 181, 121, .07); }
.video-controls .play-button { width: 40px; color: #1a1117; border-color: var(--gold); background: linear-gradient(145deg, var(--gold-bright), #b3864d); font-size: 12px; }
.video-controls .skip-button { white-space: nowrap; }
.video-controls input[type="range"] { height: 8px; padding: 0; border: 0; border-radius: 5px; appearance: none; background: linear-gradient(90deg, #7b5c49, #514047); cursor: pointer; }
.video-controls input[type="range"]::-webkit-slider-thumb { width: 18px; height: 18px; border: 2px solid #241923; border-radius: 50%; appearance: none; background: var(--gold-bright); box-shadow: 0 0 0 3px rgba(214, 181, 121, .18), 0 0 14px rgba(214, 181, 121, .35); }
.video-controls input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; border: 2px solid #241923; border-radius: 50%; background: var(--gold-bright); box-shadow: 0 0 0 3px rgba(214, 181, 121, .18); }
.seek-control { flex: 1; min-width: 70px; }
.volume-control { width: 68px !important; flex: 0 0 68px !important; }
.time-display { color: #9d9099 !important; white-space: nowrap; font: 8px DM Mono !important; }

/* Éléments flottants */
.scroll-top { position: fixed; right: 27px; bottom: 27px; z-index: 12; width: 50px; height: 50px; display: grid; place-items: center; padding: 0 0 2px; color: #21151b; border: 1px solid var(--gold-bright); border-radius: 50%; background: linear-gradient(145deg, var(--gold-bright), #ae7d46); box-shadow: 0 14px 38px rgba(0, 0, 0, .4); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(16px); transition: .2s; font: 23px "Cormorant Garamond", serif; }
.scroll-top.visible { opacity: 1; visibility: visible; transform: none; }
.scroll-top:hover { color: var(--cream); background: var(--rose); border-color: var(--rose); }
.scroll-top:active { transform: scale(.94); }
.toast { position: fixed; z-index: 40; right: 24px; bottom: 24px; padding: 14px 20px; color: #1d1419; background: var(--gold-bright); border: 1px solid rgba(255, 255, 255, .3); box-shadow: var(--shadow); font-size: 11px; opacity: 0; transform: translateY(90px); transition: .25s; }
.toast.show { opacity: 1; transform: none; }
.toast.error { color: white; background: #8e3f57; }
.icon-button { color: var(--cream); border: 0; background: none; font-size: 20px; }
.mobile-only { display: none; }
@keyframes spin { to { transform: rotate(360deg); } }

/* Langage de formes organiques et icônes */
.brand-mark { border-radius: 50%; clip-path: none; }
.login-card { border: 0; border-radius: 42px 10px 42px 42px; }
form input, form select { margin-top: 7px; padding: 13px 16px; border: 0; border-radius: 18px; background: rgba(255, 255, 255, .045); box-shadow: inset 0 1px rgba(255, 255, 255, .025); }
form input:focus, form select:focus { border: 0; background: rgba(214, 181, 121, .09); box-shadow: 0 0 0 3px rgba(214, 181, 121, .1); }
.check span { border: 0; border-radius: 50%; background: rgba(255, 255, 255, .08); }
.primary { border-radius: 999px; }
.topbar { border: 0; }
.server-pill { border: 0; background: rgba(255, 255, 255, .045); }
.sidebar { border: 0; border-radius: 0 28px 28px 0; box-shadow: 14px 0 45px rgba(0, 0, 0, .16); }
.tree-row { border-radius: 999px; }
.tree-row .folder { width: 19px; height: 19px; display: grid; place-items: center; }
.tree-row .folder svg { width: 17px; height: 17px; fill: currentColor; }
.tree-row .folder .icon-light { fill: var(--gold-bright); opacity: .45; }
.tree-children { border: 0; }
.secondary { border: 0; border-radius: 999px; background: rgba(255, 255, 255, .055); }
.secondary:hover { border: 0; background: rgba(214, 181, 121, .12); }
.view-switch { padding: 4px; border: 0; border-radius: 999px; background: rgba(255, 255, 255, .045); }
.view-switch button { border-radius: 50%; }
.search-box { border: 0; border-radius: 999px; background: rgba(255, 255, 255, .045); }
.search-box:focus-within { border: 0; background: rgba(255, 255, 255, .07); box-shadow: 0 0 0 3px rgba(214, 181, 121, .08), 0 12px 35px rgba(0, 0, 0, .16); }
.search-box button { border: 0; background: rgba(255, 255, 255, .08); }
.file-row { margin: 6px 0; border: 0; border-radius: 20px; background: rgba(255, 255, 255, .018); }
.file-row:hover { background: linear-gradient(100deg, rgba(214, 181, 121, .1), rgba(173, 113, 132, .06)); }
.file-name .file-icon { width: 44px; height: 44px; flex-basis: 44px; border: 0; border-radius: 16px; color: #241821; background: linear-gradient(145deg, #b78a9b, #81566c); }
.file-icon svg { width: 25px; height: 25px; fill: currentColor; }
.file-icon .icon-light { fill: var(--cream); opacity: .4; }
.file-icon .icon-cut { fill: #d8bdc8; }
.file-icon.folder-icon { color: #2b1c1a; background: linear-gradient(145deg, var(--gold-bright), #b57f48); transform: none; }
.file-icon.folder-icon .icon-light { fill: #fff1cf; opacity: .55; }
.file-icon.video-icon { color: #23151b; background: linear-gradient(145deg, #d994a9, #9b596f); }
.file-icon.image-icon { color: #1b2627; background: linear-gradient(145deg, #94c8bd, #527f7c); }
.file-icon.pdf-icon { color: #2a1418; background: linear-gradient(145deg, #e08383, #a74e5b); }
.file-icon.audio-icon { color: #251b2c; background: linear-gradient(145deg, #a994d3, #675184); }
.file-icon.archive-icon { color: #211c13; background: linear-gradient(145deg, #cfb778, #8e743e); }
.file-icon.code-icon { color: #152329; background: linear-gradient(145deg, #82aec0, #4e7181); }
.row-actions button, .row-actions a, .grid-info a, .grid-info button { border: 0; border-radius: 50%; background: rgba(255, 255, 255, .045); }
.row-actions button:hover, .row-actions a:hover, .grid-info a:hover, .grid-info button:hover { border: 0; background: rgba(214, 181, 121, .15); }
.grid-card { border: 0; border-radius: 28px 9px 28px 28px; }
.grid-card:hover { border: 0; }
.thumb-frame, .folder-visual, .generic-visual { border-radius: 0 0 28px 28px; }
.folder-visual svg, .generic-visual svg { z-index: 1; width: 72px; height: 72px; fill: currentColor; filter: drop-shadow(0 10px 18px rgba(0, 0, 0, .22)); }
.folder-visual .icon-light { fill: var(--gold-bright); opacity: .42; }
.generic-visual { color: #b88599; }
.generic-visual .icon-light { fill: var(--cream); opacity: .28; }
.generic-visual .icon-cut { fill: #d3aabd; }
.generic-visual small { position: absolute; z-index: 2; bottom: 13px; padding: 4px 8px; color: #d0bdc7; border-radius: 999px; background: rgba(15, 10, 15, .48); text-transform: uppercase; font: 8px DM Mono; }
.grid-info a, .grid-info button { border: 0; }
.preview-dialog { border: 0; border-radius: 30px 10px 30px 30px; }
.preview-top, .preview-foot { border: 0; }
.preview-arrow { border: 0; }
.video-controls { border: 0; border-radius: 22px; }
.video-controls button { border: 0; border-radius: 999px; background: rgba(255, 255, 255, .07); }
.video-controls button:hover { border: 0; background: rgba(214, 181, 121, .14); }
.video-controls .play-button { border: 0; border-radius: 50%; }

/* Mobile */
@media (max-width: 800px) {
  .login-shell { display: block; overflow: auto; }
  .login-shell::before { inset: 10px; }
  .intro { min-height: 46vh; padding: 92px 27px 45px; }
  .intro .brand { left: 27px; top: 30px; }
  .room-art { inset: 0; opacity: .62; }
  .room-art svg { width: 150%; max-width: none; transform: translateX(-22%); }
  .room-art::after { background: linear-gradient(90deg, rgba(10, 8, 12, .78), rgba(12, 9, 13, .3)), linear-gradient(0deg, rgba(10, 8, 12, .72), transparent 55%); }
  .intro h1 { font-size: clamp(51px, 15vw, 72px); }
  .lead { max-width: 88%; margin: 24px 0; font-size: 13px; line-height: 1.6; }
  .login-card { min-height: 54vh; margin: 0; padding: 42px 27px; border-width: 1px 0 0; }
  .topbar { height: 64px; padding: 0 14px; gap: 12px; }
  .topbar .brand-logo { width: 34px; height: 34px; flex-basis: 34px; }
  .brand-name { display: none; }
  .server-pill { max-width: 135px; margin-left: auto; }
  .logout { font-size: 0; }
  .logout span { font-size: 17px; }
  .workspace { height: calc(100vh - 64px); display: block; }
  .sidebar { position: fixed; z-index: 20; top: 64px; bottom: 0; left: 0; width: 290px; box-shadow: 25px 0 60px rgba(0, 0, 0, .5); transform: translateX(-101%); transition: transform .25s; }
  .sidebar.open { transform: none; }
  .mobile-only { display: block; }
  .side-title button { color: var(--cream); border: 0; background: none; font-size: 22px; }
  .content { height: 100%; padding: 26px 14px; }
  .content-head { align-items: flex-start; }
  .content-head .eyebrow { display: none; }
  .breadcrumbs button { font-size: 28px; }
  .secondary { padding: 10px 12px; }
  .secondary span { display: none; }
  .primary.compact { padding: 11px 13px; }
  .stats { gap: 14px; margin-top: 27px; }
  .search-box { margin-top: 14px; }
  .table-head { display: none; }
  .file-list:not(.mosaic) { padding-top: 8px; }
  .file-row { grid-template-columns: minmax(0, 1fr) auto; min-height: 72px; padding: 8px 7px; }
  .file-size, .file-date { display: none; }
  .file-text small { display: block; margin-top: 5px; color: #756a72; font: 8px DM Mono; }
  .row-actions { gap: 0; }
  .row-actions button, .row-actions a { width: 32px; }
  .file-list.mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .thumb-frame, .folder-visual, .generic-visual { height: 130px; }
  .grid-info { height: 65px; padding: 10px; }
  .preview-dialog { width: 100vw; height: 100vh; border: 0; border-radius: 0; }
  .preview-arrow { top: auto; bottom: 79px; width: 43px; height: 43px; transform: none; }
  .preview-arrow:active { transform: scale(.94); }
  .preview-arrow.previous { left: 18px; }
  .preview-arrow.next { right: 18px; }
  .swipe-hint { display: block; }
  .video-controls { left: 7px; right: 7px; bottom: 8px; min-height: 53px; padding: 7px 6px; gap: 5px; }
  .video-controls .volume-control, .video-controls .mute-button { display: none; }
  .video-controls button { padding: 0 6px; }
  .time-display { font-size: 7px !important; }
  .custom-player video { padding-bottom: 58px; }
  .scroll-top { right: 16px; bottom: 18px; width: 46px; height: 46px; }
  .toast { left: 14px; right: 14px; bottom: 14px; text-align: center; }
}

@media (max-width: 430px) {
  .intro h1 { font-size: 52px; }
  .fields-row { grid-template-columns: 1fr 80px; gap: 18px; }
  .content-head { display: block; }
  .actions { margin-top: 18px; }
  .actions .primary { flex: 1; }
  .stats > span { display: none; }
  .search-box small { display: none; }
  .file-icon { width: 36px !important; height: 36px !important; flex-basis: 36px !important; }
  .file-name { gap: 10px; }
  .row-actions .preview-button { display: none; }
  .file-list.mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .thumb-frame, .folder-visual, .generic-visual { height: 112px; }
  .video-controls { flex-wrap: wrap; }
  .seek-control { order: -1; flex-basis: 100%; height: 8px !important; }
  .time-display { margin-left: auto; }
  .preview-body { height: calc(100% - 136px); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Thème coucher de soleil */
:root {
  --night: #f9f1e6;
  --night-soft: #fbf6ef;
  --plum: #f2d8cf;
  --plum-light: #f8e8de;
  --cream: #41383a;
  --cream-muted: #74696a;
  --smoke: #8d8180;
  --gold: #df8967;
  --gold-bright: #f1b77f;
  --rose: #d7777b;
  --line: rgba(105, 81, 75, .1);
  --glass: rgba(255, 249, 241, .82);
  --shadow: 0 24px 70px rgba(104, 70, 65, .16);
}
html, body { color: var(--cream); background: #f8efe4; }
body { background-image: radial-gradient(circle at 88% 6%, rgba(239, 170, 138, .25), transparent 30%), radial-gradient(circle at 7% 91%, rgba(113, 169, 170, .13), transparent 28%); }
.noise { opacity: .016; mix-blend-mode: multiply; }
.login-shell { background: linear-gradient(145deg, #fff7ec 0%, #f6ddcc 48%, #dcb1ad 74%, #9fc2c0 115%); }
.login-shell::before { border-color: rgba(112, 81, 72, .09); }
.intro::after { border-color: rgba(214, 119, 104, .14); box-shadow: 0 0 0 70px rgba(246, 185, 131, .05), 0 0 0 140px rgba(116, 170, 168, .035); }
.room-art { opacity: .12; filter: sepia(.3) saturate(.65) brightness(1.55); mix-blend-mode: multiply; }
.room-art::after { background: linear-gradient(90deg, rgba(255, 247, 236, .88), rgba(250, 226, 208, .42), rgba(233, 180, 172, .08)), linear-gradient(0deg, rgba(246, 232, 216, .35), transparent 50%); }
.brand { color: #4d4040; }
.brand-mark { color: #fffaf3; background: linear-gradient(145deg, #e9866d, #d06972); box-shadow: 0 8px 24px rgba(190, 102, 96, .2); }
.eyebrow { color: #c7655f; }
.eyebrow::before { background: #d57566; }
.intro h1 { color: #44383a; }
.intro h1 em { color: #c96766; text-shadow: 0 12px 40px rgba(204, 102, 99, .14); }
.lead { color: #766769; }
.trust { color: #8b7a78; }
.trust span { background: #dd8268; box-shadow: 0 0 0 5px rgba(221, 130, 104, .1); }
.login-card { color: #453b3d; background: rgba(255, 250, 243, .8); box-shadow: -20px 24px 70px rgba(119, 80, 74, .13); backdrop-filter: blur(22px); }
.login-card::before { color: #d9786c; }
.card-glow { background: rgba(244, 171, 135, .18); }
.card-heading > span { color: #cf6f62; border-color: #cf6f62; }
.card-heading p { color: #a18f8a; }
.card-heading h2 { color: #453a3b; }
form label { color: #897977; }
form input, form select { color: #4b4041; background: rgba(255, 255, 255, .62); box-shadow: none; }
form input::placeholder { color: #b7a5a0; }
form input:focus, form select:focus { background: #fffaf4; box-shadow: 0 0 0 3px rgba(222, 128, 102, .12); }
select option { color: #453a3b; background: #fff8ef; }
.check span { background: rgba(128, 98, 91, .1); }
.check input:checked + span { background: #dc8169; }
.check input:checked + span::after { color: white; }
.primary { color: white; background: linear-gradient(110deg, #db7a68, #efa276, #d66f70); box-shadow: 0 9px 25px rgba(197, 103, 94, .14); }
.primary:hover { box-shadow: 0 12px 30px rgba(197, 103, 94, .22); }
.form-error { color: #b64e55; }
.form-error.pending { color: #8c7b77; }
.button-spinner { border-color: rgba(255, 255, 255, .4); border-top-color: white; }

.app-shell { background: #fbf6ef; }
.topbar { color: #473d3e; background: rgba(255, 249, 241, .92); box-shadow: 0 8px 30px rgba(108, 76, 70, .08); backdrop-filter: blur(18px); }
.topbar::after { background: linear-gradient(90deg, transparent, #e89576, #79aaa8, transparent); opacity: .36; }
.server-pill { color: #837471; background: #f4e9dd; }
.server-pill i { background: #68a09d; box-shadow: 0 0 8px rgba(104, 160, 157, .45); }
.logout { color: #8c7b78; }
.logout:hover { color: #ca655f; }
.sidebar { background: linear-gradient(180deg, #f3e8dc, #f8f0e7); box-shadow: 13px 0 38px rgba(102, 73, 67, .07); }
.side-title { color: #998984; }
.tree-row { color: #766968; }
.tree-row:hover { color: #4a3e3f; background: rgba(255, 255, 255, .55); }
.tree-row.active { color: #b75f5e; background: linear-gradient(90deg, rgba(234, 150, 117, .18), rgba(255, 255, 255, .35)); }
.tree-row .chev { color: #b6a6a1; }
.tree-row .folder { color: #db8266; }
.tree-row .folder .icon-light { fill: #f5b981; }
.side-foot { border-color: rgba(112, 86, 80, .08); }
.side-foot span { color: white; background: #db8069; }
.side-foot small { color: #9b8b87; }
.content { background-color: #fbf6ef; background-image: radial-gradient(circle at 84% 12%, rgba(244, 176, 141, .16), transparent 27%), radial-gradient(circle at 12% 92%, rgba(116, 169, 168, .09), transparent 24%); }
.breadcrumbs button { color: #493e3f; }
.breadcrumbs button:not(:last-child) { color: #a59691; }
.breadcrumbs button:hover { color: #cb6760; }
.breadcrumbs .slash { color: #dd8170; }
.secondary { color: #766866; background: #f0e4d8; }
.secondary:hover { color: #b95d59; background: #f5dcd0; }
.parent-button { color: #c2685c; }
.stats { color: #aa9993; border-color: rgba(108, 83, 77, .09); }
.stats strong { color: #716462; }
.view-switch { background: #eee3d8; }
.view-switch button { color: #a18f89; }
.view-switch button.active { color: white; background: #de836b; }
.search-box { background: rgba(255, 255, 255, .72); box-shadow: 0 7px 25px rgba(105, 74, 68, .05); }
.search-box:focus-within { background: white; box-shadow: 0 0 0 3px rgba(226, 139, 109, .1), 0 12px 32px rgba(111, 76, 69, .08); }
.search-box > span { color: #d47464; }
.search-box input { color: #4d4142; }
.search-box small { color: #a18f8a; }
.search-box button { color: #957f7b; background: #f3e5da; }
.search-box button:hover { color: white; background: #d87668; }
.table-head { color: #b2a19b; }
.file-row { background: rgba(255, 255, 255, .42); }
.file-row:hover { background: linear-gradient(100deg, rgba(255, 227, 207, .8), rgba(219, 236, 232, .54)); box-shadow: 0 11px 30px rgba(111, 78, 71, .08); }
.file-text strong { color: #554849; }
.file-size, .file-date, .file-text small { color: #a08f8a; }
.row-actions button, .row-actions a, .grid-info a, .grid-info button { color: #8c7976; background: #f1e5da; }
.row-actions button:hover, .row-actions a:hover, .grid-info a:hover, .grid-info button:hover { color: #bf5e5d; background: #f6dcd1; }
.empty, .loading { color: #a4918d; }
.empty h3 { color: #6d5e5d; }
.loading span { border-color: #eadbd0; border-top-color: #da7b66; }
.drop-overlay { color: #4d4041; background: rgba(255, 244, 232, .94); border-color: transparent; }
.drop-overlay strong { color: #c6635e; }
.drop-overlay span { color: #8d7b77; }

.grid-card { background: rgba(255, 255, 255, .74); box-shadow: 0 8px 25px rgba(108, 74, 67, .07); }
.grid-card:hover { box-shadow: 0 20px 44px rgba(107, 73, 67, .13); }
.thumb-frame, .folder-visual, .generic-visual { background: #f1e2d8; }
.folder-visual { color: #d87b63; background: radial-gradient(circle at 50% 38%, rgba(245, 173, 124, .24), transparent 45%), #f7e9dd; }
.folder-visual::after { border-color: rgba(209, 112, 91, .12); }
.generic-visual { color: #c67879; background: radial-gradient(circle, #f4ddd6, #efe8dc); }
.generic-visual .icon-light { fill: white; }
.generic-visual .icon-cut { fill: #f1b0a5; }
.generic-visual small { color: #7d6967; background: rgba(255, 255, 255, .65); }
.grid-info strong { color: #584a4b; }
.grid-info small { color: #a08d88; }

.preview-dialog { color: #493d3f; background: #fbf3ea; box-shadow: 0 35px 100px rgba(84, 55, 55, .28); }
.preview-dialog::backdrop { background: rgba(95, 71, 74, .48); backdrop-filter: blur(10px); }
.preview-top, .preview-foot { background: linear-gradient(90deg, #fff9f1, #f4e5dc); }
.preview-top small { color: #cc6b62; }
.preview-top strong { color: #59494c; }
.preview-top button { color: #8d7877; }
.preview-top button:hover { color: #c75f5c; }
.preview-body { background: radial-gradient(circle at center, #f7e9df, #e8d2ca 72%); }
.preview-foot span, .swipe-hint { color: #95817f; }
.preview-arrow { color: white; background: rgba(207, 105, 99, .9); box-shadow: 0 12px 30px rgba(126, 70, 69, .18); }
.preview-arrow:hover { color: white; background: #6fa6a3; }
.preview-loading, .preview-error { color: #8d7c79; }
.preview-loading span { border-color: #ead7cc; border-top-color: #d87563; }
.preview-error strong { color: #58494a; }
.custom-player { background: radial-gradient(circle, #51424a, #241f27 74%); }
.custom-player::before { color: rgba(244, 190, 143, .045); }
.video-controls { background: rgba(255, 246, 236, .9); box-shadow: 0 14px 40px rgba(35, 24, 30, .3); }
.video-controls button { color: #725f5f; background: #f0ded3; }
.video-controls button:hover { color: #b95858; background: #f7d7cc; }
.video-controls .play-button { color: white; background: linear-gradient(145deg, #e68a6f, #d2686d); }
.video-controls input[type="range"] { background: linear-gradient(90deg, #dd846c, #e5c5b3); }
.video-controls input[type="range"]::-webkit-slider-thumb { border-color: #fff8ef; background: #d96f68; box-shadow: 0 0 0 3px rgba(221, 116, 101, .16); }
.video-controls input[type="range"]::-moz-range-thumb { border-color: #fff8ef; background: #d96f68; }
.time-display { color: #8c7976 !important; }
.scroll-top { color: white; border: 0; background: linear-gradient(145deg, #e58a6e, #cf666d); box-shadow: 0 12px 30px rgba(177, 89, 87, .2); }
.scroll-top:hover { color: white; background: #72aaa7; }
.toast { color: white; background: #d97868; border: 0; box-shadow: 0 15px 40px rgba(154, 79, 77, .2); }
.toast.error { background: #b75159; }

@media (max-width: 800px) {
  .room-art { opacity: .1; filter: sepia(.25) saturate(.6) brightness(1.65); }
  .room-art::after { background: linear-gradient(90deg, rgba(255, 246, 233, .76), rgba(246, 214, 201, .22)), linear-gradient(0deg, rgba(248, 235, 220, .55), transparent 55%); }
  .login-card { background: rgba(255, 248, 240, .9); }
  .sidebar { box-shadow: 22px 0 55px rgba(99, 68, 63, .18); }
}

/* Création de dossier */
.folder-dialog { width: min(470px, calc(100vw - 28px)); padding: 0; color: #493d3f; border: 0; border-radius: 32px 10px 32px 32px; background: rgba(255, 249, 241, .96); box-shadow: 0 32px 100px rgba(105, 70, 68, .28); backdrop-filter: blur(20px); }
.folder-dialog::backdrop { background: rgba(104, 76, 78, .38); backdrop-filter: blur(8px); }
.folder-dialog form { position: relative; padding: 42px; }
.folder-dialog .eyebrow { margin-bottom: 12px; }
.folder-dialog h2 { margin: 0; color: #493d3f; font: 500 38px/1 "Cormorant Garamond", Georgia, serif; }
.dialog-intro { margin: 12px 0 28px; color: #8d7c78; font-size: 12px; line-height: 1.6; }
.folder-dialog label { color: #897977; }
.folder-dialog input { color: #4b4041; background: white; }
.folder-dialog .primary { margin-top: 4px; }
.dialog-close { position: absolute; top: 20px; right: 20px; width: 34px; height: 34px; display: grid; place-items: center; padding: 0; color: #8d7a77; border: 0; border-radius: 50%; background: #f3e4d9; cursor: pointer; font-size: 20px; }
.dialog-close:hover { color: white; background: #d87668; }
@media (max-width: 500px) { .folder-dialog form { padding: 35px 24px 27px; } .folder-dialog h2 { font-size: 32px; } }

/* Déplacement de fichiers */
.move-dialog { width: min(560px, calc(100vw - 28px)); padding: 0; overflow: hidden; color: #493d3f; border: 0; border-radius: 34px 10px 34px 34px; background: rgba(255, 249, 241, .97); box-shadow: 0 32px 100px rgba(105, 70, 68, .3); backdrop-filter: blur(20px); }
.move-dialog::backdrop { background: rgba(104, 76, 78, .38); backdrop-filter: blur(8px); }
.move-dialog-head { position: relative; display: flex; padding: 35px 40px 22px; }
.move-dialog-head .eyebrow { margin-bottom: 10px; }
.move-dialog-head h2 { max-width: 410px; margin: 0; overflow: hidden; color: #493d3f; text-overflow: ellipsis; white-space: nowrap; font: 500 30px/1 "Cormorant Garamond", Georgia, serif; }
.move-dialog-head .dialog-close { top: 25px; right: 25px; }
.move-location { margin: 0 40px; padding: 15px 18px; border-radius: 18px; background: #f3e5da; }
.move-location small { display: block; color: #a18e89; text-transform: uppercase; font: 8px DM Mono; letter-spacing: .12em; }
.move-location strong { display: block; margin-top: 5px; overflow: hidden; color: #695958; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 500; }
.move-browser-head { display: flex; align-items: center; gap: 13px; padding: 18px 40px 10px; }
.move-browser-head span { color: #9a8984; text-transform: uppercase; font: 8px DM Mono; letter-spacing: .1em; }
.move-folder-list { min-height: 170px; max-height: 290px; overflow: auto; padding: 5px 32px 15px; }
.move-folder-list > button { width: 100%; min-height: 52px; display: flex; align-items: center; gap: 12px; margin: 5px 0; padding: 8px 13px; color: #675857; border: 0; border-radius: 18px; background: #fbf3e9; text-align: left; cursor: pointer; transition: .16s; }
.move-folder-list > button:hover { color: #b75e59; background: #f7ded3; transform: translateX(3px); }
.move-folder-list svg { width: 27px; height: 27px; flex: 0 0 27px; fill: #dc8067; }
.move-folder-list .icon-light { fill: #f5b37c; }
.move-folder-list button span { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.move-folder-list button b { color: #c98776; font-size: 18px; }
.move-empty, .move-loading { min-height: 150px; display: flex; align-items: center; justify-content: center; gap: 9px; color: #a18f8a; font-size: 11px; }
.move-loading span { width: 18px; height: 18px; border: 2px solid #ead8cc; border-top-color: #d87563; border-radius: 50%; animation: spin .7s linear infinite; }
.move-dialog > .form-error { margin: 0 40px; }
.move-dialog-foot { display: flex; justify-content: flex-end; gap: 9px; padding: 18px 40px 32px; }
@media (max-width: 560px) { .move-dialog-head { padding: 30px 24px 20px; } .move-dialog-head h2 { max-width: 270px; font-size: 26px; } .move-location { margin: 0 24px; } .move-browser-head { padding: 16px 24px 9px; } .move-folder-list { padding: 5px 17px 12px; } .move-dialog > .form-error { margin: 0 24px; } .move-dialog-foot { padding: 16px 24px 25px; } }
.login-options { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-bottom: 4px; }
.login-options .check { width: auto; white-space: nowrap; }
@media (max-width: 430px) { .login-options { align-items: flex-start; flex-direction: column; gap: 0; } }
