/*
|--------------------------------------------------------------------------
| Thème public générique Creator Hub
|--------------------------------------------------------------------------
*/
*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:Arial,sans-serif;background:#111827;color:#f9fafb}.public-container{width:min(1180px,calc(100% - 40px));margin:0 auto}.public-header{position:sticky;top:0;z-index:20;background:rgba(31,41,55,.96);border-bottom:1px solid #374151}.public-header-inner{display:flex;align-items:center;gap:28px;min-height:72px}.public-brand{font-size:21px;font-weight:700;color:#fff;text-decoration:none}.public-navigation{display:flex;gap:8px;flex:1}.public-navigation a,.public-admin-link{padding:10px 13px;border-radius:9px;color:#d1d5db;text-decoration:none}.public-navigation a:hover,.public-navigation a.is-active,.public-admin-link:hover{background:#2563eb;color:#fff}.public-admin-link{border:1px solid #374151}.public-content{padding:48px 0 64px}.public-hero{padding:42px;border:1px solid #374151;border-radius:18px;background:linear-gradient(135deg,#1f2937,#172033);margin-bottom:28px}.public-eyebrow{margin:0 0 10px;color:#60a5fa;font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:12px}.public-hero h1{margin:0 0 14px;font-size:clamp(32px,5vw,54px)}.public-hero p:last-child{max-width:740px;margin:0;color:#cbd5e1;line-height:1.7}.public-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px}.public-grid:not(:has(.public-sidebar)){grid-template-columns:1fr}.public-card{padding:24px;border:1px solid #374151;border-radius:14px;background:#1f2937}.public-card h2{margin-top:0}.public-card p{color:#d1d5db;line-height:1.65}.public-empty{text-align:center;padding:54px 28px}.public-footer{padding:28px 0;border-top:1px solid #374151;background:#1f2937;color:#9ca3af;text-align:center}@media(max-width:800px){.public-header-inner{align-items:flex-start;flex-wrap:wrap;padding:16px 0}.public-navigation{order:3;width:100%;overflow:auto}.public-admin-link{margin-left:auto}.public-grid{grid-template-columns:1fr}.public-hero{padding:28px}.public-container{width:min(100% - 24px,1180px)}}

