﻿:root {
    --orange: #ff7a00; /*Dark Orange*/
    --orange2: #ff9a33; /*Light Orange*/
    --cream: #fff2df; /*Faded off colour*/
    --cream2: #ffe7c6; /*Slightly Darker - phone bg*/
    --ink: #2a1f16; /*Nearly Black - text colour*/

    /*shadows*/
    --shadow: 0 14px 32px rgba(0,0,0,0.16); 
    --shadow2: 0 10px 22px rgba(0,0,0,0.12); 
    --btnShadow:rgba(0,0,0,0.16); 
    --btnHover:rgba(0,0,0,0.6); 

    --radius: 50px;
    --innerRadius: 40px;
    --textShadow: 0 4px 0 rgba(120,50,0,.25), 0 10px 22px rgba(0,0,0,.16);
    --orangeBg: linear-gradient(135deg, var(--orange), var(--orange2));

    /*Bold accent colours*/
    --red: #ff2d55;
    --blue: #1f9bff;
    --yellow: #ffe257;
}

* {
    box-sizing: border-box;
}

html, body {
    height: 100%;
}

body {
    margin: 0;
    font-family: ui-rounded, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    background: #fff7ee;
    color: var(--ink);
}

form {
    display:flex;
    flex-direction:column;
}

.phone {
    align-self: center;
    width:100%;
    max-width: 750px;
    margin: 0 auto;
    min-height: 100%;
    background: var(--cream2);
    margin: 20px;
    border-radius: var(--radius);
    border: 15px solid var(--cream2);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    gap: 15px;
}

/* TOP BAR */
.brand {
    background: var(--orangeBg);
    padding: 18px 16px 16px;
    position: relative;
    overflow: hidden;
}

    .brand::before {
        content: "";
        position: absolute;
        inset: -140px -120px auto auto;
        width: 320px;
        height: 320px;
        border-radius: 999px;
        background: radial-gradient(circle at 30% 30%, rgba(255,226,87,.55), transparent 60%), radial-gradient(circle at 70% 70%, rgba(31,155,255,.22), transparent 62%);
        transform: rotate(10deg);
    }

/* Logo */
.logo {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}
    .logo img {
        max-height:100px;
    }

/* Chips */
.top-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

.chip {
    border: 0;
    cursor: pointer;
    font-weight: 950;
    font-size: 14px;
    padding: 10px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.18);
    color: #fff;
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.22);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    user-select: none;
}

    .chip:active {
        transform: translateY(1px);
    }

.chip-icon {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: rgba(0,0,0,.10);
}

/* CONTENT */
.content {
    padding: 6px 14px 18px;
}

/* HERO */
.hero {
    background: var(--orangeBg);
    padding: 14px;
    text-align: center;
    color: var(--cream);
    position: relative;
    overflow: hidden;
}


    .hero::before {
        content: "";
        position: absolute;
        inset: -140px -120px auto auto;
        width: 320px;
        height: 320px;
        border-radius: 999px;
        background: radial-gradient(circle at 30% 30%, rgba(31,155,255,.25), transparent 60%), radial-gradient(circle at 70% 70%, rgba(255,226,87,.55), transparent 62%);
        transform: rotate(10deg);
    }

.hero-title {
    margin: 0;
    position: relative;
    z-index: 1;
    font-size: 30px;
    font-weight: 1000;
    letter-spacing: .2px;
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: center;
    text-shadow: var(--textShadow);
}

.mic {
    filter: drop-shadow(0 8px 10px rgba(0,0,0,.12));
}

.live-word {
    color: var(--yellow);
    text-shadow: var(--textShadow);
}

.hero-sub {
    margin: 10px 0 14px;
    position: relative;
    z-index: 1;
    font-size: 20px;
    line-height: 1.35;
    text-shadow: var(--textShadow);
}

.hero-setup {
    margin: 10px 0 14px;
    position: relative;
    display:flex;
    flex-direction:row;
    gap:20px;
    align-items:stretch;
}
@media (max-width:600px) {
    .hero-setup {
        flex-direction:column;
    }
}
    .hero-avatar {
        flex:0 1 200px;
    }
        .hero-avatar img {
            max-height: 200px;
        }
        .hero-avatar .btn-small {
            width:100%;
            margin-top:10px;
        }

    .hero-inputs {
        flex:1 0 auto;
        display:flex;
        flex-direction:column;
        justify-content:stretch;
        gap:20px;
    }
        .hero-inputs-row {
            display: flex;
            flex-direction: column;
            align-items: stretch;
            text-align: left;
            gap: 5px;
        }
            .hero-inputs-row p {
                margin:0px;
                font-size:20px;
            }
            .hero-inputs-row input[type=text] {
                padding:10px 5px;
                font-size:18px;
                
            }

