/* ===== Screeeen — thème « Dark Premium » : verre dépoli, dégradés, accent rouge ISFSC ===== */
:root{
  --bg:#0a0b13;
  --text:#edeefb; --muted:#9aa0bd;
  --accent:#ff3b54; --accent-2:#e21537; --accent-weak:rgba(255,73,98,.15);
  --glow:rgba(255,59,84,.5);
  --green:#34d399; --danger:#ff5d7a; --amber:#fbbf24;
  --glass:rgba(255,255,255,.05); --glass-2:rgba(255,255,255,.08); --glass-3:rgba(255,255,255,.13);
  --line:rgba(255,255,255,.09); --line-2:rgba(255,255,255,.17);
  --radius:14px; --shadow:0 14px 38px rgba(0,0,0,.45);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);
  font-size:15px;position:relative;overflow-x:hidden;-webkit-font-smoothing:antialiased}
/* Fond animé : nappes de couleur floues qui dérivent lentement */
body::before{content:"";position:fixed;inset:-25%;z-index:-1;pointer-events:none;
  background:
    radial-gradient(38% 40% at 16% 20%, rgba(255,59,84,.22), transparent 62%),
    radial-gradient(36% 38% at 84% 16%, rgba(124,77,255,.16), transparent 62%),
    radial-gradient(44% 44% at 72% 88%, rgba(0,132,255,.14), transparent 62%);
  filter:blur(36px) saturate(125%);
  animation:bgmove 24s ease-in-out infinite alternate}
@keyframes bgmove{0%{transform:translate3d(0,0,0) scale(1) rotate(0)}100%{transform:translate3d(0,-3%,0) scale(1.12) rotate(2deg)}}

a{color:var(--accent);text-decoration:none}
button{font-family:inherit;font-size:14px;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:14px}
::selection{background:var(--accent-weak)}

/* Boutons */
.btn{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--line);background:var(--glass-2);color:var(--text);
  padding:.52rem .9rem;border-radius:10px;line-height:1;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  transition:transform .12s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease,color .2s ease}
.btn:hover{border-color:var(--line-2);color:#fff;transform:translateY(-1px);background:var(--glass-3)}
.btn:active{transform:translateY(0)}
.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));border:none;color:#fff;font-weight:600;
  box-shadow:0 6px 20px var(--glow)}
.btn-primary:hover{filter:brightness(1.07);box-shadow:0 10px 28px var(--glow);color:#fff}
.btn-danger{background:transparent;border-color:rgba(255,93,122,.45);color:var(--danger)}
.btn-danger:hover{background:linear-gradient(135deg,#ff5d7a,#e23b5a);border-color:transparent;color:#fff;box-shadow:0 8px 22px rgba(255,93,122,.4)}
.btn-ghost{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}
.btn-ghost:hover{background:var(--glass)}
.btn-sm{padding:.34rem .6rem;font-size:13px;border-radius:8px}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}

/* Connexion */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}
.login-card{width:100%;max-width:392px;background:var(--glass);border:1px solid var(--line);border-radius:20px;padding:2.1rem;
  -webkit-backdrop-filter:blur(22px) saturate(130%);backdrop-filter:blur(22px) saturate(130%);
  box-shadow:var(--shadow);animation:pop .55s cubic-bezier(.2,.75,.2,1) both}
.login-card h1{font-size:1.3rem;margin:.2rem 0 .25rem;letter-spacing:.2px}
.login-card p.sub{color:var(--muted);margin:0 0 1.4rem;font-size:.92rem}
.brandmark{width:46px;height:46px;border-radius:13px;background:linear-gradient(135deg,var(--accent),var(--accent-2));
  display:flex;align-items:center;justify-content:center;margin-bottom:1rem;box-shadow:0 8px 24px var(--glow);
  animation:floaty 4.5s ease-in-out infinite}
.brandmark svg{width:25px;height:25px;color:#fff}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.ms-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.6rem;background:#fff;color:#1b1b1b;border:none;
  border-radius:11px;padding:.75rem;font-weight:600;transition:transform .12s ease,box-shadow .2s ease}
.ms-btn:hover{background:#fff;transform:translateY(-1px);box-shadow:0 10px 26px rgba(0,0,0,.35)}
.divider{display:flex;align-items:center;gap:.7rem;color:var(--muted);margin:1.1rem 0;font-size:.8rem}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}
.field{margin-bottom:.85rem}
.field label{display:block;font-size:.8rem;color:var(--muted);margin-bottom:.32rem}
.field input,.field select,.field textarea{width:100%;background:rgba(0,0,0,.25);border:1px solid var(--line);color:var(--text);
  border-radius:10px;padding:.62rem .72rem;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-weak);background:rgba(0,0,0,.35)}
