@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    min-height:100vh;
    background:#f5f5f3;
    font-family:'Inter',sans-serif;
    overflow-x:hidden;
    color:#111;
}

/* =======================
   GRID BACKGROUND
======================= */

.background-grid{
    position:fixed;
    inset:0;
    z-index:-2;

    background-image:
    linear-gradient(
        to right,
        rgba(0,0,0,0.05) 1px,
        transparent 1px
    ),
    linear-gradient(
        to bottom,
        rgba(0,0,0,0.05) 1px,
        transparent 1px
    );

    background-size:120px 120px;
}

.background-grid::before{
    content:"";
    position:absolute;
    inset:0;

    background:
    radial-gradient(
        circle at center,
        rgba(255,255,255,0.8),
        transparent 70%
    );
}

/* =======================
   PAGE
======================= */

.page{
    width:min(92%,1400px);
    margin:30px auto;
    padding:20px;
    border-radius:30px;
}

/* =======================
   NAVBAR
======================= */

.navbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:30px;
}

.nav-actions{
    display:flex;
    align-items:center;
    gap:12px;
}

.logo{
    font-family:'Inter',sans-serif;
    font-weight:999;
    font-size:clamp(15px,1.9vw,28px);
    letter-spacing:0px;
    display:flex;
    align-items:center;
    gap:12px;
}

.nav-user-badge{
    display:inline-flex;
    align-items:center;
    gap:8px;
    text-decoration:none;
    color:inherit;
    padding:4px 8px;
    border-radius:999px;
    border:1px solid rgba(0,0,0,0.12);
    background:rgba(255,255,255,0.7);
}

.nav-user-avatar{
    width:28px;
    height:28px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:12px;
    font-weight:700;
    background:#111;
    color:#fff;
    overflow:hidden;
}

.nav-user-avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.nav-user-name{
    font-size:12px;
    font-weight:700;
    max-width:140px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.links{
    display:flex;
    gap:35px;
}

.links a{
    text-decoration:none;
    color:#111;
    font-size:14px;
    position:relative;
    transition:.3s;
}

.links a::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-5px;
    width:0%;
    height:1px;
    background:black;
    transition:.4s;
}

.links a:hover::after{
    width:100%;
}

.nav-btn{
    border:none;
    background:black;
    color:white;
    padding:13px 24px;
    border-radius:999px;
    cursor:pointer;
    transition:.4s;
}

.nav-btn:hover{
    transform:translateY(-3px);
}

.nav-btn-secondary{
    background:transparent;
    color:#111;
    border:1px solid rgba(0,0,0,0.15);
}

.account-btn-avatar{
    width:24px;
    height:24px;
    border-radius:50%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#111;
    color:#fff;
    font-size:11px;
    font-weight:700;
    overflow:hidden;
    margin-right:8px;
    vertical-align:middle;
}

.account-btn-avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.account-btn-label{
    vertical-align:middle;
}

/* =======================
   HERO
======================= */

.hero{
    position:relative;
    height:700px;
    background:#fafafa;
    border-radius:25px;
    border:1px solid rgba(0,0,0,0.08);
    overflow:hidden;

    box-shadow:
    0 30px 80px rgba(0,0,0,.12),
    0 10px 25px rgba(0,0,0,.06);

    display:flex;
    justify-content:center;
    align-items:center;
}

/* =======================
   HERO CONTENT
======================= */

.hero-content{
    position:relative;
    z-index:5;
    text-align:center;
    margin-top:-30px;
}

/* =======================
   TITLES
======================= */

.hero-content h1{
    font-family:'Playfair Display',serif;
    font-size:clamp(60px,8vw,120px);
    font-weight:500;
    letter-spacing:-5px;
    line-height:1;
    color:rgba(0,0,0,0.18);

    opacity:0;
    transform:translateY(30px);
    animation:textReveal 1s ease forwards;
}

.hero-content h2{
    font-size:clamp(28px,4vw,58px);
    margin-top:-10px;
    font-weight:700;
    letter-spacing:-2px;
    color:#111;

    opacity:0;
    transform:translateY(30px);
    animation:textReveal 1s ease forwards;
    animation-delay:.2s;
}

.hero-content p{
    margin-top:18px;
    color:#777;
    line-height:1.7;
    font-size:15px;

    opacity:0;
    transform:translateY(20px);
    animation:textReveal 1s ease forwards;
    animation-delay:.4s;
}

@keyframes textReveal{
    from{
        opacity:0;
        transform:translateY(30px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }
}

/* =======================
   BUTTON
======================= */

.cta{
    margin-top:25px;
    border:none;
    background:black;
    color:white;
    padding:15px 32px;
    border-radius:999px;
    cursor:pointer;
    transition:.4s;

    box-shadow:
    0 10px 25px rgba(0,0,0,.15);
}

.cta:hover{
    transform:
    translateY(-3px)
    scale(1.05);

    box-shadow:
    0 15px 35px rgba(0,0,0,.25);
}

/* =======================
   ASCII CANVAS
======================= */

canvas{
    position:absolute;
    z-index:2;
    opacity:.55;
    pointer-events:none;
}

#ascii-left{
    width:700px;
    height:320px;
    left:-150px;
    bottom:100px;
}

#ascii-right{
    width:700px;
    height:320px;
    right:-150px;
    bottom:100px;
}

/* =======================
   BOTTOM TEXTS
======================= */

.bottom-text{
    position:absolute;
    bottom:25px;
    color:#888;
    font-size:12px;
    z-index:6;
}

.left-text{
    left:30px;
}

.center-text{
    left:50%;
    transform:translateX(-50%);
    text-align:center;
}

.right-text{
    right:30px;
}

/* =======================
   RESPONSIVE
======================= */