.hero-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: stretch;
    position: relative;
    z-index: 1;
}

/* Big CTA */
.btn-big {
    flex: 1 1 220px;
    border: 0;
    cursor: pointer;
    border-radius: var(--radius);
    padding: 16px 16px;
    font-size: 30px;
    font-weight: 1000;
    color: #fff;
    background: linear-gradient(135deg, var(--red), var(--orange));
    box-shadow: 0 7px 30px var(--btnShadow);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 5px solid var(--cream2);
    text-shadow: var(--textShadow);
    transition: box-shadow linear 0.1s, transform linear 0.1s;
}

    .btn-big:hover {
        box-shadow: 0 7px 30px var(--btnHover);
    }

    .btn-big:active {
        transform: translateY(5px);
        box-shadow: 0 -7px 30px var(--btnHover);
    }


.btn-icon {
    width: 34px;
    height: 34px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.18);
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.22);
}

/* LIVE SECTION */
.section-title {
    margin: 14px 2px 10px;
}

    .section-title h2 {
        margin: 0;
        font-size: 20px;
        font-weight: 1000;
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .section-title p {
        margin: 4px 0 0;
        opacity: .75;
        font-size: 14px;
    }

.badge-dot {
    width: 28px;
    height: 28px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: rgba(255,122,0,.14);
    box-shadow: inset 0 0 0 2px rgba(255,122,0,.18);
}

/* Grid */
.grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    padding-bottom: 6px;
}

@media (min-width: 520px) {
    .grid {
        grid-template-columns: 1fr 1fr;
    }
}

/* Card */
.card {
    background: rgba(255,255,255,.92);
    border-radius: 24px;
    box-shadow: var(--shadow2);
    padding: 12px;
    position: relative;
    overflow: hidden;
    border: 2px solid rgba(255,122,0,.10);
}

    .card::before {
        content: "";
        position: absolute;
        inset: auto -70px -90px auto;
        width: 240px;
        height: 240px;
        border-radius: 999px;
        background: radial-gradient(circle at 30% 30%, rgba(255,122,0,.22), transparent 60%), radial-gradient(circle at 70% 70%, rgba(31,155,255,.16), transparent 62%);
        transform: rotate(-12deg);
    }

.card-top {
    position: relative;
    z-index: 1;
    display: flex;
    gap: 10px;
    align-items: center;
}

.avatar {
    width: 62px;
    height: 62px;
    border-radius: 22px;
    background: linear-gradient(135deg, rgba(255,226,87,.55), rgba(80,210,255,.35));
    display: grid;
    place-items: center;
    box-shadow: inset 0 0 0 2px rgba(0,0,0,.06);
    overflow: hidden;
    flex: 0 0 auto;
}

    .avatar img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

.station {
    margin: 0;
    font-weight: 1000;
    font-size: 16px;
    line-height: 1.1;
}

.host {
    margin: 3px 0 0;
    opacity: .8;
    font-size: 13px;
}

.live-badge {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 1000;
    font-size: 12px;
    padding: 8px 10px;
    border-radius: 999px;
    background: rgba(255,45,85,.10);
    color: #b0002a;
    box-shadow: inset 0 0 0 2px rgba(255,45,85,.18);
    user-select: none;
}

.spark {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--red);
    box-shadow: 0 0 0 6px rgba(255,45,85,.10);
    animation: pulse 1.15s infinite;
}

@keyframes pulse {
    0% {
        transform: scale(1);
        opacity: 1;
    }

    70% {
        transform: scale(1.22);
        opacity: .6;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }
}
.avatar-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 12px;
}
    .avatar-grid button {
        max-width: 100%;
    }
    .avatar-grid button img {
        max-width:100%;
    }
    #cancelAvatar {
        margin-top:20px;
    }

.card-bottom {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 10px;
}

