:root{color-scheme:dark;--bg:#09101f;--panel:#111d30dd;--stroke:#2b3d58;--text:#e9f0fa;--dim:#94a7bd;--a:#5de2cc}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 5% 0%,#153a47 0,transparent 42%),radial-gradient(ellipse at 94% 10%,#29204d 0,transparent 42%),var(--bg);color:var(--text);font:15px/1.55 system-ui,-apple-system,Segoe UI,Arial,sans-serif;min-height:100vh}.wrap{max-width:1190px;margin:auto;padding:0 24px}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff18;padding:22px 0}.brand{font-size:24px;color:var(--a)}.brand strong{color:#fff}.brand span{color:var(--a)}a{color:var(--a);text-decoration:none}nav a{margin-left:24px;color:#c1ccda}.hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:55px 0 30px;flex-wrap:wrap}h1{font-size:clamp(30px,4vw,48px);line-height:1.2;letter-spacing:-1px;margin:10px 0}h1 em{color:var(--a);font-style:normal}h2{font-size:21px;margin:8px 0 24px}p{color:var(--dim)}.eyebrow{font-weight:800;font-size:11px;color:var(--a);letter-spacing:2.4px}button,.chip{border:0;background:linear-gradient(125deg,#33c5b3,#398fe4);color:#071223;border-radius:11px;padding:12px 19px;font-weight:800;cursor:pointer;font:inherit;font-weight:700}button:hover{filter:brightness(1.12)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stat,.panel{background:var(--panel);border:1px solid var(--stroke);box-shadow:0 12px 30px #0002;border-radius:18px;backdrop-filter:blur(12px)}.stat{padding:22px;font-size:24px}.stat small{display:block;color:var(--dim);font-size:12px;margin-top:4px}.stat strong{display:block;font-size:34px}.two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel{padding:25px;margin-bottom:20px}label{display:block;font-size:13px;color:#c9d6e6;font-weight:700;margin:18px 0 7px}input{width:100%;border:1px solid #3b506a;background:#0b1626;padding:13px 14px;border-radius:10px;color:white;outline:none}input:focus{border-color:var(--a)}.hint{font-size:12px}.panel form>button{margin-top:16px}.secondary{background:#20374d;color:#a9e4ea;width:100%;margin-top:10px}.detail{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid #ffffff18;padding:12px 0;font-size:13px}.detail span{color:var(--dim)}.detail strong{text-align:right;overflow-wrap:anywhere;max-width:55%}.filters{display:flex;gap:9px;flex-wrap:wrap;margin:22px 0}.chip{display:inline-block;background:#1b2b41;color:#b6cce1;border:1px solid #32465f;font-size:13px;padding:8px 14px}.chip.active{color:#061c20;background:var(--a);border-color:var(--a)}.entry{display:flex;align-items:center;gap:15px;border-top:1px solid #ffffff15;padding:15px 2px}.entry[hidden]{display:none}.entry>div:nth-child(2){flex:1;min-width:0}.entry strong{display:inline;overflow-wrap:anywhere}.entry small{display:block;color:var(--dim);font-size:12px}.symbol{border-radius:12px;background:#22374e;font-size:22px;padding:11px}.tag,.episode{border-radius:7px;background:#244557;color:#9beee3;font-size:11px;font-weight:700;padding:5px 9px;white-space:nowrap}.episode{margin-left:9px}.tag{margin-left:auto}.empty{padding:45px 10px;text-align:center;color:var(--dim)}.notice{background:#1e4136;padding:12px 16px;margin-top:18px;border-radius:10px}.notice.error{background:#653136}.center{display:grid;place-items:center;min-height:72vh}.login{width:min(100%,450px)}.login button{width:100%}footer{text-align:center;font-size:12px;color:#7890a8;padding:32px}@media(max-width:760px){.two{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.wrap{padding:0 14px}.panel{padding:18px}.hero{margin-top:30px}.tag{display:none}.entry{gap:9px}}

.limit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 14px}select{width:100%;border:1px solid #3b506a;background:#0b1626;color:white;border-radius:10px;padding:13px}.catalogue[hidden]{display:none}h3{font-size:16px;margin:23px 0 0}
/* v1.2 catalogue cards */
.catalogue .entry,.feed .entry{display:flex;align-items:center;gap:14px;padding:15px;border-bottom:1px solid rgba(160,190,220,.12)}
.catalogue .symbol,.feed .symbol{width:66px;height:82px;min-width:66px;border-radius:12px;background:#20344d;display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:25px}
.catalogue .symbol img,.feed .symbol img{width:100%;height:100%;object-fit:contain;background:#19273a}
.catalogue .entry strong{font-size:15px;line-height:1.4;display:block}
.catalogue .entry small{display:block;margin-top:7px;color:#95b0c7}
.catalogue .entry .tag{margin-left:auto;white-space:nowrap}
.notice.info{background:#173148;color:#c6eafa;border-radius:12px;padding:13px;margin:12px 0}

/* v1.3 — grille compacte, même rendu administration et page publique */
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:16px;margin:18px 0 8px;align-items:stretch}
.media-grid[hidden]{display:none!important}
.media-card{min-width:0;background:#152239;border:1px solid #2a3b55;border-radius:14px;overflow:hidden;transition:transform .15s ease,border-color .15s ease}
.media-card:hover{transform:translateY(-3px);border-color:#5de2cc80}
.media-poster{height:225px;background:#0b1728;display:flex;align-items:center;justify-content:center;overflow:hidden}
.media-poster img{width:100%;height:100%;object-fit:cover}
.media-poster.channel-poster{height:155px}
.media-poster.channel-poster img{object-fit:contain;padding:16px}
.media-placeholder{font-size:45px;opacity:.75}
.media-placeholder[hidden]{display:none}
.media-info{padding:12px 12px 14px}
.media-info h3{font-size:14px;line-height:1.4;font-weight:750;margin:0 0 8px;min-height:39px;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.media-category{font-size:12px;color:#9eb3cc;line-height:1.4;min-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:12px}
.media-bottom{display:flex;gap:6px;flex-wrap:wrap}
.id-pill{font-size:11px;padding:4px 8px;border-radius:6px;background:#243b51;color:#91ebdb;font-weight:700;overflow-wrap:anywhere}
.public-hero{margin-bottom:20px}
@media(min-width:1200px){.media-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:650px){.media-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.media-poster{height:185px}.media-poster.channel-poster{height:125px}.media-info{padding:10px}.media-info h3{font-size:13px}}

/* v1.4 */
.stats{grid-template-columns:repeat(5,minmax(0,1fr))}.date-filter{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:12px 0 20px}.date-filter input{width:auto}.date-filter label{margin:0 0 6px}.date-filter button{margin:0}@media(max-width:760px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v1.7 animated notification */
.pulse-toasts{position:fixed;top:18px;right:18px;z-index:9999;display:grid;gap:10px;max-width:min(390px,calc(100vw - 36px));pointer-events:none}
.pulse-toast{position:relative;pointer-events:auto;background:#163a43;border:1px solid #5de2cc;border-radius:15px;padding:17px 42px 14px 18px;box-shadow:0 16px 45px #0009;animation:pulse-in .35s ease-out;color:#e8ffff}
.pulse-toast strong{font-size:15px}.pulse-toast p{color:#d0eeeb;margin:6px 0 0;font-size:13px}.pulse-close{position:absolute;top:5px;right:7px;background:transparent;color:white;padding:3px 8px;font-size:23px}
@keyframes pulse-in{from{transform:translateX(110%);opacity:0}to{transform:translateX(0);opacity:1}}
@media(prefers-reduced-motion:reduce){.pulse-toast{animation:none}}

/* v1.8 - 3 persistent rotating new-content notifications */
.pulse-toasts{top:16px;right:16px;width:min(350px,calc(100vw - 32px));max-width:none;display:flex;flex-direction:column;gap:9px}
.pulse-item{display:flex;gap:12px;min-height:100px;padding:10px 13px;align-items:center;background:#13283c;border-color:#365c65;overflow:hidden}
.pulse-item-poster{height:80px;width:61px;flex:0 0 61px;background:#21364b;border-radius:9px;display:grid;place-items:center;font-size:28px;overflow:hidden}
.pulse-item-poster img{width:100%;height:100%;object-fit:cover}
.pulse-item-content{display:flex;flex-direction:column;min-width:0;gap:4px}
.pulse-item-content small{font-size:11px;color:#5de2cc}
.pulse-item-content strong{font-size:13px;line-height:1.3;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.pulse-item-content span{font-size:11px;color:#aec2d3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pulse-item-content b{font-size:11px;color:#8de3d5}
.pulse-out{animation:pulse-away .34s ease-in forwards}
@keyframes pulse-away{to{transform:translateX(110%);opacity:0}}
@media(prefers-reduced-motion:reduce){.pulse-out{animation:none}}
@media(max-width:600px){.pulse-toasts{width:min(280px,calc(100vw - 24px));right:12px}.pulse-item{min-height:78px}.pulse-item-poster{height:62px;width:48px;flex-basis:48px}}

/* v2.0 demandes visiteurs */
.request-panel{margin-bottom:20px}.request-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.request-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:9px;margin:12px 0}.request-option{display:flex;align-items:center;text-align:left;gap:9px;background:#16283e;border:1px solid #2c4964;border-radius:12px;color:#ebf4ff;padding:8px;cursor:pointer;font-size:13px}.request-option:hover{border-color:#59e0d0}.request-option img{width:44px;height:62px;object-fit:cover;border-radius:6px}.request-selection{margin:8px 0 12px;color:#5ce8ce;font-weight:600}.admin-request{display:flex;align-items:center;gap:14px;padding:15px;border-bottom:1px solid #27384e}.request-cover{width:62px;height:82px;flex-shrink:0;background:#203048;border-radius:9px;display:grid;place-items:center;overflow:hidden}.request-cover img{width:100%;height:100%;object-fit:cover}.request-desc{flex:1;min-width:0}.request-desc p{margin:7px 0}.request-desc small{color:#a8b7c8;overflow-wrap:anywhere}.admin-request form{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.admin-request select{min-width:130px}@media(max-width:680px){.request-fields{grid-template-columns:1fr}.admin-request{align-items:flex-start;flex-wrap:wrap}.admin-request form{width:100%}}

/* v2.1 — demande repliable par défaut, sans JavaScript */
.request-fold{padding:0!important;overflow:hidden}
.request-fold-title{display:flex;justify-content:space-between;align-items:center;gap:14px;cursor:pointer;padding:19px 24px;list-style:none;user-select:none}
.request-fold-title::-webkit-details-marker{display:none}
.request-fold-title>span:first-child{display:flex;flex-direction:column;gap:8px}
.request-fold-title strong{font-size:17px;color:#e7f1fb}
.request-fold-title .eyebrow{display:block}
.request-fold-arrow{font-size:28px;line-height:1;color:#5de2cc;transition:transform .25s ease}
.request-fold[open] .request-fold-arrow{transform:rotate(180deg)}
.request-fold-title:hover{background:rgba(93,226,204,.045)}
.request-fold-title:focus-visible{outline:2px solid #5de2cc;outline-offset:-3px}
.request-fold-body{padding:0 24px 24px;animation:request-unfold .2s ease-out}
@keyframes request-unfold{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.request-fold-body{animation:none}.request-fold-arrow{transition:none}}
@media(max-width:600px){.request-fold-title{padding:16px}.request-fold-body{padding:0 16px 18px}}

/* v2.2 — HFM branding and admin pending requests */
.brand-hfm{display:inline-flex;gap:12px;align-items:center;text-decoration:none;color:#fff;min-width:0}
.brand-hfm strong{font-size:clamp(17px,2.1vw,24px);line-height:1.2}
.brand-hfm .brand-logo{width:56px;height:56px;border-radius:50%;object-fit:contain;background:#05070b;border:1px solid #ffffff28;flex-shrink:0}
.requests-nav-link{display:inline-flex;align-items:center;gap:7px}
.request-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#e52d42;color:white;font-size:12px;font-weight:800;box-shadow:0 0 0 2px #e52d4222}
@media(max-width:600px){header{gap:12px;flex-wrap:wrap}.brand-hfm .brand-logo{width:44px;height:44px}.brand-hfm{gap:8px}nav{display:flex;gap:14px;flex-wrap:wrap}nav a{margin-left:0}}

/* v2.3: saison / épisode dans les notifications */
.pulse-episode-badge{display:inline-block;margin-left:7px;color:#65e4d0;font-size:12px;font-weight:700}

.series-stats{font-size:12px;color:#75e2d3;font-weight:650;margin:7px 0 9px;}