@media(max-width:900px){

    .links{
        display:none;
    }

    .hero{
        height:650px;
    }

    .hero-content{
        width:90%;
    }

    .bottom-text{
        display:none;
    }

    #ascii-left{
        left:-250px;
        opacity:.25;
    }

    #ascii-right{
        right:-250px;
        opacity:.25;
    }
}

/* =======================
   SEARCH WRAPPER
======================= */

.search-wrapper{
    position:relative;
    display:inline-flex;
    flex-direction:column;
    align-items:stretch;
    margin-top:24px;
}

.search-wrapper form{
    display:flex;
    align-items:center;
    gap:10px;
}

#movie-query{
    padding:12px 20px;
    width:min(420px,70vw);
    border:1px solid rgba(0,0,0,0.2);
    border-radius:999px;
    font-size:14px;
    font-family:'Inter',sans-serif;
    outline:none;
    transition:.3s;
    background:white;
    color:#111;
}

#movie-query:focus{
    border-color:rgba(0,0,0,0.4);
    box-shadow:0 4px 16px rgba(0,0,0,0.08);
}

.search-suggestions{
    position:absolute;
    top:calc(100% + 8px);
    left:0;
    min-width:min(420px,70vw);
    background:white;
    border:1px solid rgba(0,0,0,0.1);
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 10px 30px rgba(0,0,0,0.1);
    z-index:100;
    text-align:left;
}

.suggestion-item{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:12px 20px;
    cursor:pointer;
    font-size:14px;
    transition:.2s;
    border-bottom:1px solid rgba(0,0,0,0.04);
}

.suggestion-item:last-child{
    border-bottom:none;
}

.suggestion-item:hover{
    background:#f5f5f3;
}

.suggestion-title{
    font-weight:500;
}

/* =======================
   FILMS SECTION
======================= */

.films-section{
    margin-top:40px;
    padding-bottom:40px;
}

.recent-section{
    margin-bottom:34px;
}

.section-header-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:20px;
}

.text-btn{
    border:none;
    background:transparent;
    color:#555;
    font-size:13px;
    font-weight:600;
    cursor:pointer;
}

.text-btn:hover{
    color:#111;
}

.section-title{
    font-size:18px;
    font-weight:700;
    letter-spacing:-0.5px;
    margin-bottom:20px;
    color:#111;
}

.films-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
    gap:20px;
}

.film-card{
    text-decoration:none;
    color:inherit;
    border-radius:16px;
    overflow:hidden;
    background:white;
    border:1px solid rgba(0,0,0,0.08);
    transition:.3s;
    box-shadow:0 4px 12px rgba(0,0,0,0.05);
    display:block;
}

.film-card:hover{
    transform:translateY(-4px);
    box-shadow:0 12px 30px rgba(0,0,0,0.12);
}

