:root{
    --bg:#040b10;
    --cyan:#22e6c8;
    --blue:#19b7ff;
    --red:#ff3b5c;
    --green:#31ff9a;
    --yellow:#ffd54a;
    --text:#d8fbf5;
}

*{
    box-sizing:border-box;
}

body{
    margin:0;
    background:radial-gradient(circle at 20% 10%,#062731,var(--bg) 55%);
    color:var(--text);
    font:16px/1.5 system-ui,sans-serif;
}

.circuit-bg{
    position:fixed;
    inset:0;
    pointer-events:none;
    opacity:.22;
    background:
        linear-gradient(90deg,transparent 49%,rgba(34,230,200,.25) 50%,transparent 51%) 0 0/60px 60px,
        linear-gradient(0deg,transparent 49%,rgba(25,183,255,.18) 50%,transparent 51%) 0 0/60px 60px;
    animation:circuit 8s linear infinite;
}

@keyframes circuit{
    to{
        background-position:60px 0,0 60px;
    }
}

.wrap{
    max-width:1250px;
    margin:auto;
    padding:20px;
}

.topbar{
    display:flex;
    justify-content:space-between;
    padding:14px 22px;
    background:rgba(4,18,24,.92);
    border-bottom:1px solid rgba(34,230,200,.3);
    position:sticky;
    top:0;
    z-index:5;
}

.brand{
    color:#fff;
    text-decoration:none;
    font-weight:800;
    font-size:22px;
}

.accent{
    color:var(--cyan);
}

.brand .led{
    display:inline-block;
    width:10px;
    height:10px;
    border-radius:50%;
    background:var(--cyan);
    box-shadow:0 0 12px var(--cyan);
    animation:pulse 1.4s infinite;
}

@keyframes pulse{
    50%{
        opacity:.3;
    }
}

nav a{
    color:var(--cyan);
    text-decoration:none;
    margin-left:14px;
}

.panel{
    background:linear-gradient(145deg,rgba(7,24,32,.96),rgba(10,36,48,.9));
    border:1px solid rgba(34,230,200,.25);
    border-radius:16px;
    padding:24px;
    margin:18px 0;
}

.narrow{
    max-width:560px;
    margin:auto;
}

.neon{
    font-size:clamp(42px,9vw,90px);
    color:#fff;
    text-shadow:0 0 8px var(--cyan),0 0 25px var(--blue);
    animation:flicker 4s infinite;
}

.neon span{
    color:var(--cyan);
}

@keyframes flicker{
    0%,92%,100%{
        opacity:1;
    }
    94%{
        opacity:.55;
    }
}

.tagline{
    color:var(--cyan);
    letter-spacing:3px;
    text-transform:uppercase;
}

.led-row{
    display:flex;
    gap:8px;
    justify-content:center;
    margin:18px 0;
}

.led-row i{
    width:14px;
    height:14px;
    border-radius:50%;
    background:#123;
}

.led-row i.on{
    background:var(--cyan);
    box-shadow:0 0 14px var(--cyan);
}

.digit-grid{
    display:grid;
    grid-template-columns:repeat(6,minmax(52px,1fr));
    gap:10px;
    max-width:640px;
    margin:auto;
}

.digit{
    background:#02141b;
    border:1px solid rgba(34,230,200,.35);
    border-radius:10px;
    padding:16px 0;
    text-align:center;
    font-size:26px;
    font-weight:800;
    color:var(--cyan);
}

.digit.spin{
    animation:spin .35s linear infinite;
    color:#fff;
}

.digit.done{
    color:var(--green);
    border-color:var(--green);
}

.digit.danger{
    border-color:rgba(255,59,92,.55);
}

@keyframes spin{
    to{
        transform:rotateY(360deg);
    }
}

.draw-box{
    display:grid;
    grid-template-columns:1fr auto;
    gap:20px;
}

.side-timers{
    display:grid;
    gap:10px;
    min-width:210px;
}

.timer{
    background:#02141b;
    border:1px solid rgba(34,230,200,.25);
    border-radius:10px;
    padding:10px 14px;
}

.timer span{
    display:block;
    font-size:12px;
    color:#7fd;
}

.timer.big strong{
    font-size:30px;
    color:var(--cyan);
}

.btn{
    background:#0b2b36;
    color:var(--cyan);
    border:1px solid var(--cyan);
    padding:10px 18px;
    border-radius:9px;
    cursor:pointer;
    font-weight:700;
}

.btn.primary{
    background:linear-gradient(90deg,#0d5f6e,#0a3d63);
    color:#fff;
}

.btn.danger{
    border-color:var(--red);
    color:var(--red);
}

.btn.small{
    padding:5px 9px;
    font-size:13px;
}

.form{
    display:grid;
    gap:12px;
}

.form label{
    display:grid;
    gap:5px;
    font-size:14px;
}

input,select,textarea{
    background:#02141b;
    border:1px solid rgba(34,230,200,.35);
    color:var(--text);
    padding:10px;
    border-radius:8px;
    width:100%;
}

.flash{
    background:rgba(49,255,154,.12);
    border:1px solid var(--green);
    padding:12px;
    border-radius:10px;
}

.error{
    color:var(--red);
}

.small{
    color:#8fd;
    font-size:13px;
}

.grid2{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
    gap:16px;
}

.card{
    background:#02141b;
    border:1px solid rgba(34,230,200,.2);
    border-radius:12px;
    padding:16px;
}

.ticket-grid{
    display:grid;
    grid-template-columns:repeat(10,1fr);
    gap:5px;
}

.cell{
    aspect-ratio:1;
    display:grid;
    place-items:center;
    background:#04202a;
    border:1px solid rgba(34,230,200,.2);
    border-radius:6px;
    font-size:13px;
    cursor:pointer;
}

.cell input{
    display:none;
}

.cell.selected{
    background:rgba(255,59,92,.25);
    border-color:var(--red);
    color:#fff;
}

.cell.hit{
    background:rgba(49,255,154,.25);
    border-color:var(--green);
}

.ticket-selector{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:16px;
}

.ticket h4{
    margin:0 0 8px;
    color:var(--cyan);
}

.submit-bar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-top:18px;
    flex-wrap:wrap;
    gap:12px;
}

.winning{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

.ball{
    width:44px;
    height:44px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:radial-gradient(circle at 30% 30%,#0e5f6d,#03222b);
    border:1px solid var(--cyan);
    font-weight:800;
}

.packages{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
    gap:14px;
}

.package{
    background:#02141b;
    border:1px solid rgba(34,230,200,.3);
    border-radius:12px;
    padding:14px;
    display:grid;
    gap:8px;
}

.stats{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
    gap:12px;
}

.stat{
    background:#02141b;
    border:1px solid rgba(34,230,200,.25);
    border-radius:12px;
    padding:14px;
}

table{
    width:100%;
    border-collapse:collapse;
}

th,td{
    border-bottom:1px solid rgba(34,230,200,.15);
    padding:9px;
    text-align:left;
}

th{
    color:var(--cyan);
}

.inline{
    display:flex;
    gap:10px;
    align-items:end;
    flex-wrap:wrap;
}

.secret{
    display:block;
    background:#000;
    padding:8px;
    color:var(--green);
}

.footer{
    padding:25px;
    text-align:center;
    color:#7fd;
    border-top:1px solid rgba(34,230,200,.2);
    margin-top:30px;
}

/* Neue Tippschein-Karten */
.ticket-card{
    background:#02141b;
    border:2px solid var(--red);
    border-radius:12px;
    padding:14px;
    box-shadow:0 0 12px rgba(255,59,92,.35);
}

.ticket-card h4{
    margin:0 0 8px;
    color:var(--cyan);
}

.ticket-info{
    font-size:14px;
    line-height:1.6;
    margin:0 0 10px;
    color:var(--text);
}

.ticket-card .cell{
    aspect-ratio:auto;
    min-height:32px;
    padding:4px;
}

.ticket-card .cell.selected{
    background:rgba(255,59,92,.3);
    border-color:var(--red);
    box-shadow:0 0 8px rgba(255,59,92,.7);
    color:#fff;
}

/* Meine Tippscheine dieser Runde */
.my-tickets{
    display:grid;
    gap:12px;
}

.my-ticket{
    background:#02141b;
    border:1px solid rgba(34,230,200,.25);
    border-radius:12px;
    padding:12px 16px;
}

.my-ticket h4{
    margin:0 0 8px;
    color:var(--cyan);
}

.my-numbers{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 8px;
}

.mini-cell{
    display:inline-grid;
    place-items:center;
    min-width:38px;
    height:32px;
    padding:0 8px;
    background:#04202a;
    border:1px solid rgba(34,230,200,.3);
    border-radius:6px;
    font-size:13px;
    font-weight:700;
    color:var(--text);
}

.mini-cell.hit{
    background:rgba(49,255,154,.25);
    border-color:var(--green);
    color:var(--green);
    box-shadow:0 0 10px rgba(49,255,154,.7);
}

/* ---------- Finale Mobile-Optimierung ---------- */

@media (max-width:760px){

    .wrap{
        padding:10px 8px;
    }

    .panel{
        padding:12px 10px;
        margin:10px 0;
    }

    .topbar{
        flex-direction:column;
        align-items:flex-start;
        gap:6px;
        padding:8px 10px;
    }

    .brand{
        font-size:18px;
    }

    nav{
        display:flex;
        flex-wrap:wrap;
        gap:4px 8px;
    }

    nav a{
        margin-left:0;
        font-size:13px;
    }

    /* Gewinnzahlenziehung kompakt */
    .draw-box{
        display:block;
    }

    .draw-box > div{
        width:100%;
        margin-bottom:10px;
    }

    .timer{
        padding:5px 7px;
    }

    .timer span{
        font-size:10px;
    }

    .timer.big strong{
        font-size:18px;
    }

    .side-timers{
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:5px;
        min-width:0;
    }

    .led-row{
        gap:2px;
        margin:6px 0;
    }

    .led-row i{
        width:4px;
        height:8px;
    }

    .digit-grid{
        display:grid;
        grid-template-columns:repeat(6,minmax(0,1fr));
        gap:3px;
        max-width:100%;
        margin:8px auto;
    }

    .digit{
        padding:4px 0;
        font-size:13px;
        border-radius:6px;
        min-width:0;
    }

    /* Tippscheine kompakt */
    .ticket-selector{
        display:block;
    }

    .ticket-card{
        margin-bottom:12px;
        padding:6px;
    }

    .ticket-card h4{
        font-size:14px;
        margin-bottom:4px;
    }

    .ticket-info{
        font-size:11px;
        line-height:1.4;
        margin-bottom:6px;
    }

    .ticket-grid{
        display:grid;
        grid-template-columns:repeat(8,minmax(0,1fr));
        gap:2px;
    }

    .ticket-card .cell{
        aspect-ratio:auto;
        min-height:20px;
        padding:0;
        font-size:10px;
        border-radius:4px;
    }

    /* Eigene Tippscheine */
    .my-tickets{
        display:block;
    }

    .my-ticket{
        margin-bottom:8px;
        padding:8px 10px;
    }

    .my-numbers{
        gap:3px;
    }

    .mini-cell{
        min-width:24px;
        height:20px;
        padding:0 4px;
        font-size:10px;
    }

    /* Absenden */
    .submit-bar{
        display:block;
        text-align:center;
    }

    .submit-bar button{
        width:100%;
        margin-top:8px;
        padding:10px;
    }

    /* Ergebnis */
    .winning{
        gap:5px;
    }

    .ball{
        width:28px;
        height:28px;
        font-size:12px;
    }

    table{
        display:block;
        overflow-x:auto;
        white-space:nowrap;
    }
}

@media (max-width:380px){

    .digit-grid{
        grid-template-columns:repeat(6,minmax(0,1fr));
        gap:2px;
    }

    .digit{
        font-size:11px;
        padding:3px 0;
    }

    .ticket-grid{
        grid-template-columns:repeat(8,minmax(0,1fr));
        gap:2px;
    }

    .ticket-card .cell{
        min-height:18px;
        font-size:9px;
    }

    .led-row i{
        width:3px;
        height:7px;
    }

    .mini-cell{
        min-width:22px;
        height:18px;
        font-size:9px;
    }

    .ball{
        width:26px;
        height:26px;
        font-size:11px;
    }
}