.form-error{color:var(--danger);font-size:.85rem;min-height:1.1rem;margin-top:.2rem}

/* Ossature */
.shell{display:grid;grid-template-columns:236px 1fr;min-height:100vh}
.sidebar{background:var(--glass);border-right:1px solid var(--line);padding:1.1rem .8rem;display:flex;flex-direction:column;gap:.3rem;
  -webkit-backdrop-filter:blur(18px) saturate(125%);backdrop-filter:blur(18px) saturate(125%);position:sticky;top:0;height:100vh}
.sidebar .logo{display:flex;align-items:center;gap:.55rem;padding:.3rem .5rem 1rem;font-weight:700;letter-spacing:.3px}
.sidebar .logo .mk{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--accent-2));
  display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px var(--glow)}
.sidebar .logo .mk svg{width:18px;height:18px;color:#fff}
.nav-item{position:relative;display:flex;align-items:center;gap:.6rem;padding:.62rem .75rem;border-radius:11px;color:var(--muted);
  font-weight:500;transition:background .18s ease,color .18s ease,transform .12s ease}
.nav-item:hover{background:var(--glass-2);color:var(--text);transform:translateX(2px)}
.nav-item.active{background:linear-gradient(90deg,var(--accent-weak),transparent);color:#fff}
.nav-item.active::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 4px 4px 0;
  background:linear-gradient(var(--accent),var(--accent-2));box-shadow:0 0 14px var(--glow)}
.nav-item svg{width:18px;height:18px;flex:none}
.sidebar .spacer{flex:1}
.userbox{border-top:1px solid var(--line);padding-top:.85rem;font-size:.82rem;color:var(--muted)}
.userbox .u{color:var(--text);font-weight:600;word-break:break-all}
.userbox .role{display:inline-block;margin-top:.25rem;font-size:.7rem;background:var(--glass-2);border:1px solid var(--line);
  padding:.08rem .5rem;border-radius:20px}

.main{padding:1.7rem 2.1rem;max-width:1140px;animation:fade .4s ease both}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.4rem;flex-wrap:wrap;
  animation:rise .45s cubic-bezier(.2,.7,.2,1) both}
.page-head h2{margin:0;font-size:1.4rem;letter-spacing:.2px}
.page-head .sub{color:var(--muted);font-size:.9rem;margin-top:.25rem}

/* Cartes écrans */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(264px,1fr));gap:1.05rem}
.card{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.7rem;
  -webkit-backdrop-filter:blur(14px) saturate(120%);backdrop-filter:blur(14px) saturate(120%);box-shadow:var(--shadow);
  transition:transform .22s ease,box-shadow .26s ease,border-color .26s ease;animation:rise .5s cubic-bezier(.2,.7,.2,1) both}