.film-poster{
    width:100%;
    aspect-ratio:2/3;
    background:#eee;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}

.film-poster img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.film-poster-placeholder{
    font-size:48px;
    font-weight:700;
    color:rgba(0,0,0,0.15);
    font-family:'Playfair Display',serif;
}

.film-info{
    padding:12px 14px;
}

.film-info h3{
    font-size:13px;
    font-weight:600;
    margin-bottom:4px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.film-info p{
    font-size:11px;
    color:#888;
    margin-bottom:8px;
    opacity:1;
    transform:none;
    animation:none;
}

.lang-badge{
    font-size:10px;
    font-weight:700;
    background:#111;
    color:white;
    padding:3px 8px;
    border-radius:999px;
    display:inline-block;
}

.film-card-badges{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    align-items:center;
}

.film-labels{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}

.film-label{
    font-size:10px;
    font-weight:600;
    color:#333;
    background:rgba(0,0,0,0.06);
    border:1px solid rgba(0,0,0,0.12);
    padding:3px 9px;
    border-radius:999px;
    display:inline-block;
}

.film-label-boxoffice{
    color:#1a1200;
    background:linear-gradient(135deg,#ffd76a,#ffb703);
    border-color:#e6a800;
    font-weight:700;
    letter-spacing:0.3px;
}

.film-label-genre{
    background:rgba(99,102,241,0.12);
    border-color:rgba(99,102,241,0.35);
    color:#4338ca;
    font-style:italic;
}

.lang-badge-lg + .film-labels,
.film-detail-meta + .film-labels{
    margin-top:2px;
}

.label-editor{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.label-editor-row{
    display:flex;
    gap:8px;
    align-items:center;
}

.label-editor-row input{
    flex:1;
    min-width:0;
}

.label-add-btn{
    border:1px solid rgba(0,0,0,0.15);
    background:#111;
    color:white;
    padding:10px 14px;
    border-radius:999px;
    cursor:pointer;
    font-size:12px;
    font-weight:600;
    white-space:nowrap;
    font-family:'Inter',sans-serif;
    transition:.25s;
}

.label-add-btn:hover{
    transform:translateY(-1px);
}

.label-editor-list{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.label-chip{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:12px;
    font-weight:600;
    color:#111;
    background:rgba(0,0,0,0.05);
    border:1px solid rgba(0,0,0,0.12);
    padding:6px 10px;
    border-radius:999px;
}

.label-chip-remove{
    border:none;
    background:transparent;
    color:#666;
    cursor:pointer;
    font-size:16px;
    line-height:1;
    padding:0;
}

.label-chip-remove:hover{
    color:#cc3333;
}

.label-chip-genre{
    background:rgba(99,102,241,0.12);
    border-color:rgba(99,102,241,0.35);
    color:#4338ca;
    font-style:italic;
    cursor:default;
}

.no-films{
    color:#888;
    font-size:14px;
    opacity:1;
    animation:none;
}

.no-films a{
    color:#111;
    font-weight:600;
}

/* =======================
   ADD FILM FORM
======================= */

.form-card{
    background:#fafafa;
    border-radius:25px;
    border:1px solid rgba(0,0,0,0.08);
    box-shadow:0 30px 80px rgba(0,0,0,.12),0 10px 25px rgba(0,0,0,.06);
    padding:50px;
    max-width:600px;
    margin:0 auto;
}

.form-title{
    font-size:clamp(28px,4vw,48px);
    font-weight:700;
    letter-spacing:-2px;
    margin-bottom:32px;
    color:#111;
}

.auto-import-card{
    border:1px solid rgba(0,0,0,0.1);
    background:white;
    border-radius:16px;
    padding:16px;
    margin-bottom:22px;
}

.auto-import-card h3{
    margin:0 0 8px;
    font-size:18px;
    letter-spacing:-0.4px;
}

.auto-import-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-top:10px;
}

.auto-import-grid .auto-full-row{
    grid-column:1 / -1;
}

.auto-import-actions{
    margin-top:12px;
    display:flex;
    justify-content:flex-start;
}

.auto-import-actions .cta{
    margin-top:0;
}

.add-form{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.form-row{
    display:flex;
    flex-direction:column;
    gap:6px;
}

.form-row label{
    font-size:11px;
    font-weight:600;
    color:#555;
    text-transform:uppercase;
    letter-spacing:0.5px;
}

.form-row input,
.form-row select,
.form-row textarea{
    padding:12px 16px;
    border:1px solid rgba(0,0,0,0.15);
    border-radius:12px;
    font-size:14px;
    font-family:'Inter',sans-serif;
    outline:none;
    transition:.3s;
    background:white;
    color:#111;
}

.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus{
    border-color:rgba(0,0,0,0.4);
    box-shadow:0 4px 16px rgba(0,0,0,0.08);
}

.form-row textarea{
    resize:vertical;
}

.language-group{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.language-option{
    position:relative;
    display:inline-flex;
    align-items:center;
    cursor:pointer;
}

.language-option input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.language-option span{
    padding:10px 14px;
    border:1px solid rgba(0,0,0,0.15);
    border-radius:999px;
    font-size:13px;
    font-weight:600;
    background:white;
    color:#111;
    transition:.25s;
}

.language-option input:checked + span{
    background:#111;
    color:white;
    border-color:#111;
}

.form-help{
    font-size:12px;
    color:#777;
    line-height:1.5;
}

.form-error{
    color:#cc3333;
    font-size:13px;
    padding:10px 14px;
    background:#fff0f0;
    border-radius:8px;
    border:1px solid #f5c0c0;
}

.account-modal{
    position:fixed;
    inset:0;
    z-index:9998;
}

.account-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,0.45);
}

.account-modal-card{
    position:relative;
    z-index:1;
    width:min(92vw,460px);
    margin:8vh auto 0;
    background:#fafafa;
    border:1px solid rgba(0,0,0,0.08);
    border-radius:24px;
    box-shadow:0 30px 80px rgba(0,0,0,.2);
    padding:28px;
}

.account-modal-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:18px;
}

.account-modal-header h2{
    font-size:28px;
    font-weight:700;
    letter-spacing:-1px;
}

.account-close-btn{
    border:none;
    background:transparent;
    color:#666;
    font-size:28px;
    line-height:1;
    cursor:pointer;
}

.account-form{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.account-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:center;
}

.account-submit-btn{
    margin-top:0;
}

.account-text,
.account-subtext{
    color:#555;
    line-height:1.6;
}

.account-subtext{
    font-size:13px;
    margin-top:8px;
}

/* =======================
   FILM DETAIL PAGE
======================= */

.film-detail{
    margin-top:20px;
    padding-bottom:50px;
}

.film-detail-inner{
    --film-accent:#111;
    --film-bg-image:none;
    background:#fafafa;
    border-radius:25px;
    border:1px solid rgba(0,0,0,0.08);
    box-shadow:0 30px 80px rgba(0,0,0,.12),0 10px 25px rgba(0,0,0,.06);
    padding:40px;
    display:grid;
    grid-template-columns:260px 1fr;
    gap:40px;
    align-items:start;
    position:relative;
    overflow:hidden;
}

.film-detail-inner > *{
    position:relative;
    z-index:1;
}

.film-detail-inner.has-custom-bg::before{
    content:"";
    position:absolute;
    inset:0;
    background-image:var(--film-bg-image);
    background-size:cover;
    background-position:center;
    opacity:.18;
    filter:saturate(1.15) contrast(1.05);
}

.film-detail-poster{
    border-radius:16px;
    overflow:hidden;
    aspect-ratio:2/3;
    background:#eee;
    display:flex;
    align-items:center;
    justify-content:center;
}

.film-detail-poster img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.film-poster-placeholder-lg{
    font-size:80px;
    font-weight:700;
    color:rgba(0,0,0,0.12);
    font-family:'Playfair Display',serif;
}

.film-detail-info{
    display:flex;
    flex-direction:column;
    gap:16px;
    padding-top:8px;
}

.film-detail-header{
    display:flex;
    align-items:flex-start;
    gap:14px;
    flex-wrap:wrap;
}

.film-detail-header h1{
    font-family:'Playfair Display',serif;
    font-size:clamp(32px,5vw,64px);
    font-weight:500;
    letter-spacing:-2px;
    color:#111;
    line-height:1.1;
}

.lang-badge-lg{
    font-size:13px;
    padding:5px 14px;
    margin-top:8px;
}

.film-detail-inner.has-custom-accent .lang-badge,
.film-detail-inner.has-custom-accent .watch-btn,
.film-detail-inner.has-custom-accent .edit-btn:hover{
    background:var(--film-accent);
    border-color:var(--film-accent);
    color:white;
}

.film-detail-inner.has-custom-accent .film-detail-header h1{
    text-shadow:0 0 1px rgba(0,0,0,0.1);
}

.film-detail-meta{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.film-detail-meta span{
    font-size:13px;
    color:#666;
    background:rgba(0,0,0,0.05);
    padding:5px 12px;
    border-radius:999px;
}

.film-detail-desc{
    font-size:15px;
    color:#555;
    line-height:1.75;
    opacity:1;
    transform:none;
    animation:none;
    margin-top:0;
}

.watch-btn{
    display:inline-block;
    text-decoration:none;
    width:fit-content;
}

.watch-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}

.watch-btn-secondary{
    background:#2b2b2b;
}

.film-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    align-items:center;
}

.edit-btn{
    border:1px solid rgba(0,0,0,0.15);
    background:white;
    color:#111;
    padding:10px 20px;
    border-radius:999px;
    cursor:pointer;
    font-size:13px;
    transition:.3s;
    font-family:'Inter',sans-serif;
    text-decoration:none;
    width:fit-content;
}

.edit-btn:hover{
    background:#111;
    color:white;
    border-color:#111;
}

.no-link{
    font-size:13px;
    color:#888;
    opacity:1;
    animation:none;
    margin-top:0;
}

.delete-btn{
    border:1px solid rgba(0,0,0,0.15);
    background:transparent;
    color:#cc3333;
    padding:10px 20px;
    border-radius:999px;
    cursor:pointer;
    font-size:13px;
    width:fit-content;
    transition:.3s;
    font-family:'Inter',sans-serif;
}

.delete-btn:hover{
    background:#cc3333;
    color:white;
    border-color:#cc3333;
}

.loading-text{
    text-align:center;
    color:#888;
    padding:80px;
    font-size:14px;
}

.addon-card{
    margin-top:18px;
    background:#fafafa;
    border:1px solid rgba(0,0,0,0.08);
    border-radius:20px;
    padding:20px 24px;
    box-shadow:0 12px 30px rgba(0,0,0,.08);
}

.addon-card h2{
    font-size:20px;
    margin:0 0 10px;
    font-family:'Playfair Display',serif;
    color:#111;
}

.addon-card p{
    margin:0 0 14px;
    color:#555;
    font-size:14px;
    line-height:1.6;
}

.addon-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}

.torrentio-results{
    margin-top:14px;
}

.torrentio-status{
    font-size:13px;
    color:#666;
    margin:0 0 10px;
}

.torrentio-links{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.torrentio-link{
    display:block;
    width:100%;
    text-decoration:none;
    border:1px solid rgba(0,0,0,0.12);
    border-radius:12px;
    padding:10px 12px;
    font-size:13px;
    color:#111;
    background:white;
    transition:.2s;
}

.torrentio-link:hover{
    transform:translateY(-1px);
    box-shadow:0 6px 16px rgba(0,0,0,0.08);
}

@media(max-width:700px){
    .film-detail-inner{
        grid-template-columns:1fr;
        padding:24px;
    }

    .film-detail-poster{
        max-width:200px;
        margin:0 auto;
    }

    .form-card{
        padding:28px 20px;
    }

    .search-wrapper form{
        flex-direction:column;
        align-items:stretch;
    }

    .auto-import-grid{
        grid-template-columns:1fr;
    }

    #movie-query{
        width:100%;
    }
}

/* =======================
   FRIENDS PICK PAGE
======================= */

.friends-header{
    text-align:center;
    padding:40px 0 30px;
}

.friends-title{
    font-family:'Playfair Display',serif;
    font-size:clamp(40px,7vw,90px);
    font-weight:500;
    letter-spacing:-4px;
    color:rgba(0,0,0,0.15);
    line-height:1;
    margin-bottom:10px;
}

.friends-subtitle{
    font-size:14px;
    color:#777;
    line-height:1.7;
    opacity:1;
    animation:none;
    transform:none;
}

.friends-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:20px;
    padding-bottom:50px;
}

