/* Step 140 - Mobile-only layout
   Diese Datei enthält nur Regeln für kleine Bildschirme.
   Desktop-Layout bleibt in style.css und coffee-duel.css unverändert. */

@media (max-width: 760px) {
    .clean-main-header {
        height: auto !important;
        min-height: 0 !important;
        margin: 0 0 14px;
        padding: 0 10px 10px;
        border-radius: 0 0 18px 18px;
        background-image: none !important;
        background-color: #020914;
        background-size: auto !important;
        background-position: center center !important;
        background-repeat: no-repeat !important;
        overflow: visible;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .mobile-header-banner-img {
        display: block !important;
        position: relative;
        left: auto;
        top: auto;
        width: 100%;
        height: 82px;
        object-fit: cover;
        object-position: center center;
        z-index: 1;
        pointer-events: none;
        user-select: none;
        border-radius: 0 0 14px 14px;
        flex: 0 0 auto;
    }

    .header-right-controls {
        position: relative !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        transform: none !important;
        z-index: 30;
        display: flex;
        justify-content: center;
        width: calc(100% - 20px);
        margin: 6px auto 0;
        flex: 0 0 auto;
    }

    .header-profile-button {
        width: auto;
        min-width: 116px;
        height: 38px;
        padding: 0 8px;
        gap: 8px;
        border-radius: 14px;
        overflow: hidden;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(180deg, rgba(8,35,70,.92), rgba(4,16,34,.98));
        border-color: rgba(104,199,255,.82);
        box-shadow: 0 0 14px rgba(65,174,255,.28), inset 0 0 11px rgba(102,205,255,.08);
    }

    .header-profile-avatar {
        display: inline-flex !important;
        width: 24px;
        height: 24px;
        min-width: 24px;
        border-radius: 8px;
        order: 1;
    }

    .user-info {
        display: none;
    }

    .header-profile-chevron {
        display: inline-flex !important;
        width: 24px;
        height: 24px;
        min-width: 24px;
        margin-left: 0;
        border-radius: 8px;
        color: transparent;
        font-size: 0;
        transform: none !important;
        order: 2;
        background: radial-gradient(circle at 35% 25%, rgba(122, 214, 255, .24), rgba(4, 18, 38, .96));
    }

    .header-profile-chevron::before {
        content: "";
        width: 12px;
        height: 2px;
        border: 0;
        background: #e7fbff;
        transform: none !important;
        box-shadow: 0 -4px 0 #e7fbff, 0 4px 0 #e7fbff;
        filter: drop-shadow(0 0 5px rgba(110, 218, 255, .85));
    }

    .header-profile-logout-icon {
        width: 24px;
        height: 24px;
        min-width: 24px;
        margin-left: 0;
        font-size: .78rem;
        order: 3;
    }

    .profile-menu-popover {
        width: calc(100vw - 20px);
        right: 10px !important;
        left: auto !important;
        max-width: 360px;
    }

    html,
    body {
        overflow-x: hidden;
    }

    body {
        min-width: 0;
    }

    .container {
        width: 100%;
        max-width: 100%;
        margin: 0;
        padding: 0 10px 28px;
    }

    .dashboard-desktop-shell {
        display: grid;
        grid-template-columns: 1fr;
        gap: 14px;
        min-height: auto;
        padding: 10px;
        border-radius: 22px;
    }

    .live-cockpit,
    .bundesliga-cockpit {
        display: none;
    }

    .app-grid {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
        width: 100%;
        min-width: 0;
    }

    .dashboard-open-tips-card {
        grid-column: 1 / -1;
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 10px;
        min-height: 0;
        padding: 14px;
        border-radius: 18px;
    }

    .dashboard-open-tips-icon {
        width: 42px;
        height: 42px;
        border-radius: 14px;
        font-size: 1.15rem;
    }

    .dashboard-open-tips-head strong {
        font-size: .98rem;
    }

    .dashboard-open-tips-head span {
        font-size: .78rem;
        line-height: 1.35;
    }

    .dashboard-open-tips-action {
        grid-column: 1 / -1;
        width: 100%;
        min-height: 40px;
    }

    .dashboard-open-tip-row {
        grid-template-columns: 1fr;
        gap: 6px;
        padding: 9px 10px;
    }

    .dashboard-open-tip-team-home,
    .dashboard-open-tip-team-away {
        justify-content: flex-start;
        text-align: left;
    }

    .dashboard-open-tip-time {
        text-align: left;
        white-space: normal;
    }

    .app-tile {
        min-height: 88px;
        padding: 12px 8px;
        border-radius: 13px;
    }

    .app-tile h2 {
        margin: 0 0 6px;
        font-size: .92rem;
        line-height: 1.08;
        letter-spacing: -.02em;
    }

    .app-tile p {
        font-size: .64rem;
        line-height: 1.24;
    }

    .app-tile > span {
        right: 8px;
        font-size: 1rem;
    }

    .dashboard-coffee-duel-panel {
        grid-column: 1 / -1;
        grid-row: auto;
        width: 100%;
    }

    .coffee-duel-shell {
        gap: 10px;
    }

    .coffee-duel-hero {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
        min-height: 0;
        padding: 16px;
        border-radius: 18px;
    }

    .coffee-duel-hero h3,
    .coffee-history-head strong {
        font-size: 1.1rem;
    }

    .coffee-duel-hero p,
    .coffee-history-head small {
        font-size: .78rem;
        line-height: 1.35;
    }

    .coffee-duel-primary-action {
        width: 100%;
        min-height: 42px;
    }

    .coffee-duel-active-counter {
        min-height: 34px;
        font-size: .82rem;
    }

    .coffee-duel-active-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }

    .coffee-duel-active-grid.is-empty {
        grid-template-columns: 1fr;
    }

    .coffee-duel-card,
    .coffee-duel-empty-card {
        border-radius: 16px;
        padding: 12px;
    }

    .coffee-duel-card {
        min-height: 220px;
    }

    .coffee-duel-empty-card {
        min-height: 76px;
        font-size: .82rem;
    }

    .coffee-history-shell {
        border-radius: 18px;
    }

    .coffee-history-head {
        padding: 14px;
        gap: 10px;
    }

    .coffee-history-body {
        padding: 0 14px 14px;
    }
}

