/* ═══════════════════════════════════════════════════════════
   rDrive — Feuille de styles
   ═══════════════════════════════════════════════════════════ */

/* ── Palette par défaut : Cosmic (violet/indigo) ──────────────────────────── */
:root {
    --accent:     #7c6bff;
    --accent-dim: rgba(124,107,255,0.18);
    --grad-a:     #a78bfa;
    --grad-b:     #6366f1;
    --blob-1:     #2d1966;
    --blob-2:     #0f2060;
    --blob-3:     #1d0a4a;
}

/* ── Palette Aurora (vert émeraude) ───────────────────────────────────────── */
html[data-palette="aurora"] {
    --accent: #10b981; --accent-dim: rgba(16,185,129,.18);
    --grad-a: #6ee7b7; --grad-b: #059669;
    --blob-1: #064e3b; --blob-2: #0c4a6e; --blob-3: #065f46;
}

/* ── Palette Sunset (orange/corail) ──────────────────────────────────────── */
html[data-palette="sunset"] {
    --accent: #f97316; --accent-dim: rgba(249,115,22,.18);
    --grad-a: #fdba74; --grad-b: #ef4444;
    --blob-1: #7c2d12; --blob-2: #991b1b; --blob-3: #78350f;
}

/* ── Palette Ocean (cyan/bleu) ────────────────────────────────────────────── */
html[data-palette="ocean"] {
    --accent: #06b6d4; --accent-dim: rgba(6,182,212,.18);
    --grad-a: #67e8f9; --grad-b: #0284c7;
    --blob-1: #083344; --blob-2: #0c1a4a; --blob-3: #0e3a5e;
}

/* ── Palette Cherry (rose/magenta) ───────────────────────────────────────── */
html[data-palette="cherry"] {
    --accent: #e879f9; --accent-dim: rgba(232,121,249,.18);
    --grad-a: #f0abfc; --grad-b: #a855f7;
    --blob-1: #701a75; --blob-2: #4a044e; --blob-3: #831843;
}

/* ── Palette Midnight (bleu nuit) ────────────────────────────────────────── */
html[data-palette="midnight"] {
    --accent: #60a5fa; --accent-dim: rgba(96,165,250,.18);
    --grad-a: #93c5fd; --grad-b: #3b82f6;
    --blob-1: #1e3a8a; --blob-2: #1e1b4b; --blob-3: #0f172a;
}

/* ── Variantes light par palette ──────────────────────────────────────────── */
html[data-theme="light"][data-palette="aurora"],
html:not([data-theme="dark"]) { }