.card:hover{transform:translateY(-5px);border-color:var(--line-2);box-shadow:0 22px 48px rgba(0,0,0,.55)}
.card .thumb{aspect-ratio:16/9;background:#05060c;border:1px solid var(--line);border-radius:10px;position:relative;overflow:hidden}
.card .thumb .z{position:absolute;border:1px solid rgba(255,59,84,.5);background:rgba(255,59,84,.13)}
.card h3{margin:0;font-size:1.04rem;display:flex;align-items:center;gap:.4rem}
.card .meta{color:var(--muted);font-size:.8rem;display:flex;gap:.8rem;flex-wrap:wrap}
.card .row{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:auto}
.grid .card:nth-child(1){animation-delay:.02s}.grid .card:nth-child(2){animation-delay:.06s}
.grid .card:nth-child(3){animation-delay:.1s}.grid .card:nth-child(4){animation-delay:.14s}
.grid .card:nth-child(5){animation-delay:.18s}.grid .card:nth-child(6){animation-delay:.22s}
.grid .card:nth-child(7){animation-delay:.26s}.grid .card:nth-child(8){animation-delay:.3s}
.grid .card:nth-child(n+9){animation-delay:.34s}
.badge{font-size:.7rem;background:var(--glass-2);border:1px solid var(--line);padding:.12rem .5rem;border-radius:20px;color:var(--muted)}
.badge.entra{color:#9cc1ff;border-color:rgba(120,160,255,.35)}

.empty{border:1px dashed var(--line-2);border-radius:var(--radius);padding:2.6rem;text-align:center;color:var(--muted);
  background:var(--glass);animation:rise .45s ease both}

/* Éditeur */
.tabs{display:flex;gap:.3rem;border-bottom:1px solid var(--line);margin-bottom:1.3rem;flex-wrap:wrap}
.tab{position:relative;padding:.62rem .95rem;border-radius:10px 10px 0 0;color:var(--muted);font-weight:600;
  border:1px solid transparent;border-bottom:none;transition:color .18s ease,background .18s ease}
.tab:hover{color:var(--text)}
.tab.active{color:#fff;background:var(--glass-2)}
.tab.active::after{content:"";position:absolute;left:.7rem;right:.7rem;bottom:-1px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--accent),var(--accent-2));box-shadow:0 0 12px var(--glow);animation:grow .25s ease both}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.section{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.1rem;
  -webkit-backdrop-filter:blur(14px) saturate(120%);backdrop-filter:blur(14px) saturate(120%);box-shadow:var(--shadow);
  animation:rise .42s cubic-bezier(.2,.7,.2,1) both}
.section h4{margin:0 0 .95rem;font-size:1rem}
.muted{color:var(--muted)}
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:.85rem}
.row-4{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}
.inline{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}

/* Dispositions */
.presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(98px,1fr));gap:.75rem}
.preset{background:var(--glass-2);border:1px solid var(--line);border-radius:11px;padding:.55rem;cursor:pointer;
  transition:transform .15s ease,border-color .18s ease,box-shadow .2s ease}