@media (max-width: 430px) {
    .clean-main-header {
        height: 92px;
        min-height: 92px;
        background-size: auto 88px;
        background-position: left center;
    }

    .header-profile-button {
        width: 112px;
        height: 42px;
        padding: 0 7px;
        gap: 6px;
    }

    .header-profile-avatar,
    .header-profile-logout-icon,
    .header-profile-chevron {
        width: 29px;
        height: 29px;
        min-width: 29px;
    }

    .container {
        padding-left: 6px;
        padding-right: 6px;
    }

    .dashboard-desktop-shell {
        padding: 8px;
    }

    .app-grid {
        gap: 7px;
    }

    .app-tile {
        min-height: 82px;
        padding: 10px 7px;
    }

    .app-tile h2 {
        font-size: .84rem;
    }

    .app-tile p {
        font-size: .6rem;
    }

    .coffee-duel-active-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 7px;
    }
}

/* Step 149 - Mobile: Headerbild frei zentriert, Profil darunter */
@media (max-width: 760px) {
    .clean-main-header {
        height: auto;
        min-height: 0;
        margin: 0 0 12px;
        padding: 0 10px 10px;
        border-radius: 0 0 18px 18px;
        background: none !important;
        overflow: visible;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .clean-main-header::before {
        content: "";
        display: block;
        width: 100%;
        height: 78px;
        border-radius: 0 0 16px 16px;
        background-image: url("images/header/bundesliga-header-title-mobile.png?v=2026-06-27-step149") !important;
        background-size: contain;
        background-position: center center;
        background-repeat: no-repeat;
        background-color: #020914;
        border-bottom: 1px solid rgba(82, 179, 255, 0.78);
        box-shadow: 0 0 0 1px rgba(111, 204, 255, 0.14) inset, 0 0 18px rgba(45, 158, 255, 0.16);
    }

    .clean-main-header::after {
        display: none;
    }

    .header-right-controls {
        position: relative;
        right: auto;
        top: auto;
        transform: none;
        z-index: 30;
        width: 100%;
        display: flex;
        justify-content: center;
    }

    .header-profile-button {
        width: 100%;
        max-width: 380px;
        height: 44px;
        padding: 0 12px;
        gap: 10px;
        border-radius: 16px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(180deg, rgba(8,35,70,.92), rgba(4,16,34,.98));
        border-color: rgba(104,199,255,.82);
        box-shadow: 0 0 14px rgba(65,174,255,.24), inset 0 0 11px rgba(102,205,255,.08);
    }

    .header-profile-avatar {
        display: inline-flex !important;
        width: 32px;
        height: 32px;
        min-width: 32px;
        border-radius: 10px;
        order: 1;
    }

    .header-profile-chevron {
        display: inline-flex !important;
        width: 32px;
        height: 32px;
        min-width: 32px;
        margin-left: 0;
        border-radius: 10px;
        order: 2;
    }

    .header-profile-chevron::before {
        width: 14px;
        height: 2px;
        box-shadow: 0 -5px 0 #e7fbff, 0 5px 0 #e7fbff;
    }

    .header-profile-logout-icon {
        width: 32px;
        height: 32px;
        min-width: 32px;
        margin-left: 0;
        font-size: .9rem;
        order: 3;
    }
}


/* Step 153 - Mobile Header: Doppelbild entfernen, nur echtes IMG verwenden */
@media (max-width: 760px) {
    .clean-main-header {
        height: auto !important;
        min-height: 0 !important;
        margin: 0 0 12px !important;
        padding: 0 10px 10px !important;
        background: none !important;
        background-image: none !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 8px !important;
        overflow: visible !important;
    }

    .clean-main-header::before,
    .clean-main-header::after {
        content: none !important;
        display: none !important;
        background: none !important;
        background-image: none !important;
    }

    .mobile-header-banner-img {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 82px !important;
        object-fit: cover !important;
        object-position: center center !important;
        border-radius: 0 0 16px 16px !important;
        flex: 0 0 auto !important;
        margin: 0 !important;
        background: #020914 !important;
    }

    .header-right-controls {
        position: relative !important;
        inset: auto !important;
        right: auto !important;
        left: auto !important;
        top: auto !important;
        transform: none !important;
        width: 100% !important;
        display: flex !important;
        justify-content: center !important;
        margin: 0 auto !important;
        z-index: 30 !important;
    }

    .header-profile-button {
        width: 100% !important;
        max-width: 380px !important;
        height: 44px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 10px !important;
        padding: 0 12px !important;
        border-radius: 16px !important;
    }

    .header-profile-avatar,
    .header-profile-chevron,
    .header-profile-logout-icon {
        width: 32px !important;
        height: 32px !important;
        min-width: 32px !important;
    }
}

@media (max-width: 430px) {
    .clean-main-header {
        height: auto !important;
        min-height: 0 !important;
        background: none !important;
        background-image: none !important;
    }

    .mobile-header-banner-img {
        height: 78px !important;
    }
}

/* Step 157 - Mobile Rangliste: Podestbild + Regeln per Dropdown */
@media (max-width: 760px) {
    .ranking-side-card {
        display: none;
    }

    .ranking-mobile-rules-card {
        display: block;
    }

    .ranking-podium-showcase-desktop {
        display: none;
    }

    .ranking-podium-showcase-mobile {
        display: block;
        position: relative;
        height: 262px;
        overflow: hidden;
    }

    .ranking-top-three-podium {
        padding: 14px 14px 8px;
    }

    .ranking-podium-showcase {
        border-radius: 20px;
    }

    .ranking-podium-showcase-mobile img {
        position: absolute !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        height: 332px !important;
        object-fit: cover !important;
        object-position: center bottom !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-1 {
        bottom: 47% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-2,
    .ranking-podium-showcase-mobile .ranking-podium-label.rank-3 {
        bottom: 36% !important;
    }

    .ranking-podium-label {
        min-width: 94px;
        max-width: 112px;
        padding: 8px 8px 9px;
        border-radius: 14px;
    }

    .ranking-podium-label-badge {
        min-width: 28px;
        height: 28px;
        margin-bottom: 6px;
        border-radius: 10px;
        font-size: .74rem;
    }

    .ranking-podium-label strong {
        font-size: .8rem;
    }

    .ranking-podium-label small {
        margin-top: 3px;
        font-size: .66rem;
    }

    .ranking-table {
        min-width: 840px;
    }
}

@media (max-width: 430px) {
    .ranking-top-three-podium {
        padding: 12px 12px 8px;
    }

    .ranking-podium-showcase-mobile {
        height: 248px;
    }

    .ranking-podium-showcase-mobile img {
        position: absolute !important;
        left: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 100% !important;
        height: 310px !important;
        object-position: center bottom !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-1 {
        bottom: 46% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-2,
    .ranking-podium-showcase-mobile .ranking-podium-label.rank-3 {
        bottom: 35% !important;
    }

    .ranking-podium-label {
        min-width: 82px;
        max-width: 98px;
        padding: 7px 7px 8px;
    }

    .ranking-podium-label strong {
        font-size: .72rem;
    }

    .ranking-podium-label small {
        font-size: .6rem;
    }

    .ranking-mobile-rules-toggle {
        min-height: 44px;
        font-size: .88rem;
    }
}

/* Step 158 - Mobile-only Cockpit im Header; Desktop bleibt in style.css hart ausgeblendet */
@media (max-width: 760px) {
    .mobile-header-cockpit-shell {
        display: flex !important;
        flex-direction: column;
        gap: 8px;
        width: 100%;
        max-width: 380px;
        margin: 8px auto 0;
    }

    .mobile-header-cockpit-toggle {
        width: 100%;
        min-height: 40px;
        border-radius: 14px;
        border: 1px solid rgba(104,199,255,.54);
        background: linear-gradient(180deg, rgba(8,35,70,.94), rgba(4,16,34,.98));
        color: #fff;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 0 12px;
        box-shadow: 0 0 12px rgba(65,174,255,.16), inset 0 0 11px rgba(102,205,255,.06);
    }

    .mobile-header-cockpit-toggle strong {
        font-size: .84rem;
        line-height: 1.1;
    }

    .mobile-header-cockpit-toggle span {
        font-size: .68rem;
        color: rgba(213,231,255,.72);
        font-weight: 800;
    }

    .mobile-header-cockpit-panel {
        display: none;
        max-height: 240px;
        overflow-y: auto;
        border-radius: 16px;
        border: 1px solid rgba(104,199,255,.32);
        background: linear-gradient(180deg, rgba(4,18,34,.96), rgba(2,9,19,.98));
        padding: 8px;
        box-shadow: inset 0 0 16px rgba(84,176,255,.06);
    }

    .mobile-header-cockpit-panel.is-open {
        display: block;
    }

    .mobile-header-cockpit-content {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }

    .mobile-header-cockpit-content .cockpit-card {
        border-radius: 13px;
        padding: 10px;
    }
}

/* Step 158 - Mobile Header-Inhalt untereinander halten */
@media (max-width: 760px) {
    .header-right-controls {
        flex-direction: column !important;
        align-items: center !important;
    }
}

/* Step 162 - Mobile Rangliste: kompakte Tabellenkarten wie Referenzlayout */
@media (max-width: 760px) {
    #rangliste-view .ranking-card-head {
        padding: 14px 14px 12px;
    }

    #rangliste-view .ranking-card-head h3 {
        font-size: .9rem;
    }

    #rangliste-view .ranking-card-head span {
        font-size: .72rem;
    }

    #rangliste-view .ranking-table-wrap {
        overflow-x: visible;
        width: 100%;
    }

    #rangliste-view .ranking-table {
        display: block;
        width: 100%;
        min-width: 0 !important;
        border-collapse: separate;
        border-spacing: 0;
    }

    #rangliste-view .ranking-table thead,
    #rangliste-view .ranking-table tbody {
        display: block;
        width: 100%;
    }

    #rangliste-view .ranking-table thead tr {
        display: grid;
        grid-template-columns: 62px minmax(0, 1fr) 68px;
        align-items: center;
        gap: 8px;
        min-height: 38px;
        padding: 0 12px;
        border-top: 1px solid rgba(127,205,255,.10);
        border-bottom: 1px solid rgba(127,205,255,.14);
        background: linear-gradient(180deg, rgba(9,22,39,.96), rgba(4,13,25,.98));
    }

    #rangliste-view .ranking-table th {
        display: none;
        border: 0;
        padding: 0;
        background: transparent;
        color: rgba(222,238,255,.76);
        font-size: .68rem;
        line-height: 1;
        letter-spacing: .06em;
        text-transform: uppercase;
    }

    #rangliste-view .ranking-table th:nth-child(2),
    #rangliste-view .ranking-table th:nth-child(3),
    #rangliste-view .ranking-table th:nth-child(4) {
        display: flex;
        align-items: center;
        height: 100%;
    }

    #rangliste-view .ranking-table th:nth-child(3) {
        font-size: 0;
    }

    #rangliste-view .ranking-table th:nth-child(3)::after {
        content: "Mitarbeiter";
        font-size: .68rem;
    }

    #rangliste-view .ranking-table th:nth-child(4) {
        justify-content: flex-end;
        font-size: 0;
    }

    #rangliste-view .ranking-table th:nth-child(4)::after {
        content: "Punkte";
        font-size: .68rem;
    }

    #rangliste-view .ranking-table tbody tr {
        display: grid;
        grid-template-columns: 62px minmax(0, 1fr) 68px;
        grid-template-rows: auto auto;
        align-items: center;
        column-gap: 8px;
        row-gap: 6px;
        min-height: 76px;
        padding: 10px 12px;
        border-bottom: 1px solid rgba(127,205,255,.10);
        background: linear-gradient(90deg, rgba(7,19,35,.88), rgba(3,10,20,.94));
    }

    #rangliste-view .ranking-table tbody tr.rank-one {
        background: linear-gradient(90deg, rgba(255,202,88,.16), rgba(7,19,35,.92) 42%, rgba(3,10,20,.96));
    }

    #rangliste-view .ranking-table tbody tr.rank-two {
        background: linear-gradient(90deg, rgba(190,218,245,.13), rgba(7,19,35,.92) 42%, rgba(3,10,20,.96));
    }

    #rangliste-view .ranking-table tbody tr.rank-three {
        background: linear-gradient(90deg, rgba(211,138,84,.14), rgba(7,19,35,.92) 42%, rgba(3,10,20,.96));
    }

    #rangliste-view .ranking-table td {
        display: none;
        padding: 0;
        border: 0;
        background: transparent;
    }

    #rangliste-view .ranking-table td:nth-child(2),
    #rangliste-view .ranking-table td:nth-child(3),
    #rangliste-view .ranking-table td:nth-child(4),
    #rangliste-view .ranking-table td:nth-child(8) {
        display: flex;
    }

    #rangliste-view .ranking-table td:nth-child(2) {
        grid-column: 1;
        grid-row: 1 / 3;
        align-items: center;
        justify-content: flex-start;
    }

    #rangliste-view .ranking-table td:nth-child(3) {
        grid-column: 2;
        grid-row: 1;
        align-items: center;
        justify-content: flex-start;
        min-width: 0;
        text-align: left;
    }

    #rangliste-view .ranking-table td:nth-child(4) {
        grid-column: 3;
        grid-row: 1 / 3;
        align-items: center;
        justify-content: flex-end;
        text-align: right;
    }

    #rangliste-view .ranking-table td:nth-child(8) {
        grid-column: 2;
        grid-row: 2;
        align-items: center;
        justify-content: flex-start;
        min-width: 0;
        text-align: left;
    }

    #rangliste-view .ranking-position span {
        min-width: 0;
        width: auto;
        height: auto;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent !important;
        box-shadow: none !important;
        color: #fff;
        font-size: .98rem;
        font-weight: 900;
    }

    #rangliste-view .ranking-position span::after {
        content: ".";
    }

    #rangliste-view .ranking-table tr.rank-one .ranking-position::before,
    #rangliste-view .ranking-table tr.rank-two .ranking-position::before,
    #rangliste-view .ranking-table tr.rank-three .ranking-position::before {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 22px;
        margin-right: 4px;
        font-size: 1rem;
    }

    #rangliste-view .ranking-table tr.rank-one .ranking-position::before {
        content: "🥇";
    }

    #rangliste-view .ranking-table tr.rank-two .ranking-position::before {
        content: "🥈";
    }

    #rangliste-view .ranking-table tr.rank-three .ranking-position::before {
        content: "🥉";
    }

    #rangliste-view .ranking-player {
        display: flex;
        align-items: center;
        gap: 10px;
        min-width: 0;
        width: 100%;
    }

    #rangliste-view .ranking-player-avatar {
        width: 30px;
        height: 30px;
        min-width: 30px;
        border-radius: 10px;
    }

    #rangliste-view .ranking-player strong {
        min-width: 0;
        max-width: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: .9rem;
    }

    #rangliste-view .ranking-points {
        font-size: 1.18rem;
        line-height: 1;
        font-weight: 950;
    }

    #rangliste-view .recent-form-list {
        min-width: 0;
        justify-content: flex-start;
        gap: 5px;
    }

    #rangliste-view .recent-form-badge {
        width: 21px;
        height: 21px;
        min-width: 21px;
        font-size: .6rem;
        box-shadow: inset 0 0 5px rgba(255,255,255,.18);
    }
}

