*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#050505;color:#f4f4f4;font-family:Inter,system-ui,sans-serif;background-image:radial-gradient(circle at 10% 0%,rgba(130,0,0,.17),transparent 28%),radial-gradient(circle at 100% 100%,rgba(90,0,0,.12),transparent 32%)}a{color:inherit}.login-page{display:grid;place-items:center}.login-wrap{width:min(460px,calc(100% - 30px))}.login-card,.admin-panel{background:rgba(14,14,14,.95);border:1px solid #292929;border-radius:18px;box-shadow:0 30px 90px rgba(0,0,0,.45)}.login-card{padding:34px}.brand-xl,.floating-logo{font-weight:900;letter-spacing:-.04em;background:linear-gradient(180deg,#fafafa,#777);-webkit-background-clip:text;color:transparent;text-shadow:0 0 28px rgba(200,0,0,.22)}.brand-xl{font-size:36px}.brand-sub,.eyebrow{font-size:10px;letter-spacing:.2em;color:#8a8a8a}.login-card h1{margin:32px 0 5px}.login-card p,.lead{color:#8c8c8c}.login-card form,.stack-form{display:flex;flex-direction:column;gap:14px;margin-top:24px}.login-card label,.stack-form label{display:flex;flex-direction:column;gap:7px;color:#a0a0a0;font-size:12px}.login-card input,.stack-form input,.stack-form select{width:100%;background:#080808;border:1px solid #333;border-radius:10px;color:#fff;padding:13px}.login-card button,.stack-form>button,.permissions-panel form>button{border:1px solid #8a2020;background:linear-gradient(#8c2020,#5f1212);color:#fff;padding:13px 16px;border-radius:10px;font-weight:800}.alert,.success{padding:12px;border-radius:10px;margin:15px 0}.alert{background:#281010;border:1px solid #652020;color:#e8aaaa}.success{background:#102519;border:1px solid #235d36;color:#9edfb0}.portal-header,.dash-header{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;position:relative;z-index:20}.floating-logo{font-size:31px;text-decoration:none;position:absolute;left:34px;top:20px;transform:scale(1.18);transform-origin:left top}.profile{position:relative;margin-left:auto}.profile>button,.square-btn{background:#111;border:1px solid #303030;color:#ddd;border-radius:10px;padding:10px 13px}.profile-menu{position:absolute;right:0;top:48px;width:220px;background:#111;border:1px solid #2d2d2d;border-radius:12px;padding:8px;display:none;box-shadow:0 20px 50px rgba(0,0,0,.5)}.profile-menu.show{display:block}.profile-head{display:flex;flex-direction:column;padding:10px;border-bottom:1px solid #252525;margin-bottom:5px}.profile-head span{font-size:10px;color:#777}.profile-menu a{display:block;text-decoration:none;padding:10px;border-radius:8px;color:#aaa}.portal{min-height:calc(100vh - 94px);display:grid;place-items:center;align-content:center;padding:30px}.portal-copy{text-align:center;margin-bottom:28px}.portal-copy h1{font-size:42px}.portal-grid{display:grid;grid-template-columns:repeat(2,minmax(250px,340px));gap:20px}.portal-card,.module-card{background:linear-gradient(145deg,#161616,#0c0c0c);border:1px solid #2b2b2b;border-radius:17px;text-decoration:none;transition:.25s}.portal-card{padding:38px;text-align:center;min-height:230px}.portal-card:hover,.module-card:hover{transform:translateY(-5px);border-color:#761b1b;box-shadow:0 22px 60px rgba(0,0,0,.42),0 0 30px rgba(190,20,20,.10)}.portal-icon{font-size:48px}.header-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.right-nav{position:fixed;right:0;top:0;bottom:0;width:310px;background:#0e0e0e;border-left:1px solid #2a2a2a;z-index:50;padding:20px;transform:translateX(100%);transition:.25s;display:flex;flex-direction:column;gap:6px}.right-nav.show{transform:translateX(0)}.right-nav-head{display:flex;justify-content:space-between;align-items:center}.right-nav a{padding:12px 13px;text-decoration:none;color:#aaa}.nav-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.58);z-index:45}.nav-overlay.show{display:block}.dashboard-shell{max-width:1450px;margin:0 auto;padding:42px 38px 70px}.dashboard-shell h1{font-size:46px}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-top:30px}.module-card{padding:24px;min-height:190px}.module-icon{font-size:28px}.module-card p{color:#858585}.module-open{font-size:10px;letter-spacing:.15em;color:#a76a6a}.admin-grid{display:grid;grid-template-columns:minmax(280px,430px) 1fr;gap:18px;margin-top:30px}.admin-panel{padding:22px}.user-row{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:13px 0;border-bottom:1px solid #232323}.user-row>div:first-child{display:flex;flex-direction:column}.user-row span{font-size:11px;color:#777}.row-actions{display:flex;align-items:center;gap:8px}.row-actions a,.simple-link{font-size:12px;color:#bbb;text-decoration:none}.mini-btn{font-size:10px;background:#151515;color:#aaa;border:1px solid #333;border-radius:7px;padding:7px}.permissions-panel{margin-top:18px}.perm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px 13px;margin:20px 0}.perm-category{grid-column:1/-1;font-size:10px;letter-spacing:.16em;color:#a34f4f;margin-top:12px}.perm-item{background:#111;border:1px solid #282828;border-radius:9px;padding:11px;display:flex;align-items:center;gap:8px;font-size:12px;color:#bbb}.perm-item input{accent-color:#a51f1f}@media(max-width:900px){.module-grid{grid-template-columns:repeat(2,1fr)}.admin-grid{grid-template-columns:1fr}.perm-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.portal-header,.dash-header{height:80px;padding:0 14px}.floating-logo{left:16px;top:19px;font-size:24px;transform:scale(1.05)}.portal-grid,.module-grid{grid-template-columns:1fr}.portal{padding:18px}.dashboard-shell{padding:30px 16px 50px}.perm-grid{grid-template-columns:1fr}.right-nav{width:min(310px,86vw)}}

