/* DJ Com v3 – thème inspiré de Podium Insomnia (couleurs pilotées par « Ma charte ») */
:root{--primary:#E6007E;--secondary:#FFC400;--bg:#0B0B12;--panel:#15151F;--panel2:#1D1D2A;--line:#2A2A3B;--text:#F3F1F8;--muted:#A3A0B5;--ok:#22C55E;--err:#EF4444;--warn:#F59E0B;--blue:#3B82F6;--r:14px;--glow:0 0 24px color-mix(in srgb,var(--primary) 45%,transparent)}
*{box-sizing:border-box}[hidden]{display:none!important}
html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
body{background:radial-gradient(1200px 600px at 100% -10%,color-mix(in srgb,var(--primary) 18%,transparent),transparent 60%),radial-gradient(900px 500px at -10% 110%,color-mix(in srgb,var(--secondary) 10%,transparent),transparent 60%),var(--bg);background-attachment:fixed;min-height:100vh}
a{color:var(--secondary);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4{margin:0 0 .6em;line-height:1.2}
h3{font-size:1.05rem;letter-spacing:.02em}
code{background:#000;padding:2px 6px;border-radius:6px;font-size:.85em;color:var(--secondary);word-break:break-all}
.muted{color:var(--muted)}.small{font-size:.82rem}.center{text-align:center}.grow{flex:1;min-width:0}
.err-text{color:#fca5a5;display:block}
/* Topbar */
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:10px 18px;background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);min-height:61px}
.brand{display:flex;align-items:center;gap:10px;color:var(--text)}.brand:hover{text-decoration:none}
.brand strong{display:block;font-size:1rem;letter-spacing:.03em}.brand small{display:block;color:var(--muted);font-size:.75rem}
.logo-mark{display:inline-grid;white-space:nowrap;grid-auto-flow:column;place-items:center;min-width:46px;height:40px;padding:0 8px;border-radius:10px;background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 50%,#5b00ff));font-weight:900;font-size:.8rem;letter-spacing:.04em;color:#fff;box-shadow:var(--glow)}
.logo-mark b{color:var(--secondary);margin-left:2px}
.logo-img{height:40px;width:auto;max-width:140px;object-fit:contain}
.who{margin-left:auto;color:var(--muted);font-size:.85rem;text-transform:capitalize}
.pill-run{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:color-mix(in srgb,var(--primary) 20%,var(--panel));border:1px solid var(--primary);color:#fff;font-size:.8rem;font-weight:700}
.pill-run:hover{text-decoration:none}
.burger{display:none;background:none;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:4px 10px;font-size:1.2rem;cursor:pointer}
/* Layout */
.layout{display:flex;min-height:calc(100vh - 61px)}
.side{width:230px;flex-shrink:0;padding:16px 10px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:2px;position:sticky;top:61px;height:calc(100vh - 61px);overflow:auto}
.side a{display:flex;gap:10px;align-items:center;padding:9px 12px;border-radius:10px;color:var(--muted);font-weight:500}
.side a:hover{background:var(--panel);color:var(--text);text-decoration:none}
.side a.on{background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 30%,transparent),transparent);color:#fff;box-shadow:inset 3px 0 0 var(--primary)}
.side .count{margin-left:auto;background:var(--err);color:#fff;border-radius:999px;font-size:.7rem;font-weight:800;padding:1px 7px}
.side-foot{margin-top:auto;padding:12px;color:var(--muted);font-size:.72rem}
.main{flex:1;min-width:0;padding:22px 26px 60px;max-width:1300px}
.page-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.page-title{margin:0;font-size:1.6rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;background:linear-gradient(90deg,#fff,var(--secondary));-webkit-background-clip:text;background-clip:text;color:transparent}
/* Cards */
.card{background:linear-gradient(180deg,var(--panel),color-mix(in srgb,var(--panel) 80%,var(--bg)));border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:16px}
.card-h{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.card-h h3{margin:0}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.grid2.tight{gap:8px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.tight{gap:6px}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
/* Forms */
label{display:block;font-size:.84rem;color:var(--muted);margin-bottom:10px}
input,select,textarea{width:100%;margin-top:4px;padding:10px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;color:var(--text);font:inherit}
input[type=checkbox],input[type=radio]{width:auto;margin:0 6px 0 0;accent-color:var(--primary)}
input[type=color]{height:42px;padding:4px}
input[type=file]{padding:8px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 25%,transparent)}
textarea{resize:vertical}
.check{display:flex;align-items:center;color:var(--text)}
details{margin-bottom:10px;color:var(--muted);font-size:.85rem}summary{cursor:pointer;font-weight:600}
/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:999px;border:1px solid var(--line);background:var(--panel2);color:var(--text);font:600 .9rem/1 inherit;font-family:inherit;cursor:pointer;transition:.15s;white-space:nowrap}
.btn:hover{border-color:var(--primary);text-decoration:none;transform:translateY(-1px)}
.btn:focus-visible,a:focus-visible{outline:3px solid var(--secondary);outline-offset:2px}
.btn.primary{background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 60%,#7c00ff));border-color:transparent;color:#fff;box-shadow:var(--glow)}
.btn.hot{background:linear-gradient(135deg,#ff2d2d,var(--primary));border-color:transparent;color:#fff}
.btn.ghost{background:transparent}.btn.danger{border-color:#7f1d1d;color:#fecaca}
.btn.sm{padding:6px 12px;font-size:.8rem}
.btn.block{width:100%}
.btn:disabled{opacity:.4;pointer-events:none}
.link{background:none;border:0;color:var(--secondary);cursor:pointer;font:inherit;padding:0}
form.inline{display:inline}
/* Alerts & badges */
.alert{padding:12px 16px;border-radius:12px;margin-bottom:14px;border:1px solid}
.alert.ok{background:#052e16;border-color:#166534;color:#bbf7d0}
.alert.err{background:#450a0a;border-color:#991b1b;color:#fecaca}
.alert.warn{background:#422006;border-color:#a16207;color:#fde68a}
.alert.info{background:#172554;border-color:#1e40af;color:#bfdbfe}
.alert a{color:inherit;text-decoration:underline}
.alert ul{margin:6px 0 0;padding-left:18px}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.72rem;font-weight:700;white-space:nowrap}
.b-grey{background:#2a2a3b;color:#cfcde0}.b-blue{background:#1e3a8a;color:#bfdbfe}.b-orange{background:#7c2d12;color:#fed7aa}.b-green{background:#14532d;color:#bbf7d0}.b-red{background:#7f1d1d;color:#fecaca}
.net{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.72rem;font-weight:800;color:#fff;white-space:nowrap}
.net-fb{background:#1877F2}.net-ig{background:linear-gradient(45deg,#f58529,#dd2a7b,#8134af)}
.fmt{display:inline-block;padding:2px 8px;border-radius:6px;font-size:.7rem;font-weight:700;border:1px solid var(--line);color:var(--muted)}
/* Hero & KPIs */
.hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px;border-radius:20px;margin-bottom:16px;background:linear-gradient(120deg,color-mix(in srgb,var(--primary) 35%,var(--panel)),var(--panel) 60%);border:1px solid var(--line);overflow:hidden}
.hero h2{font-size:1.6rem;margin-bottom:6px}.hero p{color:#e5e1f0;max-width:560px}
.eq{display:flex;gap:5px;align-items:flex-end;height:46px}.eq i{width:7px;background:linear-gradient(var(--secondary),var(--primary));border-radius:4px;animation:eq 1s ease-in-out infinite}
.eq.big{height:90px}.eq.big i{width:12px}
.eq.mini{height:14px;gap:2px}.eq.mini i{width:3px}
.eq i:nth-child(2){animation-delay:.15s}.eq i:nth-child(3){animation-delay:.3s}.eq i:nth-child(4){animation-delay:.45s}.eq i:nth-child(5){animation-delay:.6s}.eq i:nth-child(6){animation-delay:.75s}.eq i:nth-child(7){animation-delay:.9s}
@keyframes eq{0%,100%{height:20%}50%{height:100%}}
@media (prefers-reduced-motion:reduce){.eq i{animation:none;height:60%}}
.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px;color:var(--text)}
.kpi:hover{text-decoration:none}
.kpi b{display:block;font-size:2rem;font-weight:900;color:var(--secondary)}.kpi span{color:var(--muted);font-size:.82rem}
.kpi.warn b{color:var(--warn)}.kpi.bad b{color:var(--err)}.kpi.good b{color:var(--ok)}
/* Lists */
.ev-line,.post-line,.tl-item{display:flex;align-items:center;gap:12px;padding:10px;border-radius:12px;color:var(--text);border-bottom:1px solid var(--line)}
.ev-line:hover,.post-line:hover,.tl-item:hover{background:var(--panel2);text-decoration:none}
.ev-line small,.post-line small,.tl-item small{display:block;color:var(--muted);font-size:.78rem}
.cd{display:inline-block;padding:4px 10px;border-radius:8px;background:var(--secondary);color:#000;font-weight:900;font-size:.75rem;white-space:nowrap}
.when{font-weight:800;color:var(--secondary);font-size:.85rem;min-width:44px}
.bar{display:block;height:5px;border-radius:5px;background:var(--line);margin-top:6px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--secondary))}
.nets{display:flex;gap:10px;flex-wrap:wrap}.net-card{display:flex;gap:8px;align-items:center;padding:10px 14px;border-radius:12px;background:var(--panel2);border:1px solid var(--line)}.net-card.on{border-color:var(--ok)}
.tabs{display:flex;gap:4px;background:var(--panel);padding:4px;border-radius:999px;border:1px solid var(--line);flex-wrap:wrap}.tabs a{padding:7px 16px;border-radius:999px;color:var(--muted)}.tabs a.on{background:var(--primary);color:#fff}.tabs a:hover{text-decoration:none}
/* Events */
.ev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.ev-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden;color:var(--text);transition:.2s}
.ev-card:hover{text-decoration:none;transform:translateY(-3px);border-color:var(--primary);box-shadow:var(--glow)}
.ev-cover{position:relative;aspect-ratio:16/10;background:linear-gradient(135deg,var(--primary),#2b0a3d 70%) center/cover;display:flex;justify-content:space-between;align-items:flex-start;padding:10px}
.ev-cover.lg{width:220px;aspect-ratio:1;border-radius:14px;flex-shrink:0}
.ev-body{padding:12px 14px;display:flex;flex-direction:column;gap:2px}.ev-body small{color:var(--muted)}
.ev-head{display:flex;gap:20px;align-items:flex-start}.meta{margin:0 0 4px}
.ai-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ai-card{display:flex;flex-direction:column;border-top:3px solid var(--primary)}.ai-card .btn.block{margin-top:auto}
.ai-card .steps{list-style:none;padding:0;margin:0 0 12px;font-size:.84rem;color:var(--muted)}.ai-card .steps li{padding:3px 0}
.phase{margin:16px 0 6px;font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;color:var(--secondary)}
.thumb{width:54px;height:54px;flex-shrink:0;border-radius:10px;background:var(--panel2);display:grid;place-items:center;overflow:hidden;font-size:1.3rem}
.thumb img{width:100%;height:100%;object-fit:cover}
.excerpt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}
.day{margin:18px 0 4px;padding-bottom:4px;border-bottom:1px solid var(--line);text-transform:capitalize;color:var(--secondary);font-size:.9rem}
/* Media */
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.media-item{background:var(--panel2);border:1px solid var(--line);border-radius:12px;overflow:hidden;position:relative}.media-item.cover{border-color:var(--secondary)}
.media-item img,.media-item video{width:100%;aspect-ratio:9/16;object-fit:cover;display:block;background:#000}
.media-item.sq img,.media-item.sq video{aspect-ratio:1}
.media-item .ph{aspect-ratio:9/16;display:grid;place-items:center;padding:10px;text-align:center;font-size:.85rem;color:var(--muted)}
.media-item .tag{position:absolute;left:8px;top:8px;background:#000b;color:#fff;border-radius:6px;padding:1px 7px;font-size:.7rem;font-weight:700}
.media-foot{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;gap:6px;font-size:.8rem}
.media-item .x{position:absolute;right:6px;top:6px}
/* Post editor */
.post-edit{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}
.preview-wrap{position:sticky;top:76px}
.phone{background:#000;border-radius:26px;padding:12px;border:6px solid #222}
.phone-h{display:flex;align-items:center;gap:8px;font-size:.8rem;margin-bottom:8px}.phone-h span:last-child{margin-left:auto;color:var(--muted)}
.avatar{width:30px;height:30px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--panel2)}.avatar .logo-mark{min-width:30px;height:30px;font-size:.45rem;padding:0;border-radius:50%}.avatar .logo-img{height:30px}
.phone-media{aspect-ratio:1;background:#111;border-radius:12px;display:grid;place-items:center;overflow:hidden;color:var(--muted);font-size:.8rem}
.phone-media.v{aspect-ratio:9/16;max-height:480px}
.phone-media img,.phone-media video{width:100%;height:100%;object-fit:cover}
.phone-text{white-space:pre-wrap;font-size:.82rem;padding:10px 4px;max-height:260px;overflow:auto}
/* Studio / charte */
.logo-prev{padding:10px;border-radius:12px;background:repeating-conic-gradient(#2a2a3b 0 25%,#1d1d2a 0 50%) 0 0/16px 16px}.logo-prev img{max-height:90px;display:block}
.swatches{display:flex;gap:8px;margin:6px 0 12px}.swatches span{width:34px;height:34px;border-radius:10px;border:1px solid var(--line)}
.apercu{width:100%;max-width:360px;border-radius:12px;display:block;box-shadow:var(--glow)}
/* Tables */
.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.table th{color:var(--muted);font-size:.8rem;font-weight:600}
.checks{list-style:none;padding:0;margin:0;line-height:2}
pre.journal{background:#000;color:#d4d4d4;padding:12px;border-radius:10px;max-height:340px;overflow:auto;white-space:pre-wrap;font-size:.78rem;margin:0}
pre.sortie{margin:0;white-space:pre-wrap;font:inherit}
.help li{margin-bottom:8px;color:#d8d5e6}
/* Auth */
body.auth{display:grid;place-items:center;padding:20px}
.auth-box{width:100%;max-width:420px;background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:30px;box-shadow:0 30px 80px #0008,var(--glow)}
.auth-box.wide{max-width:620px}
.brand-big{display:flex;align-items:center;gap:14px;margin-bottom:22px}.brand-big strong{display:block;font-size:1.2rem}.brand-big small{color:var(--muted)}
.brand-big .logo-mark{height:54px;min-width:64px;font-size:1rem}
/* Loader */
.loader{position:fixed;inset:0;background:#000c;display:none;place-items:center;align-content:center;z-index:100;text-align:center;gap:16px}.loader.on{display:grid}.loader .eq{justify-content:center}
/* Studio vidéo */
.studio{border-color:var(--primary);box-shadow:var(--glow)}
.studio-body{display:flex;gap:18px;align-items:center}
.studio canvas{width:150px;height:auto;aspect-ratio:9/16;border-radius:12px;background:#000;flex-shrink:0}
.bar.big{height:10px;margin:10px 0}
/* Responsive */
@media (max-width:1100px){.kpis{grid-template-columns:repeat(3,1fr)}.post-edit{grid-template-columns:1fr}.preview-wrap{position:static}.ai-actions{grid-template-columns:1fr}}
@media (max-width:800px){
  .burger{display:block}.who{display:none}
  .side{position:fixed;left:0;top:61px;z-index:30;background:var(--bg);transform:translateX(-100%);transition:.2s;box-shadow:10px 0 40px #000a}
  .side.open{transform:none}
  .main{padding:16px}
  .grid2,.grid3{grid-template-columns:1fr}
  .kpis{grid-template-columns:repeat(2,1fr)}
  .hero{flex-direction:column;align-items:flex-start}.hero .eq{display:none}
  .ev-head{flex-direction:column}.ev-cover.lg{width:100%}
  .post-line,.tl-item{flex-wrap:wrap}
  .studio-body{flex-direction:column;align-items:flex-start}
  .brand small,.pill-run{display:none}
}