.listeners {
    border-radius: 999px;
    padding: 10px 12px;
    font-weight: 950;
    font-size: 14px;
    background: rgba(31,155,255,.12);
    box-shadow: inset 0 0 0 2px rgba(31,155,255,.16);
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.btn-listen {
    border: 0;
    cursor: pointer;
    border-radius: 999px;
    padding: 12px 14px;
    font-weight: 1000;
    font-size: 14px;
    background: linear-gradient(135deg, rgba(255,122,0,1), rgba(255,226,87,1));
    transition:background ease-in-out 0.5s;
    box-shadow: 0 14px 22px rgba(255,122,0,.16);
    color: #2a1f16;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

    .btn-listen:active {
        transform: translateY(1px);
    }

    .btn-listen:hover {
        background: linear-gradient(135deg, rgba(255,226,87,1), rgba(255,122,0,1));
    }

/* Footer */
.footer {
    text-align: center;
    font-weight: 900;
    font-size: 15px;
    padding: 10px;
    background: var(--orangeBg);
    margin-top:auto;
    color:var(--cream);
}



/*New Broadcast*/
.btn-small {
    border: 0;
    cursor: pointer;
    border-radius: 18px;
    padding: 12px 12px;
    min-height: 48px;
    font-size: 16px;
    font-weight: 950;
    color: #1c2b30;
    background: linear-gradient(135deg, var(--yellow), rgba(255,226,87,.75));
    box-shadow: 0 12px 22px rgba(255,226,87,.20);
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: center;
}

    .btn-small.blue {
        background: linear-gradient(135deg, rgba(80,210,255,.95), rgba(31,155,255,.95));
        color: var(--cream2);
        box-shadow: 0 12px 22px rgba(31,155,255,.18);
    }
    .btn-small.red {
        background: linear-gradient(135deg, #ff2d55, #b90729d9);
        color: var(--cream2);
        box-shadow: 0 12px 22px rgba(31,155,255,.18);
    }

    .btn-small:active {
        transform: translateY(1px);
    }

.btn-small-icon {
    width: 28px;
    height: 28px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.18);
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.20);
}

.broadcasting-grid {
    display: grid;
    grid-template-columns: 300px 1fr;
    grid-template-rows: auto auto;
    grid-template-areas: "roomInfo soundBoard" "chat chat";
    grid-gap: 20px;
}
@media (max-width:600px) {
    .broadcasting-grid {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto;
        grid-template-areas:"roomInfo" "soundBoard" "chat";
    }
}

    /*avatar + room info*/
    .broadcasting-header {
        grid-area:roomInfo;
        text-align:center;
    }
        .broadcasting-header .live-badge {
            font-size: 20px;
            margin-bottom: 10px;
        }
        .broadcasting-header .spark {
            width: 16px;
            height: 16px;
        }

        .broadcasting-header img {
            width: 100%;
            max-width:300px;
        }
        .broadcasting-header #broadcastHost {
            font-size: 25px;
            font-weight: bold;
            text-transform: uppercase;
            text-shadow: var(--textShadow);
            margin:20px 0 0 0;
        }
        .broadcasting-header #broadcastingShowName {
            font-size: 20px;
            font-weight: bold;
            margin:0 0 20px 0;
        }

        .broadcasting-header #broadcastListeners, .broadcasting-header #broadcastingDuration {
            background-color:var(--orange);
            color:white;
            margin:5px 0px;
            padding:5px 10px;
            font-size:18px;
        }

            #btnEndBroadcast {
                margin-top:15px;
                width:100%;
            }

        .broadcasting-actions {
            grid-area: soundBoard;
        }

            #sfxGrid {
                display: grid;
                grid-template-columns: repeat(auto-fill, minmax(80px, 0.5fr));
                gap: 12px;
            }

                .sfx-tile {
                    width: 100%;
                    border: none;
                    background: none;
                    padding: 0;
                    cursor: pointer;
                }

                    .sfx-tile img {
                        width: 100%;
                        height: 100%;
                        border-radius: 22px;
                        transition: transform 0.08s ease, filter 0.08s ease;
                    }

                    .sfx-tile:active img {
                        transform: scale(0.94);
                        filter: brightness(0.9);
                    }


    .broadcasting-chat {
        margin-top:20px;
        grid-area:chat;

        display:grid;
        grid-template-columns:1fr;
        grid-template-rows:auto 1fr auto;
        grid-template-areas:"chatActions" "chatHistory" "chatMessage";
        grid-gap:10px;
    }
        .chat-people, .chat-actions,.chat-box,.chat-message {
            background-color:var(--cream);
            padding:15px;
            border-radius:10px;
            
        }

        .chat-people {
            grid-area:chatPeople;
            overflow:hidden;
            overflow-y:auto;
        }
            .chat-people h3 {
                margin: 0;
                border-bottom: 1px solid var(--blue);
                padding-bottom: 10px;
            }
            .chat-people ul {
                margin: 0;
                padding: 0;
                margin-top: 10px;
            }
            .chat-people li {
                list-style: none;
                padding:5px;
                margin:5px;
                background-color:var(--orangeBg);
            }

        .chat-actions {
            grid-area:chatActions;
            display:flex;
            gap:15px;
        }
            .chat-actions img {
                height: 100%;
                flex: 0 0 60px;
                max-width: 60px;
            }
            .chat-actions label {
                flex:1 1 auto;
                font-size:15px;
                font-weight:bold;
                line-height:100%;
            }
            .chat-actions input {
                flex:1 1 auto;
                border:none;
                font-size:20px;
                padding-left:10px;
            }
            .chat-actions button {
                flex:0 1 auto;
            }

            @media (max-width:600px) {
                .chat-actions {
                    flex-wrap:wrap;
                }
                .chat-actions button {
                    flex:0 0 100%;
                    width:100%;
                }
            }

        .chat-box {
            grid-area:chatHistory;

            height:300px;
            overflow-y:scroll;
        }
            .chat-box--message.guest, .chat-box--message.host {
                margin:10px;
                display: inline-block;
            }
                .chat-box--message.chatGuest {
                    margin:10px auto 10px 0px;
                    text-align:left;
                }
                .chat-box--message.chatHost {
                    margin:10px 0px 10px auto;
                    text-align:right;
                }

                .chat--message {
                    color: white;
                    padding: 10px;
                    border-radius: 10px;
                    font-size: 15px;
                    margin-bottom: 2px;
                    display:inline-block;
                }
                    .chatGuest .chat--message {
                        background-color: var(--orange2);
                    }
                    .chatHost .chat--message {
                        background-color: var(--blue);
                    }

                .chat--from {
                    color:rgb(0, 64, 116);
                    font-size:13px;
                }

        .chat-message {
            grid-area:chatMessage;
            display:grid;
            grid-template-columns:1fr 100px;
            grid-template-rows:auto;
            grid-gap:15px;
        }
        @media (max-width:600px) {
            .chat-message {
                grid-template-columns:1fr;
                grid-template-rows:auto 50px;
            }
        }
            .chat-message input {
                height:100%;
                padding:10px;
                border:none;
                font-size:16px;
                width:100%;
                text-align:left;
            }
            .chat-message button {
                font-size: 16px;
                width: 100%;
                text-align:center;
            }