.portal-center-logo{
    width:100%;
    display:flex;
    justify-content:center;
    align-items:center;
    margin-bottom:26px;
}

.portal-center-logo img{
    width:260px;
    max-width:70vw;
    height:auto;
    object-fit:contain;
    display:block;
    filter:drop-shadow(0 0 18px rgba(255,0,0,.18));
}

/* Portal Logo größer */
.portal-center-logo img{
    width:450px;
    max-width:85vw;
    height:auto;
}

/* Portal Logo XXL */
.portal-center-logo img{
    width:1350px;
    max-width:90vw;
    height:auto;
    object-fit:contain;
}

/* Portal Logo größer */
.portal-center-logo img{
    width:450px;
    max-width:85vw;
    height:auto;
}

/* =========================================================
   QBOARD MUSIC FLOATING SLIDER
   ========================================================= */

.qmusic-player{
    left:auto !important;
    right:18px !important;
    bottom:18px !important;

    width:360px !important;
    min-height:0 !important;

    display:grid !important;
    grid-template-columns:1fr !important;

    gap:8px !important;

    padding:12px 14px !important;

    border:1px solid #303030 !important;
    border-radius:14px !important;

    background:
        linear-gradient(
            145deg,
            rgba(20,20,20,.98),
            rgba(7,7,7,.99)
        ) !important;

    box-shadow:
        0 15px 50px
        rgba(0,0,0,.55) !important;

    transition:
        width .25s ease,
        padding .25s ease,
        transform .25s ease !important;
}


/* Eingeklappt */
.qmusic-player.qmusic-collapsed{
    width:260px !important;
}


.qmusic-player.qmusic-collapsed
.qmusic-progress,

.qmusic-player.qmusic-collapsed
.qmusic-volume{
    display:none !important;
}


/* Titel */
.qmusic-player
.qmusic-now{
    padding-right:34px;
}


/* Collapse Button */
.qmusic-toggle{
    position:absolute;

    top:8px;
    right:8px;

    width:28px;
    height:28px;

    display:flex;
    align-items:center;
    justify-content:center;

    border:1px solid #303030;
    border-radius:8px;

    background:#0d0d0d;
    color:#888;

    cursor:pointer;

    font-size:12px;
}


.qmusic-toggle:hover{
    color:#fff;
    border-color:#702020;
}


/* Controls kompakt */
.qmusic-player
.qmusic-controls{
    justify-content:flex-start !important;
}


.qmusic-player
.qmusic-btn{
    width:32px !important;
    height:32px !important;
}


.qmusic-player
.qmusic-btn.main{
    width:36px !important;
    height:36px !important;
}


/* Kein globaler Platzhalter mehr nötig */
body{
    padding-bottom:0 !important;
}


@media(max-width:600px){

    .qmusic-player{
        right:10px !important;
        bottom:10px !important;

        width:calc(100% - 20px) !important;
    }

    .qmusic-player.qmusic-collapsed{
        width:260px !important;
        max-width:calc(100% - 20px) !important;
    }

}



/* QBOARD_PORTAL_V2_START */


/* =========================================================
   QBOARD V2 PORTAL
   ========================================================= */

.qboard-portal-page{

    margin:0;

    min-height:100vh;

    overflow-x:hidden;

    background:
        radial-gradient(
            circle at 14% 5%,
            rgba(145,15,22,.16),
            transparent 30%
        ),
        radial-gradient(
            circle at 92% 95%,
            rgba(110,10,16,.10),
            transparent 32%
        ),
        #050505;

    color:#f4f4f4;
}



/* =========================================================
   HEADER
   d3rQzeng links ist komplett entfernt
   ========================================================= */

.qboard-portal-header{

    position:fixed;

    top:0;
    left:0;
    right:0;

    height:76px;

    z-index:100;

    display:flex;

    align-items:center;

    justify-content:flex-end;

    padding:16px 28px;

    pointer-events:none;
}


.qboard-portal-header .profile{

    pointer-events:auto;

    margin-left:auto;
}


.qboard-portal-header .profile > button{

    background:
        rgba(15,15,15,.92);

    border:
        1px solid #303030;

    color:#ddd;

    border-radius:9px;

    padding:9px 13px;

    cursor:pointer;

    transition:.2s ease;
}


