/* Le Scénario - Saintéwood Theme - Full Stylesheet */
:root {
    --color-primary: #6A3B8B;
    --color-primary-dark: #3A1F4D;
    --color-yellow: #FFE500;
    --color-orange: #EF8B22;
    --color-green: #95C14E;
    --color-green-dark: #2C643B;
    --color-sky: #E4CDEB;
    --color-blue: #A1C6D9;
    --color-bg: #FDFBFF;
    --color-text: #1a0a2e;
    --color-text-muted: #7a6a8a;
    --grad-primary: linear-gradient(135deg, #6A3B8B 0%, #3A1F4D 100%);
    --grad-accent: linear-gradient(135deg, #FFE500 0%, #EF8B22 100%);
    --grad-success: linear-gradient(135deg, #95C14E 0%, #2C643B 100%);
    --grad-soft: linear-gradient(135deg, #E4CDEB 0%, #A1C6D9 100%);
    --font-main: 'Inter', sans-serif;
    --radius-lg: 24px;
    --radius-md: 16px;
    --radius-sm: 8px;
    --radius-full: 9999px;
    --shadow: 0 10px 40px rgba(106,59,139,0.15);
    --shadow-hover: 0 20px 50px rgba(106,59,139,0.25);
    --border: 3px solid var(--color-primary);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:var(--font-main);background:var(--color-bg);color:var(--color-text);line-height:1.6;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;display:block;}

/* NAVBAR */
.navbar{
    position:fixed;top:0;left:0;width:100%;z-index:1000;
    padding:20px 40px;
    display:flex;align-items:center;justify-content:space-between;
    transition:all 0.4s ease;
}
.navbar.scrolled{
    background:rgba(253,251,255,0.95);
    backdrop-filter:blur(20px);
    padding:14px 40px;
    box-shadow:0 4px 30px rgba(106,59,139,0.08);
    border-bottom:1px solid rgba(106,59,139,0.1);
}
.nav-logo{
    font-weight:900;font-size:1.6rem;
    color:var(--color-primary);
    display:flex;align-items:center;gap:10px;
}
.nav-logo span{font-size:1.8rem;}
.nav-links{display:flex;gap:32px;list-style:none;align-items:center;}
.nav-links a{
    font-weight:800;font-size:0.9rem;
    text-transform:uppercase;letter-spacing:0.5px;
    color:var(--color-primary);
    transition:color 0.2s;
}
.nav-links a:hover{color:var(--color-orange);}
.nav-cta{margin-left:16px;}

/* BUTTONS */
.btn{
    display:inline-flex;align-items:center;justify-content:center;
    padding:14px 32px;font-weight:800;border-radius:var(--radius-full);
    text-transform:uppercase;letter-spacing:1px;cursor:pointer;
    transition:all 0.3s ease;border:none;font-size:0.9rem;
    font-family:var(--font-main);
}
.btn-primary{background:var(--grad-primary);color:#fff;}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 10px 25px rgba(106,59,139,0.4);}
.btn-accent{background:var(--grad-accent);color:var(--color-primary-dark);}
.btn-accent:hover{transform:translateY(-3px);box-shadow:0 10px 25px rgba(239,139,34,0.4);}
.btn-outline{background:transparent;color:var(--color-primary);border:var(--border);}
.btn-outline:hover{background:var(--color-primary);color:#fff;}
.btn-secondary{background:white;color:var(--color-primary);border:var(--border);}
.btn-secondary:hover{background:var(--color-sky);}
.btn-large{padding:18px 48px;font-size:1.1rem;}
.btn-vote{
    background:var(--grad-accent);color:var(--color-primary-dark);
    font-size:1.2rem;padding:20px 40px;width:100%;
    border:3px solid var(--color-primary);
    box-shadow:6px 6px 0 var(--color-primary);
}
.btn-vote:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--color-primary);}

/* LAYOUT */
.main-content{padding-top:110px;min-height:calc(100vh - 200px);}
.container{max-width:1200px;margin:0 auto;padding:0 32px;}
.section{padding:80px 0;}
.section-title{
    font-size:3rem;font-weight:950;text-align:center;
    margin-bottom:60px;
    background:var(--grad-primary);
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;
    background-clip:text;
}

/* HERO */
.hero{
    background:var(--grad-soft);
    padding:200px 0 150px;
    text-align:center;position:relative;overflow:hidden;
}
.hero::after{
    content:'';position:absolute;bottom:-80px;left:0;
    width:100%;height:160px;
    background:var(--color-bg);
    clip-path:ellipse(60% 50% at 50% 100%);
}
.hero-badge{
    display:inline-block;
    background:var(--color-yellow);
    padding:10px 28px;border-radius:var(--radius-full);
    font-weight:900;text-transform:uppercase;letter-spacing:1px;
    margin-bottom:32px;transform:rotate(-1.5deg);
    border:2px solid var(--color-primary);
    box-shadow:4px 4px 0 var(--color-primary);
}
.hero-title{
    font-size:5rem;font-weight:950;line-height:1.05;margin-bottom:24px;
    background:var(--grad-primary);
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;
    background-clip:text;
}
.hero-title .outline{
    -webkit-text-fill-color:transparent;
    -webkit-text-stroke:3px var(--color-primary);
}
.hero-subtitle{
    font-size:1.4rem;color:var(--color-primary);
    max-width:700px;margin:0 auto 50px;font-weight:600;
}
.hero-stats{
    display:flex;gap:48px;justify-content:center;
    margin-bottom:60px;
}
.stat-item{text-align:center;}
.stat-number{
    font-size:3rem;font-weight:950;
    background:var(--grad-primary);
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;
    background-clip:text;
    display:block;
}
.stat-label{font-size:0.85rem;font-weight:700;text-transform:uppercase;color:var(--color-primary);opacity:0.8;}
.hero-actions{display:flex;gap:20px;justify-content:center;}

/* CARDS */
.premium-card{
    background:#fff;border-radius:var(--radius-lg);
    border:var(--border);
    box-shadow:8px 8px 0 var(--color-primary);
    transition:all 0.3s cubic-bezier(0.175,0.885,0.32,1.275);
    overflow:hidden;
}
.premium-card:hover{transform:translate(-4px,-4px);box-shadow:12px 12px 0 var(--color-primary);}

/* FILM GRID */
.films-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:40px;
}
@media(max-width:900px){.films-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.films-grid{grid-template-columns:1fr;}}

.film-card{
    background:#fff;border-radius:var(--radius-lg);
    border:var(--border);
    box-shadow:6px 6px 0 var(--color-primary);
    overflow:hidden;
    transition:all 0.3s ease;
}
.film-card:hover{transform:translate(-4px,-4px);box-shadow:10px 10px 0 var(--color-primary);}
.film-thumbnail{
    position:relative;height:200px;overflow:hidden;
    background:var(--grad-soft);
}
.film-thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform 0.4s ease;}
.film-card:hover .film-thumbnail img{transform:scale(1.05);}
.play-button{
    position:absolute;top:50%;left:50%;
    transform:translate(-50%,-50%);
    width:64px;height:64px;
    background:var(--grad-accent);
    border-radius:50%;border:3px solid var(--color-primary);
    display:flex;align-items:center;justify-content:center;
    transition:all 0.3s ease;
    box-shadow:4px 4px 0 var(--color-primary);
}
.play-button:hover{transform:translate(-50%,-50%) scale(1.1);}
.play-icon{
    width:0;height:0;
    border-top:10px solid transparent;border-bottom:10px solid transparent;
    border-left:18px solid var(--color-primary);
    margin-left:5px;
}
.film-badge{
    position:absolute;top:12px;right:12px;
    background:var(--color-yellow);
    padding:4px 12px;border-radius:var(--radius-full);
    font-weight:900;font-size:0.75rem;
    border:2px solid var(--color-primary);
}
.film-info{padding:24px;}
.film-title{font-size:1.15rem;font-weight:900;margin-bottom:8px;}
.film-creator{font-size:0.9rem;color:var(--color-primary);font-weight:700;margin-bottom:16px;}
.film-creator a{color:var(--color-orange);}
.film-creator a:hover{text-decoration:underline;}
.film-meta{display:flex;align-items:center;justify-content:space-between;font-size:0.85rem;font-weight:700;}
.film-votes{color:var(--color-primary);}
.progress-bar{background:#e8dff0;height:8px;border-radius:4px;overflow:hidden;margin-top:10px;}
.progress-fill{height:100%;background:var(--grad-primary);border-radius:4px;transition:width 1s ease;}

/* CREATORS GRID */
.creators-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;}
@media(max-width:900px){.creators-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.creators-grid{grid-template-columns:1fr;}}

.creator-card{
    background:#fff;border-radius:var(--radius-lg);
    border:var(--border);box-shadow:6px 6px 0 var(--color-primary);
    padding:40px 30px;text-align:center;
    transition:all 0.3s ease;
}
.creator-card:hover{transform:translate(-4px,-4px);box-shadow:10px 10px 0 var(--color-primary);}
.creator-avatar{
    width:100px;height:100px;border-radius:50%;
    border:4px solid var(--color-primary);
    margin:0 auto 20px;object-fit:cover;
}
.creator-name{font-size:1.3rem;font-weight:900;margin-bottom:6px;}
.creator-role{font-weight:700;color:var(--color-primary);text-transform:uppercase;font-size:0.8rem;margin-bottom:16px;}
.creator-bio{font-size:0.9rem;color:var(--color-text-muted);margin-bottom:24px;line-height:1.5;}
.creator-stats{display:flex;gap:20px;justify-content:center;margin-bottom:24px;}
.creator-stat{text-align:center;}
.creator-stat strong{display:block;font-size:1.2rem;font-weight:900;color:var(--color-primary);}
.creator-stat span{font-size:0.75rem;text-transform:uppercase;font-weight:700;color:var(--color-text-muted);}

/* VIDEO PLAYER */
.player-layout{
    display:grid;grid-template-columns:1fr 360px;gap:48px;
    align-items:start;
}
@media(max-width:900px){.player-layout{grid-template-columns:1fr;}}
.video-container{
    background:#000;border-radius:var(--radius-lg);
    border:4px solid var(--color-primary);
    aspect-ratio:16/9;overflow:hidden;
    box-shadow:var(--shadow);position:relative;
}
.video-container img{width:100%;height:100%;object-fit:cover;opacity:0.85;}
.play-overlay{
    position:absolute;top:50%;left:50%;
    transform:translate(-50%,-50%);
    width:90px;height:90px;
    background:var(--grad-accent);border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    border:4px solid var(--color-primary);
    box-shadow:6px 6px 0 var(--color-primary);
    transition:all 0.3s ease;cursor:pointer;
}
.play-overlay:hover{transform:translate(-50%,-50%) scale(1.1);}
.play-arrow{
    width:0;height:0;
    border-top:15px solid transparent;border-bottom:15px solid transparent;
    border-left:26px solid var(--color-primary);
    margin-left:8px;
}
.player-meta{margin-top:28px;}
.player-title{font-size:2.2rem;font-weight:950;margin-bottom:10px;}
.player-author{font-size:1.1rem;font-weight:800;color:var(--color-primary);}
.player-author a{color:var(--color-orange);}

/* VOTE BOX */
.vote-box{
    background:var(--grad-accent);
    border-radius:var(--radius-lg);border:var(--border);
    box-shadow:8px 8px 0 var(--color-primary);
    padding:36px;text-align:center;
}
.vote-score{font-size:3.5rem;font-weight:950;color:var(--color-primary);}
.vote-label{font-weight:800;text-transform:uppercase;letter-spacing:1px;margin-bottom:20px;font-size:0.85rem;}
.vote-progress{
    background:rgba(255,255,255,0.4);height:14px;
    border-radius:7px;border:2px solid var(--color-primary);
    overflow:hidden;margin:16px 0 28px;
}
.vote-fill{height:100%;background:var(--grad-primary);}

/* PROFILE */
.profile-header{
    text-align:center;padding:60px 0 40px;
    border-bottom:var(--border);margin-bottom:60px;
}
.profile-avatar{
    width:130px;height:130px;border-radius:50%;
    border:5px solid var(--color-primary);
    margin:0 auto 24px;object-fit:cover;
    box-shadow:6px 6px 0 var(--color-primary);
}
.profile-name{font-size:2.5rem;font-weight:950;margin-bottom:8px;}
.profile-role{
    font-weight:800;color:var(--color-primary);
    text-transform:uppercase;letter-spacing:1px;margin-bottom:16px;
}
.profile-bio{max-width:600px;margin:0 auto 28px;color:var(--color-text-muted);line-height:1.6;}
.profile-actions{display:flex;gap:16px;justify-content:center;}

/* MESSAGING */
.messaging-page{padding:100px 0;}
.messaging-box{
    background:#fff;border-radius:var(--radius-lg);
    border:var(--border);
    box-shadow:var(--shadow);
    display:flex;height:720px;overflow:hidden;
}
.messaging-sidebar{
    width:320px;min-width:320px;
    border-right:var(--border);
    display:flex;flex-direction:column;background:#F8F4F9;
}
.messaging-sidebar-header{
    padding:24px;background:var(--grad-primary);color:#fff;
}
.messaging-sidebar-header h3{font-weight:900;font-size:1.1rem;text-transform:uppercase;}
.convo-item{
    display:flex;align-items:center;gap:14px;
    padding:18px 20px;cursor:pointer;
    border-bottom:2px solid rgba(106,59,139,0.1);
    transition:background 0.2s;
}
.convo-item:hover,.convo-item.active{background:var(--color-sky);}
.convo-avatar{
    width:52px;height:52px;border-radius:50%;
    border:2px solid var(--color-primary);
    object-fit:cover;flex-shrink:0;
    background:var(--grad-accent);
}
.convo-name{font-weight:900;font-size:0.95rem;}
.convo-preview{font-size:0.8rem;color:var(--color-text-muted);font-weight:600;margin-top:2px;}
.convo-dot{
    width:10px;height:10px;border-radius:50%;
    background:var(--color-green);
    margin-left:auto;flex-shrink:0;
}
.messaging-chat{flex:1;display:flex;flex-direction:column;}
.chat-header{
    padding:20px 32px;border-bottom:var(--border);
    display:flex;align-items:center;gap:16px;
    background:#fff;
}
.chat-header-avatar{
    width:44px;height:44px;border-radius:50%;
    border:2px solid var(--color-primary);
    background:var(--grad-accent);
    object-fit:cover;
}
.chat-header-name{font-weight:900;}
.chat-header-status{font-size:0.8rem;color:var(--color-green);font-weight:700;}
.chat-messages{
    flex:1;padding:28px 32px;
    display:flex;flex-direction:column;gap:18px;
    overflow-y:auto;
}
.message-bubble{
    max-width:65%;padding:14px 20px;
    font-weight:700;font-size:0.95rem;line-height:1.5;
}
.message-bubble.received{
    background:#F0EAF2;border-radius:20px 20px 20px 4px;
    align-self:flex-start;color:var(--color-text);
    border:2px solid rgba(106,59,139,0.15);
}
.message-bubble.sent{
    background:var(--grad-primary);color:#fff;
    border-radius:20px 20px 4px 20px;
    align-self:flex-end;
}
.chat-input{
    padding:20px 28px;border-top:var(--border);
    display:flex;gap:16px;align-items:center;background:#fff;
}
.chat-input input{
    flex:1;padding:14px 20px;
    border-radius:var(--radius-full);border:var(--border);
    outline:none;font-weight:700;font-size:0.95rem;
    font-family:var(--font-main);
    background:var(--color-bg);color:var(--color-text);
    transition:box-shadow 0.2s;
}
.chat-input input:focus{box-shadow:0 0 0 3px rgba(106,59,139,0.2);}

/* EVENTS */
.events-list{display:flex;flex-direction:column;gap:28px;}
.event-card{
    background:#fff;border-radius:var(--radius-lg);
    border:var(--border);box-shadow:6px 6px 0 var(--color-primary);
    display:flex;overflow:hidden;transition:all 0.3s ease;
}
.event-card:hover{transform:translate(-4px,-4px);box-shadow:10px 10px 0 var(--color-primary);}
.event-date{
    background:var(--grad-primary);color:#fff;
    padding:28px 36px;display:flex;flex-direction:column;
    align-items:center;justify-content:center;min-width:120px;
}
.event-day{font-size:2.5rem;font-weight:950;line-height:1;}
.event-month{font-size:0.85rem;font-weight:800;text-transform:uppercase;margin-top:4px;}
.event-content{padding:28px 36px;flex:1;}
.event-title{font-size:1.4rem;font-weight:900;margin-bottom:8px;}
.event-location{font-weight:700;color:var(--color-primary);margin-bottom:12px;font-size:0.9rem;}
.event-desc{color:var(--color-text-muted);font-size:0.9rem;line-height:1.6;}

/* VOTE PAGE */
.vote-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:48px;}
@media(max-width:700px){.vote-grid{grid-template-columns:1fr;}}
.vote-card{
    background:#fff;border-radius:var(--radius-lg);
    border:var(--border);box-shadow:8px 8px 0 var(--color-primary);
    overflow:hidden;transition:all 0.3s ease;
}
.vote-card:hover{transform:translate(-4px,-4px);box-shadow:12px 12px 0 var(--color-primary);}
.vote-card-thumb{height:220px;overflow:hidden;background:var(--grad-soft);position:relative;}
.vote-card-thumb img{width:100%;height:100%;object-fit:cover;}
.vote-rank{
    position:absolute;top:16px;left:16px;
    width:44px;height:44px;border-radius:50%;
    background:var(--color-yellow);border:3px solid var(--color-primary);
    display:flex;align-items:center;justify-content:center;
    font-weight:950;font-size:1.2rem;color:var(--color-primary);
}
.vote-card-body{padding:28px;}

/* FORM */
.form-group{margin-bottom:28px;}
.form-label{
    display:block;font-weight:800;font-size:0.9rem;
    text-transform:uppercase;letter-spacing:0.5px;
    margin-bottom:10px;color:var(--color-primary);
}
.form-input,.form-select,.form-textarea{
    width:100%;padding:16px 20px;
    border-radius:var(--radius-md);border:var(--border);
    font-family:var(--font-main);font-size:1rem;font-weight:600;
    background:#fff;color:var(--color-text);
    outline:none;transition:box-shadow 0.2s;
}
.form-input:focus,.form-select:focus,.form-textarea:focus{
    box-shadow:0 0 0 4px rgba(106,59,139,0.15);
}
.form-textarea{min-height:140px;resize:vertical;}

/* INSCRIPTION */
.admin-code-box{
    background:var(--grad-accent);
    border-radius:var(--radius-lg);border:var(--border);
    box-shadow:8px 8px 0 var(--color-primary);
    padding:40px;text-align:center;margin-bottom:48px;
}
.admin-email{
    font-size:1.3rem;font-weight:900;
    color:var(--color-primary);
    background:#fff;padding:16px 28px;
    border-radius:var(--radius-md);border:var(--border);
    display:inline-block;margin:20px 0;
    box-shadow:4px 4px 0 var(--color-primary);
}

/* FOOTER */
.footer{
    background:var(--grad-primary);color:#fff;
    padding:80px 0 40px;margin-top:100px;
}
.footer-grid{
    display:grid;grid-template-columns:1fr 1fr 1fr;gap:60px;margin-bottom:60px;
}
@media(max-width:768px){.footer-grid{grid-template-columns:1fr;gap:40px;}}
.footer-brand .logo-text{
    font-size:1.5rem;font-weight:900;
    color:var(--color-yellow);margin-bottom:12px;display:block;
}
.footer-brand p{opacity:0.8;font-size:0.9rem;line-height:1.6;}
.footer-col h4{color:var(--color-yellow);font-weight:900;margin-bottom:20px;text-transform:uppercase;letter-spacing:0.5px;}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
.footer-col a{opacity:0.8;font-weight:600;font-size:0.9rem;transition:opacity 0.2s;}
.footer-col a:hover{opacity:1;color:var(--color-yellow);}
.footer-bottom{
    border-top:1px solid rgba(255,255,255,0.15);
    padding-top:32px;text-align:center;
    opacity:0.6;font-size:0.85rem;font-weight:600;
}

/* PAGE HERO (inner pages) */
.page-hero{
    background:var(--grad-soft);
    padding:160px 0 80px;text-align:center;
    position:relative;overflow:hidden;
    margin-bottom:80px;
}
.page-hero::after{
    content:'';position:absolute;bottom:-60px;left:0;
    width:100%;height:120px;background:var(--color-bg);
    clip-path:ellipse(60% 50% at 50% 100%);
}
.page-hero-title{
    font-size:3.5rem;font-weight:950;
    background:var(--grad-primary);
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;
    background-clip:text;
    margin-bottom:16px;
}
.page-hero-sub{font-size:1.2rem;color:var(--color-primary);font-weight:600;}

/* FILTER BAR */
.filter-bar{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:60px;}

/* RESERVATION */
.reservation-box{
    max-width:680px;margin:0 auto;
    background:#fff;border-radius:var(--radius-lg);
    border:var(--border);box-shadow:10px 10px 0 var(--color-primary);
    padding:60px;
}

/* RESPONSIVE */
@media(max-width:768px){
    .navbar{padding:14px 20px;}
    .navbar.scrolled{padding:10px 20px;}
    .nav-links{gap:16px;}
    .hero-title{font-size:3rem;}
    .hero-stats{flex-direction:column;gap:24px;}
    .hero-actions{flex-direction:column;align-items:center;}
    .player-layout{grid-template-columns:1fr;}
    .messaging-box{flex-direction:column;height:auto;}
    .messaging-sidebar{width:100%;min-width:unset;height:260px;}
    .container{padding:0 16px;}
    .reservation-box{padding:32px 20px;}
}
/* Cache buster */