/*
|--------------------------------------------------------------------------
| CH-008.4.1 — Sélection publique des streamers
|--------------------------------------------------------------------------
*/
.public-streamers{margin-top:28px}.public-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.public-section-kicker{margin:0 0 6px;color:#60a5fa;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.public-section-heading h2{margin:0;font-size:clamp(25px,4vw,34px)}.public-count{flex:0 0 auto;padding:8px 12px;border:1px solid #374151;border-radius:999px;background:#1f2937;color:#d1d5db;font-size:13px}.public-streamer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.public-streamer-card{min-width:0;overflow:hidden;border:1px solid #374151;border-radius:16px;background:#1f2937}.public-streamer-cover{display:flex;align-items:flex-end;justify-content:flex-start;min-height:148px;padding:16px;background:linear-gradient(135deg,#111827,#24324a)}.public-waiting-badge{display:inline-flex;padding:7px 10px;border:1px solid #4b5563;border-radius:999px;background:rgba(17,24,39,.82);color:#d1d5db;font-size:12px;font-weight:700}.public-streamer-body{padding:20px}.public-streamer-identity{display:flex;align-items:center;gap:13px}.public-streamer-avatar{display:grid;flex:0 0 52px;width:52px;height:52px;overflow:hidden;place-items:center;border:2px solid #4b5563;border-radius:50%;background:#111827;color:#fff;font-size:20px;font-weight:700}.public-streamer-avatar img,.public-streamer-avatar span{grid-area:1/1;width:100%;height:100%}.public-streamer-avatar img{object-fit:cover}.public-streamer-avatar span{display:grid;place-items:center}.public-streamer-identity h3{margin:0;font-size:19px;overflow-wrap:anywhere}.public-streamer-team{margin:4px 0 0;color:#9ca3af;font-size:13px}.public-streamer-description{display:-webkit-box;overflow:hidden;margin:16px 0 0;color:#cbd5e1;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:3}.public-platforms{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.public-platform-link,.public-platform-empty{display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;border:1px solid #4b5563;border-radius:9px;color:#e5e7eb;font-size:13px;font-weight:700;text-decoration:none}.public-platform-link:hover{border-color:#60a5fa;background:#2563eb;color:#fff}.public-platform-empty{color:#9ca3af;font-weight:400}.public-module-zone{margin-top:28px}@media(max-width:980px){.public-streamer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.public-section-heading{align-items:flex-start;flex-direction:column}.public-streamer-grid{grid-template-columns:1fr}.public-streamer-cover{min-height:120px}}

/*
|--------------------------------------------------------------------------
| CH-008.4.2 — Filtres du répertoire public
|--------------------------------------------------------------------------
*/
.public-streamer-tools{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px;padding:16px;border:1px solid #374151;border-radius:14px;background:#1f2937}.public-platform-filters{display:flex;flex-wrap:wrap;gap:8px}.public-filter-button{min-height:38px;padding:8px 14px;border:1px solid #4b5563;border-radius:999px;background:#111827;color:#d1d5db;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.public-filter-button:hover,.public-filter-button.is-active{border-color:#60a5fa;background:#2563eb;color:#fff}.public-search-control{display:block;flex:0 1 310px;min-width:220px;color:#d1d5db;font-size:13px;font-weight:700}.public-search-control span{display:block;margin-bottom:7px}.public-search-control input{width:100%;min-height:40px;padding:9px 12px;border:1px solid #4b5563;border-radius:9px;outline:none;background:#111827;color:#f9fafb;font:inherit}.public-search-control input::placeholder{color:#6b7280}.public-search-control input:focus{border-color:#60a5fa;box-shadow:0 0 0 3px rgba(96,165,250,.18)}.public-streamer-card[hidden],.public-filter-empty[hidden]{display:none}.public-filter-empty{margin-top:20px}@media(max-width:760px){.public-streamer-tools{align-items:stretch;flex-direction:column}.public-search-control{flex-basis:auto;min-width:0;width:100%}.public-platform-filters{width:100%}}@media(max-width:420px){.public-filter-button{flex:1 1 auto}.public-streamer-tools{padding:13px}}


/*
|--------------------------------------------------------------------------
| CH-008.4.3 — Action principale des fiches publiques
|--------------------------------------------------------------------------
*/
.public-channel-action{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;margin-top:18px;padding:12px 14px;border:1px solid #4b5563;border-radius:11px;background:#111827;color:#e5e7eb;text-decoration:none;transition:border-color .18s ease,background .18s ease,transform .18s ease}.public-channel-action span:first-child{font-size:13px}.public-channel-action strong{font-size:13px}.public-channel-action span:last-child{font-size:19px;line-height:1}.public-channel-action:hover{border-color:#60a5fa;background:#172554;color:#fff;transform:translateY(-1px)}.public-channel-action:focus-visible{outline:3px solid rgba(96,165,250,.35);outline-offset:2px}@media(max-width:420px){.public-channel-action{grid-template-columns:1fr auto}.public-channel-action strong{display:none}}


/*
|--------------------------------------------------------------------------
| CH-009.4 — États de live réels sur le frontend
|--------------------------------------------------------------------------
*/
.public-streamer-card:has(.public-streamer-cover.is-live){border-color:#7c3aed;box-shadow:0 14px 34px rgba(0,0,0,.24)}.public-streamer-cover.is-live{min-height:190px;background-position:center;background-size:cover}.public-live-cover-info{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}.public-live-badge,.public-viewer-count{display:inline-flex;align-items:center;min-height:30px;padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800}.public-live-badge{background:#dc2626;color:#fff;letter-spacing:.05em}.public-viewer-count{background:rgba(17,24,39,.88);color:#fff}.public-live-details{margin-top:16px}.public-live-title{display:-webkit-box;overflow:hidden;margin:0;color:#f9fafb;font-weight:700;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.public-live-category{margin:7px 0 0;color:#a5b4fc;font-size:13px;font-weight:700}.public-platform-link.is-live{border-color:#dc2626;background:rgba(220,38,38,.14);color:#fff}.public-channel-action.is-live{border-color:#dc2626;background:#7f1d1d}.public-channel-action.is-live:hover{border-color:#f87171;background:#991b1b}@media(max-width:620px){.public-streamer-cover.is-live{min-height:170px}}


/*
|--------------------------------------------------------------------------
| CH-012.1 — Icônes de navigation publique
|--------------------------------------------------------------------------
*/
.public-navigation-link{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.public-navigation-link-icon{display:inline-grid;min-width:1.1em;place-items:center;font-size:1.05em;line-height:1}

/* CH-014.0 — Pages publiques */
.public-page-shell {
    width: min(100%, 1100px);
    margin: 20px auto 64px;
    overflow: hidden;
    border: 1px solid rgba(148, 163, 184, .22);
    border-radius: 28px;
    background: rgba(255, 255, 255, .96);
    color: #182230;
    box-shadow: 0 28px 70px rgba(15, 23, 42, .14);
}
.public-page-cover {
    margin: 0;
    aspect-ratio: 21 / 8;
    overflow: hidden;
    background: #e9eef5;
}
.public-page-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.public-page-header {
    max-width: 860px;
    margin: 0 auto;
    padding: clamp(32px, 6vw, 68px) clamp(24px, 7vw, 72px) 20px;
    text-align: center;
}
.public-page-kicker {
    margin: 0 0 12px;
    color: #2584d8;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .18em;
    text-transform: uppercase;
}
.public-page-header h1 {
    margin: 0;
    color: inherit;
    font-size: clamp(38px, 7vw, 72px);
    line-height: 1;
    letter-spacing: -.045em;
}
.public-page-excerpt {
    margin: 22px auto 0;
    color: #536170;
    font-size: clamp(17px, 2vw, 21px);
    line-height: 1.65;
}
.public-page-updated {
    margin: 18px 0 0;
    color: #7a8795;
    font-size: 13px;
}
.public-page-content {
    max-width: 860px;
    margin: 0 auto;
    padding: 20px clamp(24px, 7vw, 72px) clamp(42px, 7vw, 80px);
    font-size: 17px;
    line-height: 1.8;
}
.public-page-content h2,
.public-page-content h3,
.public-page-content h4 {
    margin: 1.8em 0 .65em;
    color: #172331;
    line-height: 1.2;
}
.public-page-content h2 { font-size: clamp(28px, 4vw, 40px); }
.public-page-content h3 { font-size: clamp(23px, 3vw, 31px); }
.public-page-content p { margin: 0 0 1.25em; }
.public-page-content a { color: #1677c8; font-weight: 750; }
.public-page-content blockquote {
    margin: 1.8em 0;
    padding: 18px 22px;
    border-left: 4px solid #2898e9;
    border-radius: 0 14px 14px 0;
    background: #f3f8fc;
}
.public-page-content ul,
.public-page-content ol { padding-left: 1.4em; }

@media (max-width: 700px) {
    .public-page-shell {
        margin-top: 8px;
        border-radius: 20px;
    }
    .public-page-cover { aspect-ratio: 16 / 9; }
    .public-page-header { text-align: left; }
}
