:root{--brand:#2b4eff;--brand-dark:#0f172a}
body{background:#f3f5fa;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Cairo",sans-serif}
.app-nav{background:linear-gradient(90deg,var(--brand-dark),#1e3a8a)}
.btn-primary{--bs-btn-bg:var(--brand);--bs-btn-border-color:var(--brand);--bs-btn-hover-bg:#1f3fe0;--bs-btn-hover-border-color:#1f3fe0}
.section-title{text-transform:uppercase;letter-spacing:.06em;font-size:.78rem;color:#64748b;font-weight:700;margin-bottom:1rem}
.card{border-radius:14px}
nav.small a{text-decoration:none}

/* Login */
.login-wrap{min-height:80vh;display:flex;align-items:center;justify-content:center}
.login-card{width:100%;max-width:420px}
.login-logo{width:72px;height:72px;border-radius:20px;margin:auto;display:grid;place-items:center;font-size:2rem;color:#fff;background:linear-gradient(135deg,var(--brand),#9333ea);box-shadow:0 10px 30px rgba(43,78,255,.35)}

/* Dashboard */
.screen-card{overflow:hidden}
.screen-thumb{position:relative;aspect-ratio:16/9;background-size:cover;background-position:center;display:flex;align-items:flex-start;justify-content:flex-end;padding:.6rem}
.screen-thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.45),transparent 60%)}
.screen-thumb .badge{position:relative;z-index:1}
.play-btn{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center;font-size:1.9rem;color:var(--brand);box-shadow:0 8px 24px rgba(0,0,0,.3);transition:transform .2s}
.play-btn:hover{transform:translate(-50%,-50%) scale(1.1)}
.empty-state{text-align:center;padding:4rem 1rem;color:#64748b}
.empty-state i{font-size:3.5rem;display:block;margin-bottom:.5rem;opacity:.5}
.link-box .form-control{background:#fff}

/* Slides */
.slide-card{overflow:hidden;transition:opacity .2s,transform .2s}
.slide-card.inactive{opacity:.55}
.slide-thumb{position:relative;aspect-ratio:16/9;background:#0f172a;cursor:grab;overflow:hidden}
.slide-thumb img,.slide-thumb video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.text-thumb{width:100%;height:100%;display:grid;place-items:center;text-align:center;padding:1rem;font-weight:800;font-size:1.1rem;overflow:hidden}
.type-icon{position:absolute;left:.5rem;bottom:.5rem;background:rgba(0,0,0,.6);color:#fff;border-radius:6px;padding:.1rem .4rem;font-size:.8rem}
.status-badge{position:absolute;top:.5rem;left:.5rem}
.drag-handle{position:absolute;top:.4rem;right:.4rem;background:rgba(255,255,255,.9);border-radius:6px;padding:0 .3rem;color:#334155}
.sortable-ghost{opacity:.35}
.sortable-chosen .slide-card{transform:scale(1.03);box-shadow:0 1rem 2rem rgba(0,0,0,.2)!important}

/* Formulaire slide */
.dropzone{position:relative;border:2px dashed #cbd5e1;border-radius:12px;background:#f8fafc;overflow:hidden;transition:border-color .2s,background .2s}
.dropzone.over{border-color:var(--brand);background:#eef2ff}
.dropzone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;z-index:2}
.file-preview{min-height:200px;display:grid;place-items:center;position:relative}
.file-preview img,.file-preview video{max-width:100%;max-height:320px;display:block}
.dz-empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#64748b;padding:2rem}
.dz-empty i{font-size:2.6rem;color:var(--brand)}
.file-name{position:absolute;bottom:.5rem;left:.5rem;background:rgba(0,0,0,.65);color:#fff;font-size:.8rem;padding:.15rem .5rem;border-radius:6px}
.logo-preview{max-height:48px;max-width:120px;background:#e2e8f0;border-radius:6px;padding:4px}
.form-control-color{height:42px}
@media (min-width:992px){.sticky-actions{position:sticky;top:1rem}}