.preset:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 12px 26px rgba(0,0,0,.4)}
.preset .mini{aspect-ratio:16/9;position:relative;background:#05060c;border-radius:6px;overflow:hidden}
.preset .mini i{position:absolute;border:1px solid var(--accent);background:rgba(255,59,84,.2)}
.preset span{display:block;text-align:center;font-size:.72rem;color:var(--muted);margin-top:.4rem}

/* Aperçu des zones */
.zprev{aspect-ratio:16/9;background:#05060c;border:1px solid var(--line);border-radius:11px;position:relative;overflow:hidden;
  box-shadow:inset 0 0 60px rgba(0,0,0,.5)}
.zprev .z{position:absolute;border:1px solid var(--accent);background:rgba(255,59,84,.12);cursor:pointer;display:flex;
  align-items:center;justify-content:center;font-size:.75rem;color:#fde7ea;text-align:center;overflow:hidden;
  transition:background .18s ease,box-shadow .2s ease}
.zprev .z:hover{background:rgba(255,59,84,.2)}
.zprev .z.sel{background:rgba(255,59,84,.3);border-color:#fff;box-shadow:0 0 0 2px var(--glow) inset,0 0 22px var(--glow)}

/* Liste de contenus */
.clist{display:flex;flex-direction:column;gap:.55rem}
.citem{display:flex;align-items:center;gap:.8rem;background:var(--glass-2);border:1px solid var(--line);border-radius:11px;
  padding:.6rem .72rem;transition:border-color .18s ease,transform .12s ease,background .18s ease}
.citem:hover{border-color:var(--line-2);transform:translateX(2px);background:var(--glass-3)}
.citem .ic{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(255,59,84,.2),rgba(124,77,255,.15));flex:none}
.citem .ic svg{width:18px;height:18px;color:#ff8a9c}
.citem .info{flex:1;min-width:0}
.citem .info .t{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.citem .info .s{color:var(--muted);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.citem .dur{color:var(--muted);font-size:.8rem;white-space:nowrap}
.citem.disabled{opacity:.5}
.zone-chips{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1rem}
.chip{padding:.42rem .75rem;border-radius:9px;background:var(--glass-2);border:1px solid var(--line);color:var(--muted);
  cursor:pointer;font-size:.85rem;transition:background .18s ease,color .18s ease,border-color .18s ease}
.chip:hover{color:var(--text);border-color:var(--line-2)}
.chip.active{background:linear-gradient(135deg,var(--accent),var(--accent-2));border-color:transparent;color:#fff;
  box-shadow:0 6px 16px var(--glow)}

/* Boîte URL */
.urlbox{display:flex;gap:.5rem;align-items:center;background:rgba(0,0,0,.28);border:1px solid var(--line);border-radius:11px;
  padding:.45rem .45rem .45rem .75rem}
.urlbox input{flex:1;background:transparent;border:none;color:var(--text);font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem}
.urlbox input:focus{outline:none}

/* Tableau */
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:.65rem .55rem;border-bottom:1px solid var(--line);font-size:.9rem}
th{color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}
tbody tr{transition:background .15s ease}
tbody tr:hover{background:var(--glass)}

/* Notifications */
#toast{position:fixed;right:1rem;bottom:1rem;display:flex;flex-direction:column;gap:.5rem;z-index:60}
.toast{background:var(--glass-3);border:1px solid var(--line);border-left:3px solid var(--accent);padding:.72rem 1rem;border-radius:10px;
  min-width:230px;box-shadow:0 12px 34px rgba(0,0,0,.5);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  animation:slidein .26s cubic-bezier(.2,.8,.2,1)}
.toast.ok{border-left-color:var(--green)}
.toast.err{border-left-color:var(--danger)}
@keyframes slidein{from{transform:translateX(18px) translateY(6px);opacity:0}to{transform:none;opacity:1}}

/* Fenêtres modales */
#modal-root:empty{display:none}
.modal-bg{position:fixed;inset:0;background:rgba(4,6,15,.6);display:flex;align-items:center;justify-content:center;padding:1.2rem;z-index:50;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade .2s ease}
.modal{background:var(--glass);border:1px solid var(--line-2);border-radius:18px;width:100%;max-width:520px;max-height:90vh;overflow:auto;
  padding:1.5rem;-webkit-backdrop-filter:blur(26px) saturate(140%);backdrop-filter:blur(26px) saturate(140%);
  box-shadow:0 30px 70px rgba(0,0,0,.6);animation:modalpop .3s cubic-bezier(.2,.8,.2,1) both}
@keyframes modalpop{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
.modal h3{margin:0 0 1rem;font-size:1.12rem}
.modal .actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1.4rem}
.seg{display:flex;gap:.3rem;background:rgba(0,0,0,.28);border:1px solid var(--line);border-radius:11px;padding:.28rem}
.seg button{flex:1;background:transparent;border:none;color:var(--muted);padding:.48rem;border-radius:8px;font-weight:600;
  transition:background .18s ease,color .18s ease}
.seg button.active{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 4px 14px var(--glow)}

@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes pop{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}

@media (max-width:760px){
  .shell{grid-template-columns:1fr}
  .sidebar{flex-direction:row;flex-wrap:wrap;align-items:center;position:sticky;top:0;height:auto;z-index:20}
  .sidebar .logo{padding:.3rem .5rem}
  .sidebar .spacer,.sidebar .userbox{display:none}
  .main{padding:1.2rem}
  .row-2,.row-4{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.05s!important}
  body::before{animation:none}
}

/* Logo ISFSC */
.brandlogo{display:inline-block;background:#000;padding:.55rem .9rem;border-radius:13px;margin-bottom:1rem;line-height:0;
  box-shadow:0 8px 24px rgba(0,0,0,.5),0 0 0 1px var(--line) inset}
.brandlogo img{height:40px;display:block}
.sidebar .logo img.logo-img{height:25px;background:#000;border-radius:6px;padding:3px 7px;margin-right:.15rem;vertical-align:middle}

/* Planification */
.badge.live{color:var(--green);border-color:rgba(52,211,153,.45);background:rgba(52,211,153,.12)}
.dow{display:flex;gap:.4rem;flex-wrap:wrap}
.daypill{display:inline-flex;align-items:center;gap:.35rem;background:rgba(0,0,0,.25);border:1px solid var(--line);border-radius:9px;padding:.34rem .56rem;font-size:.82rem;color:var(--text);cursor:pointer;transition:border-color .15s ease}
.daypill:hover{border-color:var(--line-2)}
.daypill input{accent-color:var(--accent)}