@media (max-width: 430px) {
    #rangliste-view .ranking-table thead tr,
    #rangliste-view .ranking-table tbody tr {
        grid-template-columns: 54px minmax(0, 1fr) 54px;
        padding-left: 10px;
        padding-right: 10px;
    }

    #rangliste-view .ranking-player {
        gap: 8px;
    }

    #rangliste-view .ranking-player-avatar {
        width: 28px;
        height: 28px;
        min-width: 28px;
    }

    #rangliste-view .ranking-player strong {
        font-size: .84rem;
    }

    #rangliste-view .ranking-points {
        font-size: 1.1rem;
    }

    #rangliste-view .recent-form-badge {
        width: 19px;
        height: 19px;
        min-width: 19px;
        font-size: .56rem;
    }
}


/* Step 165 - Mobile Rangliste: Podestbild wirklich nach unten verschieben
   Wichtig: steht bewusst am Dateiende, damit ältere Mobile-Regeln sicher überschrieben werden. */
@media (max-width: 760px) {
    .ranking-podium-showcase-mobile {
        display: block !important;
        position: relative !important;
        height: 248px !important;
        overflow: hidden !important;
        background: linear-gradient(180deg, rgba(2, 9, 19, .98), rgba(3, 12, 24, .98)) !important;
    }

    .ranking-podium-showcase-mobile img {
        position: absolute !important;
        left: 0 !important;
        right: 0 !important;
        top: 58px !important;
        bottom: auto !important;
        width: 100% !important;
        height: 248px !important;
        max-width: none !important;
        object-fit: cover !important;
        object-position: center bottom !important;
        transform: none !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-1 {
        left: 50% !important;
        top: 38px !important;
        bottom: auto !important;
        transform: translateX(-50%) !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-2 {
        left: 24% !important;
        top: 82px !important;
        bottom: auto !important;
        transform: translateX(-50%) !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-3 {
        left: 76% !important;
        top: 82px !important;
        bottom: auto !important;
        transform: translateX(-50%) !important;
    }
}

@media (max-width: 430px) {
    .ranking-podium-showcase-mobile {
        height: 248px !important;
    }

    .ranking-podium-showcase-mobile img {
        top: 60px !important;
        height: 248px !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-1 {
        top: 38px !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-2,
    .ranking-podium-showcase-mobile .ranking-podium-label.rank-3 {
        top: 84px !important;
    }
}


/* Step 166 - Mobile Podestbild neu + fein zentriert */
@media (max-width: 760px) {
    .ranking-podium-showcase-mobile {
        display: block !important;
        position: relative !important;
        height: 248px !important;
        overflow: hidden !important;
    }

    .ranking-podium-showcase-mobile img {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        object-position: center 80% !important;
    }

    .ranking-podium-label {
        width: 108px !important;
        min-width: 108px !important;
        max-width: 108px !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-1 {
        left: 50% !important;
        bottom: 55% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-2 {
        left: 18% !important;
        bottom: 39% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-3 {
        left: 82% !important;
        bottom: 39% !important;
    }
}

@media (max-width: 430px) {
    .ranking-podium-showcase-mobile {
        height: 246px !important;
    }

    .ranking-podium-showcase-mobile img {
        object-position: center 78% !important;
    }

    .ranking-podium-label {
        width: 98px !important;
        min-width: 98px !important;
        max-width: 98px !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-1 {
        bottom: 54% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-2 {
        left: 17% !important;
        bottom: 38% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-3 {
        left: 83% !important;
        bottom: 38% !important;
    }
}


/* Step 167 - Mobile Podestlabels feinjustiert */
@media (max-width: 760px) {
    .ranking-podium-showcase-mobile .ranking-podium-label.rank-1 {
        left: 50% !important;
        bottom: 55% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-2 {
        left: 21.5% !important;
        bottom: 40% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-3 {
        left: 82% !important;
        bottom: 40% !important;
    }
}

@media (max-width: 430px) {
    .ranking-podium-showcase-mobile .ranking-podium-label.rank-1 {
        left: 50% !important;
        bottom: 54% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-2 {
        left: 20.5% !important;
        bottom: 39% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-3 {
        left: 83% !important;
        bottom: 39% !important;
    }
}


/* Step 168 - Mobile Podestlabels: gleiche Größe, nur Name + Punkte */
@media (max-width: 760px) {
    .ranking-podium-showcase-mobile .ranking-podium-label {
        width: 108px !important;
        min-width: 108px !important;
        max-width: 108px !important;
        min-height: 88px !important;
        height: 88px !important;
        padding: 10px 10px 8px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 4px !important;
        text-align: center !important;
        border-radius: 16px !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label-badge {
        display: none !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label strong {
        margin: 0 !important;
        font-size: 0.84rem !important;
        line-height: 1.08 !important;
        max-width: 100% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label small {
        margin: 0 !important;
        font-size: 0.68rem !important;
        line-height: 1.05 !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-1 {
        left: 50% !important;
        bottom: 54% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-2 {
        left: 24% !important;
        bottom: 38.5% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-3 {
        left: 76% !important;
        bottom: 38.5% !important;
    }
}

@media (max-width: 430px) {
    .ranking-podium-showcase-mobile .ranking-podium-label {
        width: 102px !important;
        min-width: 102px !important;
        max-width: 102px !important;
        min-height: 84px !important;
        height: 84px !important;
        padding: 9px 8px 7px !important;
        border-radius: 15px !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label strong {
        font-size: 0.82rem !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label small {
        font-size: 0.66rem !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-1 {
        left: 50% !important;
        bottom: 53.5% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-2 {
        left: 24.5% !important;
        bottom: 38% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-3 {
        left: 75.5% !important;
        bottom: 38% !important;
    }
}


/* Step 169 - Mobile Podestlabels final höher und frei über den Zahlen */
@media (max-width: 760px) {
    .ranking-podium-showcase-mobile .ranking-podium-label {
        width: 104px !important;
        min-width: 104px !important;
        max-width: 104px !important;
        min-height: 80px !important;
        height: 80px !important;
        padding: 8px 8px 7px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 3px !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label strong {
        font-size: 0.82rem !important;
        line-height: 1.06 !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label small {
        font-size: 0.66rem !important;
        line-height: 1.02 !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-1 {
        left: 50% !important;
        bottom: 60% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-2 {
        left: 23% !important;
        bottom: 48% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-3 {
        left: 77% !important;
        bottom: 48% !important;
    }
}

@media (max-width: 430px) {
    .ranking-podium-showcase-mobile .ranking-podium-label {
        width: 98px !important;
        min-width: 98px !important;
        max-width: 98px !important;
        min-height: 76px !important;
        height: 76px !important;
        padding: 7px 7px 6px !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label strong {
        font-size: 0.78rem !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label small {
        font-size: 0.62rem !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-1 {
        left: 50% !important;
        bottom: 58% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-2 {
        left: 23.5% !important;
        bottom: 47% !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-3 {
        left: 76.5% !important;
        bottom: 47% !important;
    }
}


/* Step 170 - Mobile Podestlabels: alte top/bottom Konflikte final überschreiben */
@media (max-width: 760px) {
    .ranking-podium-showcase-mobile .ranking-podium-label {
        width: 104px !important;
        min-width: 104px !important;
        max-width: 104px !important;
        height: 64px !important;
        min-height: 64px !important;
        padding: 7px 8px 6px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 3px !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label strong {
        font-size: 0.8rem !important;
        line-height: 1.05 !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label small {
        font-size: 0.64rem !important;
        line-height: 1.02 !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-1 {
        left: 50% !important;
        top: 38px !important;
        bottom: auto !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-2 {
        left: 23.5% !important;
        top: 70px !important;
        bottom: auto !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-3 {
        left: 76.5% !important;
        top: 70px !important;
        bottom: auto !important;
    }
}

@media (max-width: 430px) {
    .ranking-podium-showcase-mobile .ranking-podium-label {
        width: 96px !important;
        min-width: 96px !important;
        max-width: 96px !important;
        height: 60px !important;
        min-height: 60px !important;
        padding: 6px 7px 5px !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label strong {
        font-size: 0.76rem !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label small {
        font-size: 0.6rem !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-1 {
        left: 50% !important;
        top: 40px !important;
        bottom: auto !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-2 {
        left: 23.5% !important;
        top: 72px !important;
        bottom: auto !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-3 {
        left: 76.5% !important;
        top: 72px !important;
        bottom: auto !important;
    }
}


/* Step 173 - HIER KACHELN VERSCHIEBEN: Mobile Top-3-Fenster responsive einstellen
   Diese Werte sind die Ausgangspositionen aus Step 171 und bleiben die feste Basis.
   Nur die Preferred-Werte ändern, wenn du die Fenster manuell verschieben willst.
   Die echten left-Werte werden danach automatisch mit Sicherheitsabstand berechnet,
   damit die Fenster bei kleineren/größeren Handybreiten nicht ineinander laufen.

   --rank-1-left-preferred / --rank-1-top-preferred = Fenster Platz 1
   --rank-2-left-preferred / --rank-2-top-preferred = Fenster Platz 2
   --rank-3-left-preferred / --rank-3-top-preferred = Fenster Platz 3

   left: kleinere Zahl = weiter links, größere Zahl = weiter rechts
   top: kleinere px-Zahl = weiter hoch, größere px-Zahl = weiter runter
*/
@media (max-width: 760px) {
    .ranking-podium-showcase-mobile {
        --rank-label-width-base: 104px;
        --rank-label-height-base: 64px;
        --rank-label-width: clamp(88px, 27.7vw, var(--rank-label-width-base));
        --rank-label-height: clamp(54px, 17.1vw, var(--rank-label-height-base));
        --rank-label-half: clamp(44px, 13.85vw, 52px);
        --rank-label-gap: clamp(4px, 1.7vw, 8px);
        --rank-label-safe-distance: calc(var(--rank-label-width) + var(--rank-label-gap));

        --rank-1-left-preferred: 50%;
        --rank-1-top-preferred: 42px;

        --rank-2-left-preferred: 21%;
        --rank-2-top-preferred: 85px;

        --rank-3-left-preferred: 79%;
        --rank-3-top-preferred: 93px;

        --rank-1-left: var(--rank-1-left-preferred);
        --rank-1-top: clamp(34px, 11.2vw, var(--rank-1-top-preferred));

        --rank-2-left: clamp(
            calc(var(--rank-label-half) + var(--rank-label-gap)),
            var(--rank-2-left-preferred),
            calc(50% - var(--rank-label-safe-distance))
        );
        --rank-2-top: clamp(68px, 22.7vw, var(--rank-2-top-preferred));

        --rank-3-left: clamp(
            calc(50% + var(--rank-label-safe-distance)),
            var(--rank-3-left-preferred),
            calc(100% - var(--rank-label-half) - var(--rank-label-gap))
        );
        --rank-3-top: clamp(74px, 24.8vw, var(--rank-3-top-preferred));
    }

    .ranking-podium-showcase-mobile .ranking-podium-label {
        width: var(--rank-label-width) !important;
        min-width: var(--rank-label-width) !important;
        max-width: var(--rank-label-width) !important;
        height: var(--rank-label-height) !important;
        min-height: var(--rank-label-height) !important;
        bottom: auto !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-1 {
        left: var(--rank-1-left) !important;
        top: var(--rank-1-top) !important;
        bottom: auto !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-2 {
        left: var(--rank-2-left) !important;
        top: var(--rank-2-top) !important;
        bottom: auto !important;
    }

    .ranking-podium-showcase-mobile .ranking-podium-label.rank-3 {
        left: var(--rank-3-left) !important;
        top: var(--rank-3-top) !important;
        bottom: auto !important;
    }
}


/* Step 174 - Mobile Dashboard-Kacheln höher, offener und mittig ausrichten
   Nur Mobile. Desktop bleibt unverändert.
   Ziel: Kacheln wie im Referenzlayout etwas hochkantiger und weniger zusammengepresst.
*/
@media (max-width: 760px) {
    .app-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: clamp(8px, 2.2vw, 10px) !important;
        align-items: stretch !important;
    }

    .app-tile {
        min-height: clamp(126px, 36vw, 150px) !important;
        height: auto !important;
        padding: 13px 8px !important;
        border-radius: 15px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
    }

    .app-tile::before {
        background: linear-gradient(180deg, rgba(0,0,0,.28), rgba(0,0,0,.46) 42%, rgba(0,0,0,.76)), var(--tile-bg, none) !important;
        background-size: cover !important;
        background-position: center center !important;
    }

    .app-tile > div {
        width: 100% !important;
        min-height: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
    }

    .app-tile h2 {
        width: 100% !important;
        margin: 0 0 7px !important;
        font-size: clamp(.78rem, 2.55vw, .96rem) !important;
        line-height: 1.08 !important;
        letter-spacing: -.025em !important;
        text-align: center !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        text-wrap: balance;
    }

    .app-tile p {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        font-size: clamp(.58rem, 1.85vw, .68rem) !important;
        line-height: 1.18 !important;
        text-align: center !important;
        color: rgba(255,255,255,.88) !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden !important;
    }

    .app-tile > span {
        display: none !important;
    }
}

@media (max-width: 430px) {
    .app-grid {
        gap: 8px !important;
    }

    .app-tile {
        min-height: clamp(124px, 36vw, 146px) !important;
        padding: 12px 7px !important;
        border-radius: 14px !important;
    }

    .app-tile h2 {
        font-size: clamp(.76rem, 2.75vw, .9rem) !important;
        line-height: 1.08 !important;
    }

    .app-tile p {
        font-size: clamp(.56rem, 2vw, .64rem) !important;
        line-height: 1.16 !important;
    }
}