.friend-column{
    background:#fafafa;
    border:1px solid rgba(0,0,0,0.08);
    border-radius:20px;
    padding:20px;
    box-shadow:0 8px 24px rgba(0,0,0,0.06);
    display:flex;
    flex-direction:column;
    gap:14px;
}

.friend-col-header{
    display:flex;
    align-items:center;
    gap:10px;
}

.friend-avatar{
    width:36px;
    height:36px;
    border-radius:50%;
    background:#111;
    color:white;
    font-size:14px;
    font-weight:700;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
}

.friend-col-header h3{
    font-size:17px;
    font-weight:700;
    letter-spacing:-0.5px;
}

.friend-films{
    display:flex;
    flex-direction:column;
    gap:8px;
    flex:1;
}

.friend-empty{
    font-size:12px;
    color:#aaa;
    text-align:center;
    padding:20px 0;
    opacity:1;
    animation:none;
}

.friend-film-item{
    display:flex;
    align-items:center;
    gap:8px;
    background:white;
    border:1px solid rgba(0,0,0,0.07);
    border-radius:10px;
    padding:6px 8px;
    transition:.2s;
}

.friend-film-item:hover{
    box-shadow:0 4px 12px rgba(0,0,0,0.08);
}

.friend-film-link{
    display:flex;
    align-items:center;
    gap:8px;
    text-decoration:none;
    color:inherit;
    flex:1;
    min-width:0;
}

.friend-film-thumb{
    width:32px;
    height:48px;
    border-radius:5px;
    background:#eee;
    overflow:hidden;
    flex-shrink:0;
    display:flex;
    align-items:center;
    justify-content:center;
}