.qboard-portal-header .profile > button:hover{

    border-color:#663036;

    background:#171111;

    color:#fff;
}



/* =========================================================
   HAUPTBEREICH
   ========================================================= */

.qboard-portal{

    min-height:100vh;

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    padding:
        90px 24px 70px;

    text-align:center;
}



/* =========================================================
   LOGO
   ========================================================= */

.qboard-portal-hero{

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    width:100%;

    margin-bottom:28px;
}


.qboard-portal-logo{

    position:relative;

    transform:
        scale(1.55);

    transform-origin:
        center center;

    margin:
        0 auto 56px;

    filter:
        drop-shadow(
            0 0 22px
            rgba(189,59,67,.14)
        );
}


/*
 * etwas stärkerer Glow nur auf dem Portal
 */

.qboard-portal-logo .qv2-logo-q{

    filter:
        drop-shadow(
            0 0 18px
            rgba(189,59,67,.22)
        );
}


.qboard-portal-logo .qv2-logo-text{

    text-shadow:
        0 0 24px
        rgba(189,59,67,.18);
}


.qboard-portal-welcome{

    margin-top:12px;

    color:#656565;

    font-size:9px;

    font-weight:800;

    letter-spacing:.24em;
}


.qboard-portal-hero h1{

    margin:
        18px 0 0;

    font-size:
        clamp(28px,3vw,42px);

    line-height:1.1;

    letter-spacing:-.03em;

    color:#f4f4f4;
}



/* =========================================================
   QBOARD CARD
   ========================================================= */

.qboard-portal-card{

    position:relative;

    width:
        min(390px,calc(100vw - 40px));

    min-height:220px;

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    gap:8px;

    padding:34px;

    overflow:hidden;

    text-decoration:none;

    color:#fff;

    border:
        1px solid #292929;

    border-radius:16px;

    background:
        linear-gradient(
            145deg,
            #151515,
            #090909
        );

    box-shadow:
        0 22px 65px
        rgba(0,0,0,.42);

    transition:
        transform .28s ease,
        border-color .28s ease,
        box-shadow .28s ease,
        background .28s ease;
}


.qboard-portal-card::before{

    content:"";

    position:absolute;

    inset:0;

    opacity:0;

    background:
        radial-gradient(
            circle at 50% 50%,
            rgba(189,59,67,.13),
            transparent 62%
        );

    transition:
        opacity .28s ease;

    pointer-events:none;
}


.qboard-portal-card:hover{

    transform:
        translateY(-7px)
        scale(1.015);

    border-color:#743238;

    background:
        linear-gradient(
            145deg,
            #191112,
            #090909
        );

    box-shadow:
        0 28px 80px
        rgba(0,0,0,.55),
        0 0 35px
        rgba(189,59,67,.10);
}


.qboard-portal-card:hover::before{

    opacity:1;
}



/* Q-Kreis */

.qboard-portal-card-icon{

    position:relative;

    z-index:2;

    width:58px;

    height:58px;

    margin-bottom:8px;

    display:grid;

    place-items:center;

    border:
        2px solid #8c2020;

    border-radius:50%;

    background:#0d0d0d;

    color:#f3f3f3;

    font-size:30px;

    font-weight:950;

    box-shadow:
        0 0 26px
        rgba(181,31,31,.18),
        inset 0 0 18px
        rgba(181,31,31,.09);

    transition:
        transform .28s ease,
        box-shadow .28s ease;
}


.qboard-portal-card:hover
.qboard-portal-card-icon{

    transform:
        scale(1.08);

    box-shadow:
        0 0 35px
        rgba(189,59,67,.28),
        inset 0 0 20px
        rgba(189,59,67,.12);
}


.qboard-portal-card strong{

    position:relative;

    z-index:2;

    font-size:20px;

    font-weight:900;

    letter-spacing:.10em;
}


.qboard-portal-card > span{

    position:relative;

    z-index:2;

    color:#737373;

    font-size:9px;

    font-weight:800;

    letter-spacing:.18em;
}


.qboard-portal-card-open{

    position:relative;

    z-index:2;

    margin-top:15px;

    color:#bd3b43;

    font-size:9px;

    font-weight:900;

    letter-spacing:.16em;

    opacity:.72;

    transition:
        opacity .2s ease,
        transform .2s ease;
}


.qboard-portal-card:hover
.qboard-portal-card-open{

    opacity:1;

    transform:
        translateX(3px);
}



/* =========================================================
   MOBILE
   ========================================================= */

@media(max-width:700px){

    .qboard-portal-header{

        height:66px;

        padding:
            12px 14px;
    }


    .qboard-portal{

        padding:
            90px 18px 45px;
    }


    .qboard-portal-logo{

        transform:
            scale(1.15);

        margin-bottom:
            42px;
    }


    .qboard-portal-hero{

        margin-bottom:
            22px;
    }


    .qboard-portal-card{

        min-height:
            190px;

        padding:
            28px 20px;
    }

}


/* QBOARD_PORTAL_V2_END */