.hidden {
    display:none;
}

.listenHero {
    background: linear-gradient(180deg, #fff, #fff6ee);
    border: 2px solid rgba(255,122,0,.22);
    border-radius: var(--radius2);
    box-shadow: var(--shadow);
    padding: 14px;
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 12px;
    align-items: center;
    margin-bottom: 14px;
}

.listenHero__icon {
    width: 56px;
    height: 56px;
    border-radius: 18px;
    background: linear-gradient(180deg, var(--orange), #ff5500);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    box-shadow: 0 10px 18px rgba(255,122,0,.24);
}

.listenHero__text h1 {
    margin: 0;
    font-size: 18px;
    font-weight: 1000;
}

.listenHero__text p {
    margin: 4px 0 0;
    font-weight: 700;
    opacity: .75;
    font-size: 13px;
}

.listenHero__fineprint {
    grid-column: 1 / -1;
    font-size: 12px;
    font-weight: 800;
    opacity: .7;
    margin-top: 8px;
}

.broadcastCard {
    display: grid;
    grid-template-columns: 140px 1fr;
    gap: 14px;
    padding: 14px;
    border-radius: var(--radius2);
    background: #fff;
    border: 2px solid rgba(255,122,0,.18);
    box-shadow: var(--shadow);
}

.listenAvatarWrap {
    position: relative;
    width: 140px;
    height: 140px;
    border-radius: 28px;
    background: linear-gradient(180deg, #fff0e2, #ffe4cc);
    border: 2px solid rgba(255,122,0,.22);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.listenAvatar {
    width: 112px;
    height: 112px;
    border-radius: 26px;
    background: #fff;
    border: 2px solid rgba(0,0,0,.06);
    box-shadow: 0 10px 18px rgba(0,0,0,.08);
}

.listenBadge {
    position: absolute;
    left: 10px;
    top: 10px;
    padding: 8px 10px;
    border-radius: 999px;
    background: linear-gradient(180deg, #00d88f, #00b878);
    color: #fff;
    font-weight: 1000;
    font-size: 12px;
    letter-spacing: .6px;
    box-shadow: 0 12px 20px rgba(0,184,120,.20);
}

.showTitle {
    font-size: 20px;
    font-weight: 1000;
    line-height: 1.12;
    margin: 2px 0 10px;
}

.metaRow {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 10px;
}

.metaPill {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 999px;
    background: #fff7ef;
    border: 2px solid rgba(255,122,0,.16);
    font-weight: 800;
    font-size: 13px;
}

.metaIcon {
    font-size: 16px;
}