.friend-film-thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.friend-film-initial{
    font-size:16px;
    font-weight:700;
    color:rgba(0,0,0,0.2);
    font-family:'Playfair Display',serif;
}

.friend-film-info{
    display:flex;
    flex-direction:column;
    gap:4px;
    min-width:0;
}

.friend-film-title{
    font-size:12px;
    font-weight:600;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.friend-remove-btn{
    border:none;
    background:transparent;
    color:#ccc;
    font-size:16px;
    cursor:pointer;
    padding:0 4px;
    transition:.2s;
    flex-shrink:0;
    line-height:1;
}

.friend-remove-btn:hover{
    color:#cc3333;
}

.friend-add-row{
    display:flex;
    gap:8px;
    align-items:center;
}

.friend-select{
    flex:1;
    padding:8px 10px;
    border:1px solid rgba(0,0,0,0.15);
    border-radius:999px;
    font-size:12px;
    font-family:'Inter',sans-serif;
    outline:none;
    background:white;
    color:#111;
    cursor:pointer;
    min-width:0;
}

.friend-select:focus{
    border-color:rgba(0,0,0,0.4);
}

.friend-add-btn{
    border:none;
    background:#111;
    color:white;
    padding:8px 12px;
    border-radius:999px;
    cursor:pointer;
    font-size:11px;
    font-weight:700;
    white-space:nowrap;
    transition:.3s;
    font-family:'Inter',sans-serif;
}

.friend-add-btn:hover{
    background:#333;
    transform:translateY(-1px);
}

/* =======================
   FLOATING CONTROLS
======================= */

.floating-controls{
    position:fixed;
    right:20px;
    bottom:20px;
    z-index:9999;
    display:flex;
    flex-direction:column;
    gap:10px;
}

.floating-control-btn{
    border:1px solid rgba(0,0,0,0.2);
    background:white;
    color:#111;
    border-radius:999px;
    padding:10px 16px;
    font-size:12px;
    font-weight:700;
    letter-spacing:0.2px;
    cursor:pointer;
    box-shadow:0 10px 25px rgba(0,0,0,0.15);
    transition:.25s;
    font-family:'Inter',sans-serif;
    white-space:nowrap;
}

.floating-control-btn:hover{
    transform:translateY(-2px);
}

/* =======================
   DARK MODE
======================= */

body.dark-mode{
    background:#0d0f12;
    color:#f2f2f2;
}

body.dark-mode .background-grid{
    background-image:
    linear-gradient(
        to right,
        rgba(255,255,255,0.06) 1px,
        transparent 1px
    ),
    linear-gradient(
        to bottom,
        rgba(255,255,255,0.06) 1px,
        transparent 1px
    );
}

body.dark-mode .background-grid::before{
    background:radial-gradient(circle at center,rgba(13,15,18,0.2),rgba(13,15,18,0.95));
}

body.dark-mode .logo,
body.dark-mode .links a,
body.dark-mode .section-title,
body.dark-mode .friend-col-header h3,
body.dark-mode .film-detail-header h1,
body.dark-mode .film-info h3{
    color:#f2f2f2;
}

body.dark-mode .links a::after{
    background:#f2f2f2;
}

body.dark-mode .hero,
body.dark-mode .form-card,
body.dark-mode .film-detail-inner,
body.dark-mode .addon-card,
body.dark-mode .auto-import-card,
body.dark-mode .friend-column,
body.dark-mode .film-card,
body.dark-mode .search-suggestions,
body.dark-mode .friend-film-item,
body.dark-mode .account-modal-card{
    background:#151922;
    border-color:rgba(255,255,255,0.12);
    box-shadow:0 16px 40px rgba(0,0,0,0.35);
}

body.dark-mode .film-poster,
body.dark-mode .film-detail-poster,
body.dark-mode .friend-film-thumb{
    background:#242a36;
}

body.dark-mode .hero-content h1{
    color:rgba(255,255,255,0.22);
}

body.dark-mode .hero-content h2,
body.dark-mode .suggestion-title,
body.dark-mode .friend-film-title{
    color:#f5f7fa;
}

body.dark-mode .hero-content p,
body.dark-mode .bottom-text,
body.dark-mode .friends-subtitle,
body.dark-mode .film-info p,
body.dark-mode .film-detail-desc,
body.dark-mode .addon-card p,
body.dark-mode .torrentio-status,
body.dark-mode .no-films,
body.dark-mode .no-link,
body.dark-mode .form-help,
body.dark-mode .friend-empty,
body.dark-mode .account-text,
body.dark-mode .account-subtext,
body.dark-mode .text-btn{
    color:#b9c1cd;
}

body.dark-mode .suggestion-item{
    border-bottom-color:rgba(255,255,255,0.08);
}

body.dark-mode .suggestion-item:hover{
    background:#1d2330;
}

body.dark-mode #movie-query,
body.dark-mode .form-row input,
body.dark-mode .form-row select,
body.dark-mode .form-row textarea,
body.dark-mode .friend-select,
body.dark-mode .language-option span{
    background:#0f131b;
    border-color:rgba(255,255,255,0.18);
    color:#f2f2f2;
}

body.dark-mode .form-row label{
    color:#d2d8e2;
}

body.dark-mode .film-detail-meta span{
    background:rgba(255,255,255,0.1);
    color:#dbe1ea;
}

body.dark-mode .nav-btn,
body.dark-mode .cta{
    background:#f5f7fa;
    color:#0d0f12;
}

body.dark-mode .friend-add-btn,
body.dark-mode .lang-badge{
    background:#f5f7fa;
    color:#0d0f12;
}

body.dark-mode .film-label{
    background:rgba(255,255,255,0.08);
    border-color:rgba(255,255,255,0.2);
    color:#e8edf5;
}

body.dark-mode .film-label-boxoffice{
    color:#1a1200;
    background:linear-gradient(135deg,#ffd76a,#ffb703);
    border-color:#e6a800;
}

body.dark-mode .film-label-genre{
    background:rgba(99,102,241,0.2);
    border-color:rgba(99,102,241,0.5);
    color:#a5b4fc;
}

.account-sep{
    border:none;
    border-top:1px solid rgba(0,0,0,0.1);
    margin:14px 0;
}

.account-subtitle{
    margin:0 0 8px;
    font-size:14px;
    color:#222;
}

.account-inline-row{
    flex-direction:row;
    align-items:center;
    gap:8px;
}

.login-shell{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:24px;
}

.login-card{
    width:min(480px,100%);
    background:#fff;
    border:1px solid rgba(0,0,0,0.12);
    border-radius:16px;
    padding:24px;
    box-shadow:0 12px 36px rgba(0,0,0,0.14);
}

.login-card h1{
    margin:0 0 6px;
}

.login-copy{
    margin:0 0 18px;
    color:#444;
}

.login-form{
    gap:14px;
}

.login-submit{
    width:100%;
    margin-top:6px;
}

body.dark-mode .account-sep{
    border-top-color:rgba(255,255,255,0.18);
}

body.dark-mode .account-subtitle{
    color:#e8edf5;
}

body.dark-mode .login-card{
    background:#101826;
    border-color:rgba(255,255,255,0.15);
    box-shadow:0 14px 40px rgba(0,0,0,0.45);
}

body.dark-mode .login-copy{
    color:#c8d2e0;
}

.forum-page{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.forum-header{
    padding:10px 0 0;
}

.forum-layout{
    display:grid;
    grid-template-columns:280px 1fr;
    gap:16px;
    align-items:start;
}

.forum-main-column{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.forum-online-card,
.forum-chat-card{
    background:rgba(255,255,255,0.9);
    border:1px solid rgba(0,0,0,0.1);
    border-radius:14px;
    padding:14px;
    backdrop-filter:blur(6px);
}

.forum-requests-card{
    background:rgba(255,255,255,0.9);
    border:1px solid rgba(0,0,0,0.1);
    border-radius:14px;
    padding:14px;
    backdrop-filter:blur(6px);
}

.online-users-list{
    display:flex;
    flex-direction:column;
    gap:8px;
    max-height:460px;
    overflow:auto;
}

.online-user-card{
    --online-banner:none;
    border:1px solid rgba(0,0,0,0.08);
    border-radius:12px;
    padding:8px;
    background:linear-gradient(180deg,rgba(255,255,255,0.95),rgba(255,255,255,0.78));
    position:relative;
    overflow:hidden;
}

.online-user-card::before{
    content:"";
    position:absolute;
    inset:0;
    background-image:var(--online-banner);
    background-size:cover;
    background-position:center;
    opacity:0.22;
}

.online-user-top,
.online-user-bio{
    position:relative;
    z-index:1;
}

.online-user-top{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:14px;
}

.online-dot{
    width:9px;
    height:9px;
    border-radius:50%;
    background:#17b26a;
    box-shadow:0 0 0 3px rgba(23,178,106,0.2);
}

.online-user-avatar{
    width:28px;
    height:28px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#111;
    color:#fff;
    font-size:11px;
    font-weight:700;
    overflow:hidden;
}

.online-user-avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.online-user-bio{
    margin:6px 0 0;
    font-size:12px;
    color:#5e6b7f;
    line-height:1.35;
}

.creator-badge{
    display:inline-flex;
    align-items:center;
    padding:2px 8px;
    border-radius:999px;
    margin-left:6px;
    background:#d62d20;
    color:#fff;
    font-size:10px;
    font-weight:800;
    letter-spacing:0.3px;
    text-transform:uppercase;
    vertical-align:middle;
}

.forum-messages{
    display:flex;
    flex-direction:column;
    gap:10px;
    min-height:360px;
    max-height:520px;
    overflow:auto;
    margin-bottom:12px;
    padding-right:4px;
}

.forum-message{
    border:1px solid rgba(0,0,0,0.1);
    border-radius:12px;
    padding:10px 12px;
    background:rgba(255,255,255,0.85);
    display:grid;
    grid-template-columns:220px 1fr;
    gap:12px;
    align-items:start;
}

.forum-message-user{
    display:flex;
    align-items:flex-start;
    gap:10px;
}

.forum-message-avatar{
    width:38px;
    height:38px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#111;
    color:#fff;
    font-size:13px;
    font-weight:700;
    overflow:hidden;
    flex-shrink:0;
}

.forum-message-avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.forum-message-user-meta{
    display:flex;
    flex-direction:column;
    gap:2px;
    min-width:0;
}

.forum-message-user-meta strong{
    font-size:13px;
    line-height:1.3;
}

.forum-message-bio{
    margin:0;
    font-size:12px;
    color:#5e6b7f;
    line-height:1.35;
    max-height:34px;
    overflow:hidden;
}

.forum-message-body{
    min-width:0;
}

.forum-message-head{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:8px;
    margin-bottom:4px;
    color:#253041;
}

.forum-message p{
    margin:0;
    color:#1f2836;
    line-height:1.4;
}

.forum-form{
    display:flex;
    gap:10px;
}

.forum-form input{
    flex:1;
    min-width:0;
}

.request-form{
    display:grid;
    grid-template-columns:1fr auto;
    gap:10px;
    margin:8px 0 12px;
}

.request-form input,
.request-form textarea,
.request-reply-form input{
    width:100%;
    padding:10px 12px;
    border:1px solid rgba(0,0,0,0.14);
    border-radius:10px;
    font-family:'Inter',sans-serif;
    font-size:13px;
    background:#fff;
    color:#111;
}

.request-form textarea{
    grid-column:1 / -1;
    resize:vertical;
}

.request-form .cta{
    margin-top:0;
}

.requests-list{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.request-item{
    border:1px solid rgba(0,0,0,0.1);
    border-radius:12px;
    padding:12px;
    background:rgba(255,255,255,0.86);
}

.request-head{
    display:flex;
    align-items:flex-start;
    gap:10px;
}

.request-avatar,
.request-reply-avatar{
    width:34px;
    height:34px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#111;
    color:#fff;
    font-size:12px;
    font-weight:700;
    overflow:hidden;
    flex-shrink:0;
}

.request-avatar img,
.request-reply-avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.request-head-meta{
    min-width:0;
}

.request-meta{
    margin:0;
    font-size:12px;
    color:#5e6b7f;
}

.request-head-meta h3{
    margin:2px 0 0;
    font-size:16px;
    line-height:1.25;
}

.request-movie-meta{
    margin:6px 0 0;
    font-size:12px;
    color:#5e6b7f;
    line-height:1.4;
}

.request-details{
    margin:8px 0 0;
    color:#1f2836;
    line-height:1.45;
    font-size:14px;
}

.request-replies{
    margin-top:10px;
    display:flex;
    flex-direction:column;
    gap:8px;
}

.request-reply{
    display:flex;
    gap:8px;
    padding:8px;
    border:1px solid rgba(0,0,0,0.08);
    border-radius:10px;
    background:#fff;
}

.request-reply-body{
    min-width:0;
}

.request-reply-meta{
    margin:0;
    font-size:12px;
    color:#5e6b7f;
}

.request-reply-body p{
    margin:2px 0 0;
    font-size:13px;
    line-height:1.4;
}

.request-empty{
    margin:0;
    color:#8b95a7;
    font-size:12px;
}

.request-reply-form{
    margin-top:10px;
    display:flex;
    gap:8px;
}

@media (max-width: 900px){
    .forum-layout{
        grid-template-columns:1fr;
    }

    .forum-messages{
        min-height:280px;
    }

    .forum-message{
        grid-template-columns:1fr;
    }

    .request-form{
        grid-template-columns:1fr;
    }

    .request-reply-form{
        flex-direction:column;
    }
}

body.dark-mode .forum-online-card,
body.dark-mode .forum-chat-card,
body.dark-mode .forum-message,
body.dark-mode .forum-requests-card,
body.dark-mode .request-item,
body.dark-mode .request-reply,
body.dark-mode .online-user-card{
    background:rgba(16,24,38,0.85);
    border-color:rgba(255,255,255,0.15);
}

body.dark-mode .forum-message-head,
body.dark-mode .forum-message p,
body.dark-mode .online-name{
    color:#e8edf5;
}

body.dark-mode .online-user-bio,
body.dark-mode .request-meta,
body.dark-mode .request-movie-meta,
body.dark-mode .request-reply-meta,
body.dark-mode .request-empty{
    color:#aeb9cc;
}

body.dark-mode .creator-badge{
    background:#ff3b30;
    color:#fff;
}

body.dark-mode .request-details,
body.dark-mode .request-reply-body p,
body.dark-mode .request-head-meta h3{
    color:#e8edf5;
}

body.dark-mode .request-form input,
body.dark-mode .request-form textarea,
body.dark-mode .request-reply-form input{
    background:#0f131b;
    color:#e8edf5;
    border-color:rgba(255,255,255,0.2);
}

body.dark-mode .forum-message-avatar{
    background:#2a3550;
}

body.dark-mode .online-user-avatar,
body.dark-mode .request-avatar,
body.dark-mode .request-reply-avatar{
    background:#2a3550;
}

body.dark-mode .forum-message-bio{
    color:#aeb9cc;
}

body.dark-mode .label-chip{
    background:rgba(255,255,255,0.08);
    border-color:rgba(255,255,255,0.2);
    color:#f2f2f2;
}

body.dark-mode .label-add-btn{
    background:#f5f7fa;
    color:#0d0f12;
    border-color:transparent;
}

body.dark-mode .delete-btn,
body.dark-mode .edit-btn,
body.dark-mode .nav-btn-secondary{
    border-color:rgba(255,255,255,0.28);
    color:#f2f2f2;
    background:transparent;
}

body.dark-mode .torrentio-link{
    background:#0f131b;
    border-color:rgba(255,255,255,0.2);
    color:#f2f2f2;
}

body.dark-mode .edit-btn:hover{
    background:#f5f7fa;
    color:#0d0f12;
    border-color:#f5f7fa;
}

body.dark-mode .floating-control-btn{
    background:#0f131b;
    color:#f5f7fa;
    border-color:rgba(255,255,255,0.28);
}

body.dark-mode .account-close-btn{
    color:#dbe1ea;
}

/* =======================
   PROFILE PAGE
======================= */

.profile-page,
.categories-page{
    display:flex;
    flex-direction:column;
    gap:24px;
}

.profile-header-card,
.profile-card,
.categories-hero,
.category-card{
    background:#fafafa;
    border:1px solid rgba(0,0,0,0.08);
    border-radius:24px;
    box-shadow:0 16px 40px rgba(0,0,0,0.08);
}

.profile-header-card{
    --profile-banner-image:none;
    display:flex;
    align-items:center;
    gap:22px;
    padding:28px;
    position:relative;
    overflow:hidden;
}

.profile-header-card.has-profile-banner::before{
    content:"";
    position:absolute;
    inset:0;
    background-image:var(--profile-banner-image);
    background-size:cover;
    background-position:center;
    opacity:0.25;
    z-index:0;
}

.profile-header-card > *{
    position:relative;
    z-index:1;
}

.profile-avatar-wrap{
    flex-shrink:0;
}

.profile-avatar{
    width:104px;
    height:104px;
    border-radius:28px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg,#111,#555);
    color:white;
    font-size:38px;
    font-weight:800;
    overflow:hidden;
}

.profile-avatar img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.profile-kicker{
    font-size:12px;
    font-weight:700;
    letter-spacing:1px;
    text-transform:uppercase;
    color:#777;
    margin-bottom:6px;
}

.profile-name{
    font-family:'Playfair Display',serif;
    font-size:clamp(36px,5vw,70px);
    line-height:1;
    letter-spacing:-3px;
}

.profile-description{
    margin-top:10px;
    color:#666;
    line-height:1.6;
    max-width:700px;
}

.profile-bio{
    margin-top:8px;
    color:#1f2a3b;
    font-size:14px;
    line-height:1.65;
    max-width:70ch;
    white-space:pre-wrap;
}

.profile-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
}

.profile-card{
    padding:24px;
}

.profile-card h2,
.categories-hero h1,
.category-card h2{
    font-size:24px;
    font-weight:800;
    letter-spacing:-1px;
}

.profile-card-text{
    color:#666;
    margin-top:8px;
    margin-bottom:18px;
}

.profile-form{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.profile-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}

.stats-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-top:16px;
}

.stat-card{
    padding:16px;
    border-radius:18px;
    background:#fff;
    border:1px solid rgba(0,0,0,0.08);
    display:flex;
    flex-direction:column;
    gap:8px;
}

.stat-value{
    font-size:28px;
    font-weight:800;
    line-height:1;
}

.stat-label{
    font-size:12px;
    color:#666;
    text-transform:uppercase;
    letter-spacing:0.5px;
}

.profile-films-card{
    overflow:hidden;
}

.profile-films-grid{
    margin-top:18px;
}

.profile-count{
    color:#666;
    font-size:13px;
    font-weight:600;
}

/* =======================
   CATEGORIES PAGE
======================= */

.categories-hero{
    padding:28px;
}

.categories-toolbar{
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
}

.category-search{
    flex:1;
    min-width:min(420px,100%);
    padding:14px 18px;
    border-radius:999px;
    border:1px solid rgba(0,0,0,0.12);
    background:white;
    color:#111;
    font-size:14px;
    outline:none;
}

.categories-grid{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.category-card{
    padding:22px;
}

.category-card-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:18px;
}

.category-card-header p{
    margin-top:6px;
    color:#666;
    font-size:13px;
}

.category-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:8px 12px;
    border-radius:999px;
    background:#111;
    color:white;
    font-size:12px;
    font-weight:700;
    white-space:nowrap;
}

.category-film-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
    gap:14px;
}

.category-film-card{
    text-decoration:none;
    color:inherit;
    border-radius:16px;
    overflow:hidden;
    border:1px solid rgba(0,0,0,0.08);
    background:white;
    transition:.25s;
}

.category-film-card:hover{
    transform:translateY(-3px);
    box-shadow:0 14px 30px rgba(0,0,0,0.12);
}

.category-film-poster{
    aspect-ratio:2/3;
    background:#eee;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}

.category-film-poster img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.category-film-meta{
    padding:12px;
    display:flex;
    flex-direction:column;
    gap:6px;
}

.category-film-meta strong{
    font-size:13px;
    line-height:1.3;
}

.category-film-meta span{
    font-size:11px;
    color:#777;
}

/* =======================
   DARK MODE EXTRA
======================= */

body.dark-mode .profile-header-card,
body.dark-mode .profile-card,
body.dark-mode .categories-hero,
body.dark-mode .category-card,
body.dark-mode .stat-card,
body.dark-mode .category-film-card{
    background:#151922;
    border-color:rgba(255,255,255,0.12);
    box-shadow:0 16px 40px rgba(0,0,0,0.35);
}

body.dark-mode .profile-kicker,
body.dark-mode .profile-description,
body.dark-mode .profile-card-text,
body.dark-mode .stat-label,
body.dark-mode .profile-count,
body.dark-mode .category-card-header p,
body.dark-mode .category-film-meta span{
    color:#b9c1cd;
}

body.dark-mode .profile-avatar{
    background:linear-gradient(135deg,#f5f7fa,#8b95a7);
    color:#0d0f12;
}

body.dark-mode .nav-user-badge{
    border-color:rgba(255,255,255,0.2);
    background:rgba(14,19,31,0.6);
}

body.dark-mode .nav-user-avatar{
    background:#2a3550;
}

body.dark-mode .account-btn-avatar{
    background:#2a3550;
    color:#f5f7fa;
}

body.dark-mode .profile-bio{
    color:#d3d9e4;
}

body.dark-mode .category-search,
body.dark-mode .stat-card,
body.dark-mode .category-film-card .film-info,
body.dark-mode .category-pill{
    border-color:rgba(255,255,255,0.18);
}

body.dark-mode .category-search{
    background:#0f131b;
    color:#f2f2f2;
}

body.dark-mode .category-pill{
    background:#f5f7fa;
    color:#0d0f12;
}

body.dark-mode .stat-card{
    background:#10141d;
}

body.dark-mode .category-film-card{
    color:#f2f2f2;
}

@media(max-width:800px){
    .friends-grid{
        grid-template-columns:1fr 1fr;
    }

    .profile-grid{
        grid-template-columns:1fr;
    }

    .profile-header-card{
        flex-direction:column;
        align-items:flex-start;
    }
}

@media(max-width:480px){
    .friends-grid{
        grid-template-columns:1fr;
    }

    .stats-grid{
        grid-template-columns:1fr;
    }

    .category-card-header,
    .categories-toolbar{
        flex-direction:column;
        align-items:stretch;
    }
}