@media (prefers-color-scheme: light) {
    html:not([data-theme="dark"])[data-palette="aurora"] {
        --blob-1: #a7f3d0; --blob-2: #bae6fd; --blob-3: #bbf7d0;
    }
    html:not([data-theme="dark"])[data-palette="sunset"] {
        --blob-1: #fed7aa; --blob-2: #fecaca; --blob-3: #fde68a;
    }
    html:not([data-theme="dark"])[data-palette="ocean"] {
        --blob-1: #a5f3fc; --blob-2: #bae6fd; --blob-3: #c7d2fe;
    }
    html:not([data-theme="dark"])[data-palette="cherry"] {
        --blob-1: #f5d0fe; --blob-2: #e9d5ff; --blob-3: #fce7f3;
    }
    html:not([data-theme="dark"])[data-palette="midnight"] {
        --blob-1: #bfdbfe; --blob-2: #c7d2fe; --blob-3: #ddd6fe;
    }
}
html[data-theme="light"][data-palette="aurora"]   { --blob-1:#a7f3d0;--blob-2:#bae6fd;--blob-3:#bbf7d0; }
html[data-theme="light"][data-palette="sunset"]   { --blob-1:#fed7aa;--blob-2:#fecaca;--blob-3:#fde68a; }
html[data-theme="light"][data-palette="ocean"]    { --blob-1:#a5f3fc;--blob-2:#bae6fd;--blob-3:#c7d2fe; }
html[data-theme="light"][data-palette="cherry"]   { --blob-1:#f5d0fe;--blob-2:#e9d5ff;--blob-3:#fce7f3; }
html[data-theme="light"][data-palette="midnight"] { --blob-1:#bfdbfe;--blob-2:#c7d2fe;--blob-3:#ddd6fe; }

/* ── Variables dark (fond + glass) ───────────────────────────────────────── */
:root {
    --bg:         #080714;
    --glass:      rgba(255,255,255,0.05);
    --glass-b:    rgba(255,255,255,0.08);
    --glass-brd:  rgba(255,255,255,0.09);
    --glass-shd:  0 20px 60px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.06);
    --text:       #f0eeff;
    --text-2:     rgba(240,238,255,.55);
    --text-3:     rgba(240,238,255,.28);
    --circle-fill:rgba(255,255,255,.03);
    --wave-1:     rgba(124,107,255,.38);
    --wave-2:     rgba(124,107,255,.18);
    --input-bg:   rgba(255,255,255,.06);
    --input-brd:  rgba(255,255,255,.1);
    --sep:        rgba(255,255,255,.08);
    --header-bg:  rgba(8,7,20,.72);
    --overlay-bg: rgba(8,7,20,.82);
    --ring-ok:    #34d399;
    --scrollbar:  rgba(255,255,255,.1);
}

/* ── Variables light ──────────────────────────────────────────────────────── */
@media (prefers-color-scheme: light) {
    :root {
        --bg:         #f0edff;
        --blob-1:     #c4b5fd; --blob-2: #93c5fd; --blob-3: #f9a8d4;
        --glass:      rgba(255,255,255,.62);
        --glass-b:    rgba(255,255,255,.82);
        --glass-brd:  rgba(108,99,255,.15);
        --glass-shd:  0 20px 60px rgba(108,99,255,.12), inset 0 1px 0 rgba(255,255,255,.9);
        --text:       #12103a;
        --text-2:     rgba(18,16,58,.52);
        --text-3:     rgba(18,16,58,.28);
        --circle-fill:rgba(108,99,255,.04);
        --wave-1:     rgba(108,99,255,.32);
        --wave-2:     rgba(108,99,255,.14);
        --input-bg:   rgba(255,255,255,.8);
        --input-brd:  rgba(108,99,255,.2);
        --sep:        rgba(108,99,255,.12);
        --header-bg:  rgba(240,237,255,.72);
        --overlay-bg: rgba(240,237,255,.85);
        --scrollbar:  rgba(108,99,255,.15);
    }
}

/* Surcharges manuelles dark/light */
html[data-theme="dark"] {
    --bg:#080714;
    --glass:rgba(255,255,255,.05); --glass-b:rgba(255,255,255,.08); --glass-brd:rgba(255,255,255,.09);
    --glass-shd:0 20px 60px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.06);
    --text:#f0eeff; --text-2:rgba(240,238,255,.55); --text-3:rgba(240,238,255,.28);
    --circle-fill:rgba(255,255,255,.03);
    --wave-1:rgba(124,107,255,.38); --wave-2:rgba(124,107,255,.18);
    --input-bg:rgba(255,255,255,.06); --input-brd:rgba(255,255,255,.1);
    --sep:rgba(255,255,255,.08);
    --header-bg:rgba(8,7,20,.72); --overlay-bg:rgba(8,7,20,.82);
    --scrollbar:rgba(255,255,255,.1);
}
html[data-theme="light"] {
    --bg:#f0edff; --blob-1:#c4b5fd; --blob-2:#93c5fd; --blob-3:#f9a8d4;
    --glass:rgba(255,255,255,.62); --glass-b:rgba(255,255,255,.82); --glass-brd:rgba(108,99,255,.15);
    --glass-shd:0 20px 60px rgba(108,99,255,.12), inset 0 1px 0 rgba(255,255,255,.9);
    --text:#12103a; --text-2:rgba(18,16,58,.52); --text-3:rgba(18,16,58,.28);
    --circle-fill:rgba(108,99,255,.04);
    --wave-1:rgba(108,99,255,.32); --wave-2:rgba(108,99,255,.14);
    --input-bg:rgba(255,255,255,.8); --input-brd:rgba(108,99,255,.2);
    --sep:rgba(108,99,255,.12);
    --header-bg:rgba(240,237,255,.72); --overlay-bg:rgba(240,237,255,.85);
    --scrollbar:rgba(108,99,255,.15);
}

/* Les wave-1/2 s'adaptent à la palette accent en dark */
html[data-palette="aurora"]  { --wave-1:rgba(16,185,129,.36); --wave-2:rgba(16,185,129,.16); }
html[data-palette="sunset"]  { --wave-1:rgba(249,115,22,.36);  --wave-2:rgba(249,115,22,.16); }
html[data-palette="ocean"]   { --wave-1:rgba(6,182,212,.36);   --wave-2:rgba(6,182,212,.16); }
html[data-palette="cherry"]  { --wave-1:rgba(232,121,249,.36); --wave-2:rgba(232,121,249,.16); }
html[data-palette="midnight"]{ --wave-1:rgba(96,165,250,.36);  --wave-2:rgba(96,165,250,.16); }

/* ── Reset ──────────────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { height: 100%; }

body {
    min-height: 100vh;
    background: var(--bg);
    color: var(--text);
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    font-size: 15px;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    align-items: center;
    /* justify-content via margin:auto sur rd-main pour éviter le débordement vers le haut */
    transition: background .4s;
}

/* ── Blobs animés ─────────────────────────────────────────────────────────── */
.blobs { position:fixed; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.blob  { position:absolute; border-radius:50%; filter:blur(90px); opacity:.55; will-change:transform; }
.blob-1 { width:700px;height:700px; top:-250px;left:-200px; background:var(--blob-1); animation:bf 28s ease-in-out infinite; }
.blob-2 { width:550px;height:550px; bottom:-200px;right:-150px; background:var(--blob-2); animation:bf 22s ease-in-out infinite reverse; }
.blob-3 { width:450px;height:450px; top:50%;left:50%; transform:translate(-50%,-50%); background:var(--blob-3); animation:bf 18s ease-in-out infinite 4s; opacity:.35; }
@keyframes bf {
    0%,100%{ transform:translate(0,0) scale(1); }
    25%    { transform:translate(40px,-60px) scale(1.05); }
    50%    { transform:translate(-30px,40px) scale(.96); }
    75%    { transform:translate(25px,20px) scale(1.02); }
}
.blob-3 { animation-name: bf3; }
@keyframes bf3 {
    0%,100%{ transform:translate(-50%,-50%) scale(1); }
    25%    { transform:translate(calc(-50% + 40px),calc(-50% - 60px)) scale(1.05); }
    50%    { transform:translate(calc(-50% - 30px),calc(-50% + 40px)) scale(.96); }
    75%    { transform:translate(calc(-50% + 25px),calc(-50% + 20px)) scale(1.02); }
}

/* ── Header ──────────────────────────────────────────────────────────────── */
.rd-header {
    position:fixed; top:0; left:0; right:0; z-index:100;
    display:flex; align-items:center; justify-content:space-between;
    padding:.9rem 1.75rem;
    background:var(--header-bg);
    backdrop-filter:blur(20px) saturate(180%);
    -webkit-backdrop-filter:blur(20px) saturate(180%);
    border-bottom:1px solid var(--glass-brd);
    transition:background .3s;
}

.rd-logo {
    display:flex; align-items:center; gap:.5rem;
    font-size:1rem; font-weight:700; letter-spacing:-.02em;
    color:var(--text); text-decoration:none;
}
.rd-logo img { display:block; height:30px; width:auto; }

.rd-theme-btn {
    width:2rem; height:2rem; border-radius:50%;
    border:1px solid var(--glass-brd); background:var(--glass);
    color:var(--text-2);
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; transition:border-color .2s, color .2s;
}
.rd-theme-btn:hover { border-color:var(--accent); color:var(--accent); }

/* ── Layout principal ─────────────────────────────────────────────────────── */
.rd-main {
    position:relative; z-index:1;
    display:flex; flex-direction:column; align-items:center;
    gap:1rem;
    width:min(340px, calc(100vw - 2rem));
    padding:4.75rem 0 2.25rem;
    margin-top:auto; margin-bottom:auto;
}

/* ── Titre hero ───────────────────────────────────────────────────────────── */
.rd-hero { text-align:center; width:100%; }
.rd-title {
    font-size:clamp(1.6rem,5vw,2.2rem);
    font-weight:800; letter-spacing:-.04em; line-height:1.1;
    color:var(--text);
}
.rd-dot { color:var(--accent); }
.rd-subtitle {
    margin-top:.45rem; font-size:.82rem;
    color:var(--text-2); font-weight:400;
}

/* ── Cercle de dépôt ──────────────────────────────────────────────────────── */
.rd-circle {
    position:relative; width:280px; height:280px;
    border-radius:50%; cursor:pointer; outline:none;
    transition:transform .3s cubic-bezier(.34,1.56,.64,1), filter .3s ease;
    -webkit-tap-highlight-color:transparent;
    flex-shrink:0;
}
.rd-circle:hover  { transform:scale(1.03); filter:drop-shadow(0 0 28px color-mix(in srgb,var(--accent) 50%,transparent)); }
.rd-circle.drag-over { transform:scale(1.06); filter:drop-shadow(0 0 42px color-mix(in srgb,var(--accent) 70%,transparent)); }

.rd-circle-svg { position:absolute; inset:0; width:100%; height:100%; }

/* SVG couleurs via CSS */
#circleBg    { fill:var(--circle-fill); }
#wavePath    { fill:var(--wave-1); }
#wavePath2   { fill:var(--wave-2); }
.rd-ring {
    transform-origin:150px 150px;
    transform:rotate(-90deg);
    transition:stroke-dashoffset .35s linear;
}

/* Contenu dans le cercle */
.rd-circle-content {
    position:absolute; inset:0; z-index:2;
    display:flex; align-items:center; justify-content:center;
}

.rd-state {
    display:flex; flex-direction:column; align-items:center;
    text-align:center; padding:2rem; gap:.3rem;
    animation:sFade .25s ease;
}
.rd-state.hidden { display:none; }
@keyframes sFade { from{opacity:0;transform:scale(.94) translateY(4px)} to{opacity:1;transform:none} }

/* Icône idle */
.rd-upload-icon-wrap {
    width:54px; height:54px; border-radius:50%;
    background:var(--accent-dim);
    display:flex; align-items:center; justify-content:center;
    color:var(--accent); margin-bottom:.6rem;
    animation:iPulse 3s ease-in-out infinite;
    transition:background .3s;
}
.rd-circle:hover .rd-upload-icon-wrap { background:color-mix(in srgb,var(--accent) 28%,transparent); }
@keyframes iPulse {
    0%,100%{ transform:scale(1);    box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 30%,transparent); }
    50%    { transform:scale(1.07); box-shadow:0 0 0 10px transparent; }
}

.rd-drop-label { font-size:.88rem; font-weight:600; color:var(--text); }
.rd-drop-sub   { font-size:.73rem; color:var(--text-2); }

/* Upload en cours */
.rd-upload-name { font-size:.68rem; font-family:monospace; color:var(--accent); max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rd-percent     { font-size:2.8rem; font-weight:800; letter-spacing:-.04em; color:var(--text); line-height:1; margin:.2rem 0; }
.rd-speed       { font-size:.7rem; color:var(--text-2); }

/* Succès */
.rd-check-wrap {
    width:50px;height:50px;border-radius:50%;
    background:rgba(52,211,153,.14);
    display:flex;align-items:center;justify-content:center;
    color:#34d399; margin-bottom:.4rem;
    animation:cPop .4s cubic-bezier(.34,1.56,.64,1);
}
@keyframes cPop { from{transform:scale(0);opacity:0} to{transform:scale(1);opacity:1} }
.rd-success-label { font-size:1.05rem; font-weight:700; color:#34d399; }
.rd-copy-btn {
    margin-top:.5rem; padding:.42rem 1.1rem;
    background:var(--accent); color:#fff;
    font-size:.76rem; font-weight:600;
    border:none; border-radius:999px; cursor:pointer;
    font-family:inherit; transition:filter .2s, transform .15s;
    position:relative; overflow:hidden;
}
.rd-copy-btn:hover  { filter:brightness(1.12); transform:translateY(-1px); }
.rd-copy-btn.copied { background:#059669; }
.rd-expire-info { font-size:.67rem; color:var(--text-3); margin-top:.2rem; }

/* Erreur */
.rd-error-wrap {
    width:48px;height:48px;border-radius:50%;
    background:rgba(248,113,113,.12);
    display:flex;align-items:center;justify-content:center; color:#f87171; margin-bottom:.35rem;
}
.rd-error-label { font-size:.92rem; font-weight:600; color:#f87171; }
.rd-error-msg   { font-size:.71rem; color:var(--text-2); max-width:180px; line-height:1.45; }
.rd-retry-btn   { margin-top:.45rem; font-size:.74rem; color:var(--text-2); background:none; border:none; cursor:pointer; font-family:inherit; text-decoration:underline; text-underline-offset:3px; transition:color .2s; }
.rd-retry-btn:hover { color:var(--text); }

/* ── Barre d'options ─────────────────────────────────────────────────────── */
.rd-options-bar {
    width:fit-content;
    max-width:calc(100vw - 2rem);
    display:flex; align-items:center;
    background:var(--glass);
    border:1px solid var(--glass-brd);
    backdrop-filter:blur(20px) saturate(180%);
    -webkit-backdrop-filter:blur(20px) saturate(180%);
    border-radius:999px;
    padding:.25rem .4rem;
    box-shadow:var(--glass-shd);
    transition:background .3s;
}

.rd-option-group { display:flex; gap:.1rem; flex-shrink:0; }

.rd-mode-btn {
    display:flex; align-items:center; gap:.3rem;
    padding:.4rem .7rem; border-radius:999px; border:none;
    font-size:.75rem; font-weight:500;
    color:var(--text-2); background:transparent;
    cursor:pointer; transition:background .2s, color .2s;
    white-space:nowrap; font-family:inherit;
}
.rd-mode-btn:hover { color:var(--text); }
.rd-mode-btn.active { background:var(--accent); color:#fff; }

.rd-option-sep { width:1px; align-self:stretch; margin:.15rem .3rem; background:var(--sep); flex-shrink:0; }

.rd-option-toggle {
    display:flex; align-items:center; gap:.35rem;
    padding:.4rem .7rem; border-radius:999px;
    cursor:pointer; font-size:.75rem; font-weight:500;
    color:var(--text-2); transition:color .2s, background .2s;
    white-space:nowrap; user-select:none; font-family:inherit;
    flex-shrink:0;
}
.rd-option-toggle input { display:none; }
.rd-option-toggle:has(input:checked) { background:var(--accent-dim); color:var(--accent); }
.rd-option-toggle:hover { color:var(--text); }

/* ── Ligne d'expiration (séparée de la barre d'options) ─────────────────── */
.rd-expire-row {
    width:100%; display:flex; align-items:center; gap:.6rem;
    background:var(--glass); border:1px solid var(--glass-brd);
    backdrop-filter:blur(20px) saturate(180%);
    -webkit-backdrop-filter:blur(20px) saturate(180%);
    border-radius:999px; padding:.45rem 1rem;
    box-shadow:var(--glass-shd); transition:background .3s;
}
.rd-expire-icon { color:var(--text-2); flex-shrink:0; }
.rd-expire-label-txt {
    font-size:.75rem; font-weight:500; color:var(--text-2);
    flex-shrink:0; white-space:nowrap;
}
.rd-expire-select {
    flex:1; min-width:60px;
    background:transparent; border:none; color:var(--text);
    font-size:.8rem; font-weight:600; cursor:pointer;
    outline:none; padding:0 .25rem;
    -webkit-appearance:none; -moz-appearance:none; appearance:none;
    font-family:inherit; transition:color .2s; text-align:right;
}
.rd-expire-select:hover, .rd-expire-select:focus { color:var(--accent); }
.rd-expire-select option { background:var(--bg, #08071a); color:var(--text, #f0eeff); }
.rd-expire-chevron { color:var(--text-2); flex-shrink:0; pointer-events:none; }

/* ── Champs contextuels (email / password) ───────────────────────────────── */
.rd-email-field { width:100%; }
.rd-input {
    width:100%; padding:.8rem 1.1rem;
    background:var(--glass-b); border:1px solid var(--glass-brd);
    backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
    border-radius:1rem; color:var(--text);
    font-size:.875rem; font-family:inherit; outline:none;
    transition:border-color .2s, background .3s;
    box-shadow:var(--glass-shd);
}
.rd-input::placeholder { color:var(--text-2); }
.rd-input:focus { border-color:var(--accent); }

/* ── Bouton Valider & Partager ────────────────────────────────────────────── */
.rd-validate-btn {
    width:100%; padding:.85rem 1.5rem;
    background:var(--glass-b); border:1px solid var(--glass-brd);
    border-radius:1rem; color:var(--text-2);
    font-size:.875rem; font-weight:600; font-family:inherit;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center; gap:.5rem;
    transition:background .2s, border-color .2s, color .2s, transform .2s;
    box-shadow:var(--glass-shd);
}
.rd-validate-btn:hover:not(:disabled) {
    background:var(--accent-dim); border-color:var(--accent); color:var(--accent);
    transform:translateY(-1px);
}
.rd-validate-btn.rd-validate-ready {
    background:var(--accent); border-color:var(--accent); color:#fff;
    animation:vPulse 1.5s ease-in-out infinite;
}
.rd-validate-btn:disabled { opacity:.55; cursor:not-allowed; }
@keyframes vPulse {
    0%,100% { box-shadow:var(--glass-shd); }
    50%     { box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 25%,transparent); }
}

/* Spinner inline */
.rd-spinner {
    width:14px; height:14px; border-radius:50%;
    border:2px solid rgba(255,255,255,.3);
    border-top-color:#fff;
    animation:spin .6s linear infinite; flex-shrink:0;
}
@keyframes spin { to { transform:rotate(360deg); } }

/* ── Affichage du lien de partage ─────────────────────────────────────────── */
.rd-link-display {
    width:100%; display:flex; align-items:center; gap:.5rem;
    background:var(--glass-b); border:1px solid rgba(52,211,153,.28);
    backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
    border-radius:1rem; padding:.7rem .9rem;
    box-shadow:var(--glass-shd);
    animation:slideUp .3s ease;
}
@keyframes slideUp { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }

.rd-link-input {
    flex:1; min-width:0; background:transparent; border:none; outline:none;
    font-size:.75rem; font-family:monospace; color:#34d399;
}
.rd-link-copy-btn {
    display:flex; align-items:center; gap:.3rem; flex-shrink:0;
    padding:.38rem .85rem; background:var(--accent); color:#fff;
    font-size:.73rem; font-weight:600; border:none; border-radius:999px;
    cursor:pointer; white-space:nowrap; font-family:inherit;
    transition:filter .2s, transform .15s;
}
.rd-link-copy-btn:hover { filter:brightness(1.12); }
.rd-link-copy-btn.copied { background:#059669; }
.rd-link-new-btn {
    flex-shrink:0; background:none; border:none;
    font-size:.7rem; color:var(--text-2); cursor:pointer;
    font-family:inherit; text-decoration:underline;
    text-underline-offset:3px; white-space:nowrap; transition:color .2s;
    padding:.38rem .4rem;
}
.rd-link-new-btn:hover { color:var(--text); }

/* ── Footer ──────────────────────────────────────────────────────────────── */
.rd-footer {
    position:relative; z-index:1;
    padding:0 1rem 1.5rem; font-size:.7rem;
    color:var(--text-3); text-align:center;
    display:flex; flex-direction:column; align-items:center; gap:.75rem;
}
.rd-footer-social {
    display:flex; align-items:center; justify-content:center; gap:.875rem;
}
.rd-social-link {
    color:var(--text-3); opacity:.45; transition:opacity .2s, color .2s;
    display:flex; align-items:center;
}
.rd-social-link:hover { opacity:1; color:var(--accent); }
.rd-footer-links {
    display:flex; align-items:center; gap:.5rem;
    font-size:.68rem;
}
.rd-footer-link {
    color:var(--text-3); opacity:.5; text-decoration:none;
    transition:opacity .2s, color .2s;
}
.rd-footer-link:hover { opacity:1; color:var(--accent); }
.rd-footer-sep { color:var(--text-3); opacity:.3; }

/* ── Overlay drag pleine fenêtre ─────────────────────────────────────────── */
.drop-overlay {
    position:fixed; inset:0; z-index:200;
    display:none; align-items:center; justify-content:center;
    pointer-events:none;
    background:var(--overlay-bg);
    backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
}
.drop-overlay.active { display:flex; animation:oFade .15s ease; }
@keyframes oFade { from{opacity:0} to{opacity:1} }

.drop-overlay-card {
    display:flex; flex-direction:column; align-items:center;
    padding:3rem 4.5rem;
    background:var(--glass-b); border:2px dashed var(--accent);
    border-radius:2.5rem; box-shadow:var(--glass-shd);
    animation:cPop .2s cubic-bezier(.34,1.56,.64,1);
}
.overlay-icon { width:52px;height:52px; color:var(--accent); margin-bottom:.9rem; animation:iBounce .8s ease infinite alternate; }
@keyframes iBounce { from{transform:translateY(0)} to{transform:translateY(-8px)} }
.overlay-title { font-size:1.25rem; font-weight:700; color:var(--accent); letter-spacing:-.02em; }
.overlay-sub   { font-size:.8rem; color:var(--text-2); margin-top:.3rem; }

/* ── Pages secondaires (download / admin) ────────────────────────────────── */
.dl-card {
    background:var(--glass-b); border:1px solid var(--glass-brd);
    backdrop-filter:blur(24px) saturate(180%); -webkit-backdrop-filter:blur(24px) saturate(180%);
    border-radius:1.75rem; padding:2.25rem;
    width:100%; max-width:420px; box-shadow:var(--glass-shd);
}

/* Admin */
.stat-card {
    background:var(--glass); border:1px solid var(--glass-brd);
    border-radius:1rem; padding:1.25rem;
    backdrop-filter:blur(12px); transition:border-color .2s;
}
.stat-card:hover { border-color:var(--accent); }

.admin-panel {
    background:var(--glass); border:1px solid var(--glass-brd);
    backdrop-filter:blur(12px); border-radius:1.25rem; overflow:hidden;
}
.admin-panel-header {
    padding:.9rem 1.25rem; border-bottom:1px solid var(--glass-brd);
    display:flex; align-items:center; justify-content:space-between;
}
.admin-table { width:100%; border-collapse:collapse; }
.admin-table th {
    background:rgba(124,107,255,.06); color:var(--text-2);
    font-size:.67rem; font-weight:600; text-transform:uppercase;
    letter-spacing:.07em; padding:.7rem 1rem; text-align:left;
}
.admin-table td { padding:.7rem 1rem; border-top:1px solid var(--glass-brd); font-size:.78rem; color:var(--text); }
.admin-table tr:hover td { background:rgba(124,107,255,.04); }

.rd-badge {
    display:inline-flex; align-items:center; gap:.25rem;
    padding:.18rem .55rem; border-radius:999px; font-size:.67rem; font-weight:600;
}
.badge-link    { background:var(--accent-dim); color:var(--accent); }
.badge-email   { background:rgba(96,165,250,.14); color:#60a5fa; }
.badge-expired { background:rgba(248,113,113,.12); color:#f87171; }
.badge-active  { background:rgba(52,211,153,.12); color:#34d399; }
.badge-lock    { background:rgba(251,191,36,.12); color:#fbbf24; }

/* Bouton admin générique */
.rd-btn {
    display:inline-flex; align-items:center; gap:.4rem;
    padding:.45rem 1rem; border-radius:.75rem; border:none;
    font-size:.78rem; font-weight:600; cursor:pointer;
    font-family:inherit; transition:filter .2s, transform .15s;
}
.rd-btn:hover { filter:brightness(1.1); transform:translateY(-1px); }
.rd-btn-accent  { background:var(--accent); color:#fff; }
.rd-btn-ghost   { background:var(--glass); border:1px solid var(--glass-brd); color:var(--text-2); }
.rd-btn-ghost:hover { color:var(--text); }
.rd-btn-danger  { background:rgba(239,68,68,.15); color:#ef4444; border:1px solid rgba(239,68,68,.2); }
.rd-btn-warn    { background:rgba(234,179,8,.1); color:#ca8a04; border:1px solid rgba(234,179,8,.2); }

/* Checkbox settings */
.settings-option {
    display:flex; align-items:center; gap:.5rem;
    padding:.5rem .75rem; border-radius:.75rem;
    transition:background .15s; cursor:pointer;
}
.settings-option:hover { background:var(--accent-dim); }
.settings-option input[type=checkbox] { accent-color:var(--accent); width:1rem; height:1rem; cursor:pointer; }
.settings-option label { font-size:.82rem; color:var(--text); cursor:pointer; }

/* ── Utilitaires ──────────────────────────────────────────────────────────── */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.hidden  { display:none !important; }

/* ── Responsive ───────────────────────────────────────────────────────────── */
@media (max-width:380px) {
    .rd-main { width:min(280px, calc(100vw - 2rem)); }
    .rd-circle { width:240px; height:240px; }
    .rd-percent { font-size:2.2rem; }
    .drop-overlay-card { padding:2rem 1.75rem; }
    .rd-expire-label-txt { display:none; }
}

@media (max-height:650px) {
    .rd-main { gap:.75rem; padding-top:4.25rem; }
    .rd-circle { width:240px; height:240px; }
    .rd-hero { display:none; }
}

/* ── Scrollbar ────────────────────────────────────────────────────────────── */
::-webkit-scrollbar { width:5px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--scrollbar); border-radius:3px; }
