/* LastProject Admin – global responsive pass v34
   Loaded last on every authenticated page. This file intentionally contains
   layout-only overrides; colors and feature logic remain owned by page CSS. */

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body,
.layout,
.main,
.page,
.card,
form,
fieldset,
section,
article,
aside,
header,
footer,
div {
    min-width: 0;
}

body {
    max-width: 100vw;
}

.main,
.main > .page,
.main > section,
.main > div {
    width: 100%;
    min-width: 0;
    max-width: 100%;
}

img,
video,
canvas,
svg,
iframe {
    max-width: 100%;
}

input,
select,
textarea,
button {
    max-width: 100%;
    font: inherit;
}

select,
input,
textarea {
    min-width: 0;
}

pre,
code {
    max-width: 100%;
    overflow-wrap: anywhere;
}

/* Reusable responsive rows */
.page-head,
.report-page-heading,
.card-title-row,
.player-toolbar,
.map-toolbar,
.discord-page-head,
.discord-card-head,
.changelog-version-row,
.team-hierarchy-toolbar,
.team-home-org-heading,
.team-panel-title-row {
    min-width: 0;
}

.button-row,
.report-filters,
.report-view-tabs,
.report-actions,
.create-report-actions,
.changelog-confirm-actions,
.team-home-org-actions,
.team-delete-actions,
.team-deputy-board-actions {
    max-width: 100%;
    flex-wrap: wrap;
}

/* Any true table may scroll inside its own surface, never the whole page. */
.table-responsive,
.small-table-wrap,
.report-table-card,
.discord-links-table,
.warnings-page .dashboard-warning-list,
.card:has(> table),
.card:has(.small-table) {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

/* Dialogs always remain inside the viewport. */
dialog,
.ticket-dialog,
.changelog-confirm-window,
.lp-history-dialog,
.player-manipulation-dialog,
.team-role-modal-card,
.team-assignment-modal-card,
.team-board-modal-card,
.team-area-modal-card,
.team-delete-modal-card,
.team-deputy-board-modal-card {
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100dvh - 24px) !important;
}

/* Mobile nav toggle is injected in header.php. */
.sidebar-toggle {
    display: none;
    margin-left: auto;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    place-items: center;
    border: 1px solid rgba(148,163,184,.18);
    border-radius: 11px;
    background: rgba(255,255,255,.055);
    color: #e2e8f0;
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
}
.sidebar-toggle:hover { background: rgba(255,255,255,.09); }

/* ---------- Large laptop / narrow desktop ---------- */
@media (max-width: 1366px) {
    :root {
        --lp-sidebar-width: 220px;
        --lp-page-pad: 13px;
        --lp-card-pad: 13px;
        --lp-gap: 11px;
    }

    .topbar { margin-bottom: 13px; }
    .brand { margin-bottom: 20px; }

    .stats-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .cards { grid-template-columns: repeat(2, minmax(0,1fr)); }

    .settings-compact-grid,
    .changelog-layout {
        grid-template-columns: minmax(0,1fr) minmax(320px,.86fr);
    }

    .beta-stat-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .beta-dashboard-grid { grid-template-columns: minmax(0,1.2fr) minmax(300px,.8fr); }

    .reports-page .report-table { min-width: 1120px !important; }

    /* Dashboard: don't force a 360px side column on 1366px laptops. */
    .page-dashboard .dashboard-map-warning-grid {
        grid-template-columns: minmax(0,1.55fr) minmax(300px,.75fr) !important;
    }

    /* Team cards were authored for very wide screens; scale structure, not text. */
    .team-current-member-card.record-discord-mini {
        width: 330px !important;
        min-width: 330px !important;
        max-width: 330px !important;
        flex-basis: 330px !important;
    }
    .team-board-deputies {
        width: 270px !important;
        min-width: 270px !important;
        max-width: 270px !important;
        flex-basis: 270px !important;
    }
    .team-board-deputies .team-current-member-card.is-deputy-card {
        width: 270px !important;
        min-width: 270px !important;
        max-width: 270px !important;
        flex-basis: 270px !important;
    }
}

/* ---------- Tablet landscape / very small laptop ---------- */
@media (max-width: 1100px) {
    .cards,
    .cards.two-col,
    .settings-grid,
    .settings-compact-grid,
    .changelog-layout,
    .beta-dashboard-grid,
    .discord-overview-grid,
    .discord-main-grid {
        grid-template-columns: 1fr !important;
    }

    .discord-preview-card { position: static !important; }

    .form-three { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .access-current-list { grid-template-columns: 1fr; }

    .page-dashboard .dashboard-map-warning-grid,
    .page-dashboard .dashboard-board-grid {
        grid-template-columns: 1fr !important;
        height: auto !important;
        min-height: 0 !important;
    }
    .page-dashboard .dashboard-live-map-card {
        min-height: 360px !important;
        height: clamp(360px, 52vw, 520px) !important;
    }
    .page-dashboard .dashboard-warning-side {
        min-height: 0 !important;
        height: auto !important;
    }

    .report-toolbar {
        align-items: stretch !important;
        flex-direction: column;
    }
    .report-search { width: 100%; min-width: 0 !important; }
    .reports-page .report-table { min-width: 980px !important; }

    .ticket-modal-grid { grid-template-columns: 1fr !important; }
    .ticket-modal-grid > aside {
        border-left: 0 !important;
        border-top: 1px solid rgba(255,255,255,.07);
    }

    /* Player detail: allow dense sections to drop beneath each other. */
    .record-split-grid,
    .detail-window-grid,
    .traffic-grid,
    .money-flow-panel,
    .inventory-weapons-body {
        grid-template-columns: 1fr !important;
    }

    /* Discord automation rows must not squeeze their controls. */
    .discord-status-strip,
    .discord-automation-grid,
    .discord-rule-form,
    .discord-metric-grid {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    }

    /* Team hierarchy gets its own internal scrolling canvas where a graph needs it. */
    .team-hierarchy-tree,
    .team-home-org-tree,
    .team-focus-tree,
    .team-hierarchy-canvas {
        max-width: 100%;
        overflow-x: auto !important;
        overscroll-behavior-inline: contain;
    }
    .team-focus-role-details,
    .team-focus-column:first-child,
    .team-focus-node.is-root-node {
        width: min(420px, 44vw) !important;
        min-width: min(420px, 44vw) !important;
        max-width: min(420px, 44vw) !important;
    }
}

/* ---------- Tablet / phone navigation breakpoint ---------- */
@media (max-width: 900px) {
    body { overflow-x: hidden; }

    .layout { display: block !important; min-height: 100dvh; }

    .sidebar {
        position: sticky !important;
        top: 0 !important;
        z-index: 5000;
        width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        padding: 10px 12px !important;
        border-right: 0;
        border-bottom: 1px solid var(--panel-border);
        overflow: visible !important;
    }
    .brand {
        margin: 0 !important;
        min-height: 46px;
    }
    .brand-image {
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
    }
    .brand h1 { font-size: 16px; }
    .brand span { font-size: 10px; }
    .sidebar-toggle { display: grid; }

    .sidebar-nav,
    .sidebar > .sidebar-utility-links,
    .sidebar > .sidebar-logout {
        display: none !important;
    }
    .sidebar.sidebar-open .sidebar-nav {
        display: flex !important;
        max-height: calc(100dvh - 142px);
        overflow-y: auto !important;
        margin-top: 10px;
        padding: 8px 2px 10px !important;
    }
    .sidebar.sidebar-open > .sidebar-utility-links {
        display: grid !important;
        grid-template-columns: repeat(2,minmax(0,1fr));
        margin-top: 4px !important;
        padding-top: 8px !important;
    }
    .sidebar.sidebar-open > .sidebar-logout {
        display: block !important;
        margin-top: 7px !important;
    }

    .main {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 0 !important;
        padding: 12px !important;
    }
    .main:has(.warnings-page) { width: 100% !important; }

    .topbar {
        min-height: 0;
        padding: 10px 12px;
        margin-bottom: 12px;
        align-items: center;
        flex-direction: row;
        flex-wrap: wrap;
    }
    .topbar-left { flex: 1 1 260px; }
    .topbar small {
        max-width: 100%;
        white-space: normal;
        overflow: visible;
    }

    .page h2 { font-size: clamp(22px, 5vw, 28px); }
    .page-head p { margin-bottom: 0; }

    .stats-grid,
    .cards,
    .cards.two-col,
    .settings-grid,
    .settings-compact-grid,
    .beta-stat-grid,
    .beta-dashboard-grid,
    .access-current-list {
        grid-template-columns: 1fr !important;
    }

    .form-two,
    .form-three,
    .create-report-grid,
    .ticket-info-grid {
        grid-template-columns: 1fr !important;
    }
    .create-report-grid .span-2 { grid-column: auto !important; }

    .page-head,
    .report-page-heading,
    .player-toolbar,
    .map-toolbar,
    .discord-page-head,
    .changelog-version-row,
    .team-hierarchy-toolbar,
    .team-home-org-heading {
        align-items: stretch !important;
        flex-direction: column !important;
        gap: 10px !important;
    }

    .player-toolbar-left,
    .report-filters,
    .report-view-tabs,
    .team-home-org-actions {
        width: 100%;
    }

    .player-toolbar input,
    .player-live-search,
    .report-search,
    .report-filters button,
    .report-view-tabs button {
        max-width: 100%;
    }

    /* Reports remain a real table on tablet, but only inside their card. */
    .reports-page .report-table-card { border-radius: 12px; }
    .reports-page .report-table { min-width: 860px !important; }
    .reports-page .report-table th { padding: 11px 12px !important; }
    .reports-page .report-table td { padding: 12px !important; height: auto !important; }
    .reports-page .merged-list { padding-left: 12px !important; padding-right: 12px !important; }
    .reports-page .merged-ticket-card { grid-template-columns: 1fr 1fr !important; }

    .ticket-dialog,
    .create-report-dialog {
        width: calc(100vw - 16px) !important;
        max-width: calc(100vw - 16px) !important;
        max-height: calc(100dvh - 16px) !important;
        border-radius: 14px !important;
    }
    .ticket-dialog-frame,
    .ticket-modal-grid {
        max-height: calc(100dvh - 18px);
        overflow-y: auto;
    }
    .ticket-modal-head,
    .ticket-modal-grid > section,
    .ticket-modal-grid > aside,
    .admin-create-report-form {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    /* Dashboard warning rows become cards instead of a squeezed desktop table. */
    .page-dashboard .dashboard-warning-columns,
    .warnings-page .dashboard-warning-columns { display: none !important; }
    .page-dashboard .dashboard-warning-side .dashboard-warning-row,
    .warnings-page .dashboard-warning-row {
        grid-template-columns: minmax(0,1fr) auto !important;
        gap: 8px 12px !important;
        align-items: start !important;
        padding: 12px !important;
    }
    .dashboard-warning-badges,
    .warning-check-form,
    .warning-reviewed-badge { grid-column: 1 / -1 !important; }

    /* Discord page */
    .discord-status-strip,
    .discord-automation-grid,
    .discord-rule-form,
    .discord-metric-grid,
    .discord-health-stats,
    .discord-sync-actions {
        grid-template-columns: 1fr !important;
    }
    .discord-links-head,
    .discord-links-row { min-width: 760px !important; }

    /* Changelog preview is no longer sticky on short/narrow screens. */
    .discord-preview-card { position: static !important; }
    .changelog-confirm-window { width: calc(100vw - 20px) !important; }

    /* Live map: stack player side panel below map. */
    body.page-map { overflow: auto !important; height: auto !important; }
    .page-live-map-clean,
    .page-live-map-clean .live-map-workspace {
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }
    .page-live-map-clean .live-map-workspace { grid-template-columns: 1fr !important; }
    .page-live-map-clean .live-map-main-card { height: min(64vh, 620px) !important; min-height: 420px; }
    .page-live-map-clean .live-map-player-card { min-height: 0 !important; }

    /* Player detail windows */
    .player-detail-topline-clean,
    .detail-window-grid,
    .record-split-grid,
    .record-facts-grid,
    .record-kpi-grid,
    .record-money-grid,
    .facts-grid,
    .support-facts-grid,
    .live-stats-grid,
    .combat-facts-grid,
    .traffic-grid,
    .manipulation-grid {
        grid-template-columns: 1fr !important;
    }
    .player-detail-actions-wrap,
    .player-detail-actions-card,
    .player-detail-window-wrap,
    .player-detail-window-card { width: 100% !important; max-width: 100% !important; }

    /* Team: list/card mode fits viewport; graph can pan inside its own surface. */
    .team-hierarchy-page,
    .team-hierarchy-shell,
    .team-hierarchy-main,
    .team-home-org,
    .team-hierarchy-overview,
    .team-hierarchy-focus {
        width: 100% !important;
        max-width: 100% !important;
    }
    .team-area-row {
        width: 100% !important;
        max-width: 100% !important;
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }
    .team-current-member-card.record-discord-mini {
        width: min(330px, calc(100vw - 48px)) !important;
        min-width: min(330px, calc(100vw - 48px)) !important;
        max-width: min(330px, calc(100vw - 48px)) !important;
        flex-basis: auto !important;
    }
    .team-board-person-cluster { max-width: 100%; }
    .team-board-deputies {
        width: min(270px, calc(100vw - 48px)) !important;
        min-width: min(270px, calc(100vw - 48px)) !important;
        max-width: min(270px, calc(100vw - 48px)) !important;
        flex-basis: auto !important;
    }
    .team-board-deputies .team-current-member-card.is-deputy-card {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        flex-basis: auto !important;
    }
    .team-focus-role-details,
    .team-focus-column:first-child,
    .team-focus-node.is-root-node {
        width: min(420px, calc(100vw - 48px)) !important;
        min-width: min(420px, calc(100vw - 48px)) !important;
        max-width: min(420px, calc(100vw - 48px)) !important;
    }
    .team-deputy-board-modal-card,
    .team-assignment-modal-card,
    .team-board-modal-card {
        width: calc(100vw - 20px) !important;
        max-width: calc(100vw - 20px) !important;
    }
}

/* ---------- Phone ---------- */
@media (max-width: 620px) {
    :root {
        --lp-page-pad: 9px;
        --lp-card-pad: 11px;
        --lp-gap: 9px;
        --lp-radius: 12px;
    }

    .main { padding: 9px !important; }
    .topbar { padding: 9px 10px; }
    .topbar-logo { display: none; }
    .status-pill { white-space: normal; }

    .card,
    .stat-card { margin-bottom: 10px; }

    .mini-stat,
    .ranking-row,
    .access-entry,
    .fancy-access-entry {
        align-items: flex-start;
    }

    .access-entry,
    .ranking-row {
        flex-direction: column;
    }

    .button-row,
    .create-report-actions,
    .changelog-confirm-actions,
    .team-delete-actions,
    .team-deputy-board-actions {
        align-items: stretch !important;
        flex-direction: column !important;
    }
    .button-row > *,
    .create-report-actions > *,
    .changelog-confirm-actions > *,
    .team-delete-actions > *,
    .team-deputy-board-actions > * {
        width: 100% !important;
        margin-left: 0 !important;
    }

    .sidebar.sidebar-open > .sidebar-utility-links { grid-template-columns: 1fr; }

    .report-metrics { grid-template-columns: 1fr 1fr !important; }
    .reports-page .report-table { min-width: 760px !important; }
    .reports-page .merged-ticket-card { grid-template-columns: 1fr !important; }
    .reports-page .report-filters,
    .reports-page .report-view-tabs { display: grid; grid-template-columns: 1fr 1fr; }
    .reports-page .report-filters > *,
    .reports-page .report-view-tabs > * { width: 100%; min-width: 0 !important; }

    .ticket-modal-head { padding-top: 18px !important; }
    .ticket-modal-head h2 { font-size: 20px; padding-right: 30px; }
    .dialog-close { right: 10px; top: 7px; }

    .page-dashboard .dashboard-live-map-card,
    .page-live-map-clean .live-map-main-card {
        height: 420px !important;
        min-height: 340px !important;
    }

    .discord-links-head,
    .discord-links-row { min-width: 680px !important; }

    .team-area-row { grid-template-columns: 1fr !important; }
    .team-area-card-wrap { width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
    .team-focus-deputy-grid,
    .team-deputy-slot-grid,
    .team-deputy-board-slots { grid-template-columns: 1fr !important; }

    .team-current-member-card.record-discord-mini,
    .team-focus-role-details,
    .team-focus-column:first-child,
    .team-focus-node.is-root-node,
    .team-board-deputies {
        width: calc(100vw - 38px) !important;
        min-width: 0 !important;
        max-width: calc(100vw - 38px) !important;
    }

    .login-body { padding: 12px; }
    .login-box-unified { padding: 18px; }
    .login-brand-center img { width: 62px; height: 62px; }
}

/* Tiny screens: avoid two-column controls entirely. */
@media (max-width: 420px) {
    .report-metrics,
    .reports-page .report-filters,
    .reports-page .report-view-tabs,
    .discord-health-stats {
        grid-template-columns: 1fr !important;
    }
    .topbar { align-items: flex-start; flex-direction: column; }
    .topbar-left { flex-basis: auto; width: 100%; }
}

@media (max-width: 900px) {
    .sidebar { position: sticky !important; }
    .sidebar-toggle {
        position: absolute;
        top: 12px;
        right: 12px;
        margin: 0;
    }
    .brand { padding-right: 54px; }
}

/* ========================================================================== */
/* v35 – viewport-safe pass after real Full-HD / short-height testing         */
/* ========================================================================== */

/* Keep scrolling available, but never paint browser/inner scrollbars over UI. */
html,
body,
.sidebar-nav,
.table-responsive,
.small-table-wrap,
.report-table-card,
.discord-links-table,
.team-hierarchy-tree,
.team-home-org-tree,
.team-focus-tree,
.team-hierarchy-canvas,
.team-area-overview,
.ticket-modal-grid,
.dialog-list,
.dashboard-warning-list {
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar,
.sidebar-nav::-webkit-scrollbar,
.table-responsive::-webkit-scrollbar,
.small-table-wrap::-webkit-scrollbar,
.report-table-card::-webkit-scrollbar,
.discord-links-table::-webkit-scrollbar,
.team-hierarchy-tree::-webkit-scrollbar,
.team-home-org-tree::-webkit-scrollbar,
.team-focus-tree::-webkit-scrollbar,
.team-hierarchy-canvas::-webkit-scrollbar,
.team-area-overview::-webkit-scrollbar,
.ticket-modal-grid::-webkit-scrollbar,
.dialog-list::-webkit-scrollbar,
.dashboard-warning-list::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
}

/* Flex/grid children must be allowed to shrink instead of painting over neighbours. */
.card-title-row > *,
.economy-combined-head > *,
.dashboard-toolbar > *,
.page-head > *,
.topbar > *,
.ranking-row > *,
.mini-stat > *,
.stat-card > *,
.player-toolbar > *,
.report-toolbar > *,
.team-hierarchy-toolbar > * {
    min-width: 0 !important;
}

.card h2,
.card h3,
.card h4,
.card p,
.card small,
.card span,
.page-head h2,
.page-head p {
    overflow-wrap: break-word;
}

/* Do not let icon/action controls consume content width or stretch cards. */
.dashboard-expand-btn,
.small-action-btn,
.dialog-close,
button[class*="icon"],
button[class*="close"] {
    flex: 0 0 auto;
}

/* Desktop sidebar: fit common 768–900px-high screens without a visible rail. */
@media (min-width: 901px) and (max-height: 920px) {
    .sidebar {
        height: 100dvh !important;
        min-height: 100dvh !important;
        padding: 10px 14px !important;
    }
    .brand {
        margin-bottom: 13px !important;
        gap: 9px !important;
    }
    .brand-image {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
    }
    .brand h1 { font-size: 16px !important; }
    .brand span { font-size: 10px !important; }
    .sidebar-nav-primary,
    .nav-analysis-block,
    .nav-management-block { gap: 2px !important; }
    .nav-analysis-block,
    .nav-management-block { margin-top: 9px !important; }
    .nav-section-title,
    .nav-section-title-muted {
        padding: 0 8px 2px !important;
        font-size: 9px !important;
    }
    .nav-section-divider.nav-section-divider-green {
        margin: 0 6px 4px !important;
        height: 1px !important;
    }
    .sidebar nav a,
    .sidebar-nav a {
        min-height: 0 !important;
        padding: 7px 9px !important;
        border-radius: 8px !important;
        font-size: 12px !important;
        line-height: 1.15 !important;
    }
    .sidebar > .sidebar-utility-links {
        gap: 2px !important;
        padding-top: 7px !important;
        margin-top: 7px !important;
    }
    .sidebar > .sidebar-utility-links > a {
        min-height: 34px !important;
        height: 34px !important;
        padding: 0 10px !important;
        font-size: 12px !important;
    }
    .sidebar > .sidebar-logout {
        min-height: 34px !important;
        padding: 8px 10px !important;
        margin-top: 6px !important;
        font-size: 12px !important;
    }
}

/* ----------------------------- Dashboard --------------------------------- */
/* Full-HD is not "huge" once the sidebar is deducted: use two stable columns. */
@media (min-width: 1101px) and (max-width: 2100px) {
    .page-dashboard .dashboard-board-grid {
        grid-template-columns: minmax(0, 1.7fr) minmax(300px, .72fr) !important;
        align-items: stretch !important;
    }
    .page-dashboard .first-connect-card {
        grid-column: 1 / -1 !important;
        height: auto !important;
        min-height: 0 !important;
    }
    .page-dashboard .first-connect-card .connection-list,
    .page-dashboard .first-connect-card .ranking-list {
        display: grid !important;
        grid-template-columns: repeat(auto-fit, minmax(225px, 1fr)) !important;
        gap: 6px !important;
    }
}

.page-dashboard .economy-combined-card,
.page-dashboard .admin-warning-combined-card,
.page-dashboard .first-connect-card,
.page-dashboard .market-ranking-grid > .card {
    min-width: 0 !important;
}

.page-dashboard .economy-combined-body {
    grid-template-columns: minmax(210px, .76fr) minmax(0, 1.45fr) !important;
}

.page-dashboard .state-equation-row {
    grid-template-columns: 16px minmax(0, 1fr) minmax(72px, auto) !important;
}
.page-dashboard .state-equation-row strong {
    min-width: 0 !important;
    max-width: 100% !important;
    font-size: clamp(10px, .66vw, 12px) !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
    text-align: right !important;
}
.page-dashboard .state-equation-total {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, auto) !important;
    align-items: end !important;
    gap: 8px !important;
}
.page-dashboard .state-equation-total > span {
    min-width: 0 !important;
    line-height: 1.15 !important;
}
.page-dashboard .state-total-wrap {
    min-width: 0 !important;
    max-width: 100% !important;
    justify-content: flex-end !important;
}
.page-dashboard .state-equation-total .state-total,
.page-dashboard .state-total {
    min-width: 0 !important;
    max-width: 100% !important;
    font-size: clamp(20px, 1.45vw, 30px) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    letter-spacing: -.02em !important;
}
.page-dashboard .economy-inline-stats > div {
    min-width: 0 !important;
}
.page-dashboard .economy-inline-stats strong {
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.page-dashboard .admin-event-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.page-dashboard .admin-event-stats span,
.page-dashboard .admin-event-stats strong {
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.page-dashboard .market-ranking-grid {
    grid-template-columns: repeat(3, minmax(280px, 1fr)) !important;
}
.page-dashboard .ranking-row,
.page-dashboard .ranked-row {
    min-width: 0 !important;
}
.page-dashboard .ranked-row {
    grid-template-columns: minmax(26px, 34px) minmax(0, 1fr) minmax(54px, auto) !important;
}
.page-dashboard .rank-name {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.page-dashboard .rank-values {
    min-width: 0 !important;
    max-width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 6px !important;
}
.page-dashboard .rank-values strong,
.page-dashboard .rank-delta {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
}
.page-dashboard .connection-row > span {
    min-width: 0 !important;
}
.page-dashboard .connection-row strong,
.page-dashboard .connection-row small {
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

@media (max-width: 1600px) and (min-width: 1101px) {
    .page-dashboard .economy-combined-body {
        grid-template-columns: minmax(190px, .72fr) minmax(0, 1.28fr) !important;
        gap: 9px !important;
    }
    .page-dashboard .state-equation-total {
        grid-template-columns: 1fr !important;
        align-items: start !important;
    }
    .page-dashboard .state-total-wrap { justify-content: flex-start !important; }
    .page-dashboard .state-equation-total .state-total { font-size: clamp(20px, 1.8vw, 27px) !important; }
}

@media (max-width: 1350px) {
    .page-dashboard .market-ranking-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .page-dashboard .market-ranking-grid > .card:last-child {
        grid-column: 1 / -1 !important;
    }
}

@media (max-width: 1100px) {
    .page-dashboard .economy-combined-body { grid-template-columns: 1fr !important; }
    .page-dashboard .market-ranking-grid { grid-template-columns: 1fr !important; }
    .page-dashboard .market-ranking-grid > .card:last-child { grid-column: auto !important; }
    .page-dashboard .state-equation-total {
        grid-template-columns: minmax(0, 1fr) auto !important;
    }
}

@media (max-width: 620px) {
    .page-dashboard .state-equation-total {
        grid-template-columns: 1fr !important;
    }
    .page-dashboard .state-total-wrap { justify-content: flex-start !important; }
    .page-dashboard .economy-inline-stats { grid-template-columns: 1fr !important; }
    .page-dashboard .admin-event-stats { grid-template-columns: 1fr 1fr 1fr !important; }
}

/* ------------------------- Cross-page density ----------------------------- */
/* Medium desktops: cards should wrap before text has to collide. */
@media (min-width: 901px) and (max-width: 1700px) {
    .stats-grid {
        grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)) !important;
    }
    .cards:not(.two-col) {
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
    }
    .settings-grid,
    .settings-compact-grid {
        grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)) !important;
    }
}

/* Long values must truncate/wrap inside their own card instead of overlapping symbols. */
.stat-card strong,
.mini-stat strong,
.record-kpi strong,
.discord-metric strong,
.beta-stat strong,
.live-number {
    max-width: 100%;
}
.stat-card strong,
.mini-stat strong,
.record-kpi strong,
.discord-metric strong,
.beta-stat strong {
    overflow-wrap: anywhere;
}

/* Keep page-local scroll surfaces inside the viewport even on 1366/1440 laptops. */
.reports-page,
.warnings-page,
.discord-page,
.team-hierarchy-page,
.player-detail-page-clean,
.page-dashboard .dashboard-page {
    min-width: 0 !important;
    max-width: 100% !important;
}

/* Avoid scrollbar gutters stealing 15–20px from already tight layouts. */
.sidebar-nav,
.report-table-card,
.table-responsive,
.team-hierarchy-canvas,
.team-area-overview {
    scrollbar-gutter: auto !important;
}

/* ========================================================================== */
/* v36 – gezielte Stabilisierung: Dashboard / Spieler / Live Map              */
/* ========================================================================== */
/* Die globale v35-Schicht war auf diesen drei, bereits stark spezialisierten
   Seiten zu aggressiv. Ab hier gewinnen wieder seitenlokale, feste Regeln. */

/* ----------------------------- Dashboard --------------------------------- */
body.page-dashboard .dashboard-page,
body.page-dashboard .dashboard-board-grid,
body.page-dashboard .market-ranking-grid {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}
body.page-dashboard .economy-combined-card,
body.page-dashboard .admin-warning-combined-card,
body.page-dashboard .first-connect-card,
body.page-dashboard .market-ranking-grid > .card {
    height: auto !important;
    min-height: 0 !important;
    overflow: hidden !important;
}
body.page-dashboard .economy-combined-card,
body.page-dashboard .admin-warning-combined-card,
body.page-dashboard .first-connect-card {
    min-height: 326px !important;
}
body.page-dashboard .economy-combined-body {
    height: auto !important;
    min-height: 248px !important;
    grid-template-columns: minmax(225px,.8fr) minmax(0,1.35fr) !important;
}
body.page-dashboard .economy-chart,
body.page-dashboard .economy-chart svg {
    min-width: 0 !important;
    max-width: 100% !important;
}
body.page-dashboard .state-equation-row,
body.page-dashboard .state-society-row,
body.page-dashboard .ranked-row,
body.page-dashboard .connection-row {
    min-width: 0 !important;
}
body.page-dashboard .state-equation-row > *,
body.page-dashboard .state-society-row > *,
body.page-dashboard .ranked-row > *,
body.page-dashboard .connection-row > * {
    min-width: 0 !important;
}
body.page-dashboard .state-total,
body.page-dashboard .state-equation-total .state-total {
    font-size: clamp(22px,1.75vw,32px) !important;
    max-width: 100% !important;
    white-space: nowrap !important;
}
body.page-dashboard .state-equation-total {
    grid-template-columns: minmax(0,1fr) auto !important;
    gap: 10px !important;
}
body.page-dashboard .rank-name,
body.page-dashboard .connection-row strong,
body.page-dashboard .connection-row small {
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/* Wide desktop: original three-card composition, but with shrink-safe tracks. */
@media (min-width: 1560px) {
    body.page-dashboard .dashboard-board-grid {
        grid-template-columns: minmax(0,1.75fr) minmax(285px,.78fr) minmax(300px,.82fr) !important;
        gap: 12px !important;
    }
    body.page-dashboard .first-connect-card {
        grid-column: auto !important;
    }
    body.page-dashboard .first-connect-card .connection-list,
    body.page-dashboard .first-connect-card .ranking-list {
        display: block !important;
    }
    body.page-dashboard .market-ranking-grid {
        grid-template-columns: repeat(3,minmax(0,1fr)) !important;
    }
    body.page-dashboard .market-ranking-grid > .card:last-child {
        grid-column: auto !important;
    }
}

/* Laptop / narrow desktop: 2 columns, Connections gets a full row. */
@media (min-width: 1101px) and (max-width: 1559px) {
    body.page-dashboard .dashboard-board-grid {
        grid-template-columns: minmax(0,1.55fr) minmax(300px,.8fr) !important;
        gap: 11px !important;
    }
    body.page-dashboard .first-connect-card {
        grid-column: 1 / -1 !important;
        min-height: 0 !important;
    }
    body.page-dashboard .first-connect-card .connection-list,
    body.page-dashboard .first-connect-card .ranking-list {
        display: grid !important;
        grid-template-columns: repeat(auto-fit,minmax(230px,1fr)) !important;
        gap: 7px !important;
    }
    body.page-dashboard .market-ranking-grid {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }
    body.page-dashboard .market-ranking-grid > .card:last-child {
        grid-column: 1 / -1 !important;
    }
}

@media (min-width: 1101px) and (max-width: 1320px) {
    body.page-dashboard .economy-combined-body {
        grid-template-columns: 1fr !important;
        min-height: 0 !important;
    }
    body.page-dashboard .economy-societies-pane {
        padding-right: 0 !important;
        border-right: 0 !important;
        padding-bottom: 10px !important;
        border-bottom: 1px solid rgba(255,255,255,.08) !important;
    }
    body.page-dashboard .economy-combined-card { min-height: 520px !important; }
}

@media (max-width: 1100px) {
    body.page-dashboard .dashboard-board-grid,
    body.page-dashboard .market-ranking-grid {
        grid-template-columns: 1fr !important;
    }
    body.page-dashboard .dashboard-board-grid > *,
    body.page-dashboard .market-ranking-grid > * {
        grid-column: auto !important;
    }
    body.page-dashboard .economy-combined-body {
        grid-template-columns: 1fr !important;
        min-height: 0 !important;
    }
    body.page-dashboard .economy-societies-pane {
        padding-right: 0 !important;
        border-right: 0 !important;
        padding-bottom: 10px !important;
        border-bottom: 1px solid rgba(255,255,255,.08) !important;
    }
    body.page-dashboard .economy-combined-card,
    body.page-dashboard .admin-warning-combined-card,
    body.page-dashboard .first-connect-card,
    body.page-dashboard .market-ranking-grid > .card {
        min-height: 0 !important;
    }
}

@media (max-width: 680px) {
    body.page-dashboard .state-equation-total { grid-template-columns: 1fr !important; }
    body.page-dashboard .state-total-wrap { justify-content: flex-start !important; }
    body.page-dashboard .state-total,
    body.page-dashboard .state-equation-total .state-total {
        font-size: clamp(22px,8vw,30px) !important;
    }
    body.page-dashboard .admin-event-stats { grid-template-columns: repeat(3,minmax(0,1fr)) !important; }
}

/* ------------------------------ Spieler ---------------------------------- */
body.page-players .page,
body.page-players .page > .card,
body.page-players .player-list,
body.page-players .player-detail-page-clean {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}

/* Die globale auto-fit-Regel darf die expliziten Einspalten-Fenster nicht teilen. */
body.page-players .cards.one-col,
body.page-players .player-detail-actions-wrap,
body.page-players .player-detail-window-wrap {
    grid-template-columns: 1fr !important;
}

body.page-players:not(.player-detail-mode) .player-toolbar {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    align-items: center !important;
    gap: 12px !important;
}
body.page-players .player-toolbar-left,
body.page-players .player-live-search,
body.page-players .player-live-search input {
    width: 100% !important;
    min-width: 0 !important;
}
body.page-players .player-counter {
    max-width: 240px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/* Feste Spalten statt Flex-Wrapping: Namen/Discord links, Live-Status rechts. */
body.page-players:not(.player-detail-mode) .player-row {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) minmax(190px,32%) !important;
    align-items: center !important;
    gap: 14px !important;
    width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}
body.page-players .player-row-main,
body.page-players .player-name-line,
body.page-players .player-row-right {
    min-width: 0 !important;
    max-width: 100% !important;
}
body.page-players .player-row-main strong,
body.page-players .player-row-main small,
body.page-players .player-row-right strong,
body.page-players .player-row-right small {
    max-width: 100% !important;
}
body.page-players .player-row-main small,
body.page-players .player-row-right small {
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}
body.page-players:not(.player-detail-mode) .player-row-right {
    text-align: right !important;
    min-width: 0 !important;
}

/* Detailseite: vorhandene spezialisierte Grids behalten, nur bei echter Enge umbrechen. */
body.page-players.player-detail-mode .record-facts-grid,
body.page-players.player-detail-mode .record-kpi-grid,
body.page-players.player-detail-mode .record-money-grid,
body.page-players.player-detail-mode .live-stats-grid,
body.page-players.player-detail-mode .combat-facts-grid {
    min-width: 0 !important;
    max-width: 100% !important;
}
body.page-players.player-detail-mode .player-detail-window-card .detail-window-grid {
    grid-template-columns: repeat(4,minmax(0,1fr)) !important;
}

@media (max-width: 1180px) {
    body.page-players:not(.player-detail-mode) .player-toolbar {
        grid-template-columns: 1fr !important;
        align-items: stretch !important;
    }
    body.page-players .player-counter {
        max-width: 100% !important;
        text-align: left !important;
    }
    body.page-players:not(.player-detail-mode) .player-row {
        grid-template-columns: minmax(0,1fr) minmax(160px,28%) !important;
    }
    body.page-players.player-detail-mode .player-detail-window-card .detail-window-grid {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }
}

@media (max-width: 760px) {
    body.page-players:not(.player-detail-mode) .player-row {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }
    body.page-players:not(.player-detail-mode) .player-row-right {
        text-align: left !important;
    }
    body.page-players.player-detail-mode .player-detail-window-card .detail-window-grid {
        grid-template-columns: 1fr !important;
    }
}

/* ------------------------------ Live Map --------------------------------- */
/* Desktop bleibt ein echter, fester Workspace. Die Map erhält deutlich mehr Raum
   als die Detailkarte; die globale v34/v35 Tablet-Regel greift erst später. */
body.page-map,
body.page-map .layout,
body.page-map .main,
body.page-map .page-live-map-clean,
body.page-map .live-map-workspace {
    min-width: 0 !important;
    max-width: 100% !important;
}
@media (min-width: 1151px) {
    body.page-map {
        height: 100dvh !important;
        overflow: hidden !important;
    }
    body.page-map .layout,
    body.page-map .main {
        height: 100dvh !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }
    body.page-map .main {
        padding-top: var(--lp-page-pad) !important;
        padding-bottom: var(--lp-page-pad) !important;
    }
    body.page-map .page-live-map-clean,
    body.page-map .live-map-workspace,
    body.page-map .live-map-main-card,
    body.page-map .live-map-player-card {
        height: 100% !important;
        min-height: 0 !important;
    }
    body.page-map .live-map-workspace {
        display: grid !important;
        grid-template-columns: minmax(0,1.55fr) minmax(320px,.65fr) !important;
        gap: 14px !important;
        overflow: hidden !important;
    }
    body.page-map .live-map-main-card,
    body.page-map .live-map-player-card {
        overflow: hidden !important;
    }
    body.page-map .lp-map,
    body.page-map .lp-map-canvas {
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        max-width: none !important;
        max-height: none !important;
    }
    body.page-map .lp-map-image {
        max-width: none !important;
        max-height: none !important;
    }
    body.page-map .live-map-player-content {
        height: 100% !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }
}

@media (min-width: 1151px) and (max-width: 1450px) {
    body.page-map .live-map-workspace {
        grid-template-columns: minmax(0,1.32fr) minmax(330px,.78fr) !important;
    }
    body.page-map .live-map-player-content { padding: 15px !important; }
    body.page-map .map-player-profile-head h3 { font-size: 19px !important; }
    body.page-map .map-player-quick-grid { grid-template-columns: 1fr !important; }
    body.page-map .map-player-details .record-facts-grid { grid-template-columns: 1fr !important; }
}

/* Erst auf Tablet wirklich stapeln. */
@media (max-width: 1150px) {
    body.page-map {
        height: auto !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }
    body.page-map .layout,
    body.page-map .main,
    body.page-map .page-live-map-clean,
    body.page-map .live-map-workspace {
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }
    body.page-map .live-map-workspace {
        grid-template-columns: 1fr !important;
    }
    body.page-map .live-map-main-card {
        height: clamp(430px,64vh,680px) !important;
        min-height: 430px !important;
    }
    body.page-map .live-map-player-card {
        min-height: 360px !important;
        height: auto !important;
    }
}

@media (max-width: 620px) {
    body.page-map .live-map-main-card {
        height: 430px !important;
        min-height: 360px !important;
        padding: 8px !important;
    }
    body.page-map .live-map-player-content { padding: 13px !important; }
    body.page-map .map-player-quick-grid,
    body.page-map .map-player-details .record-facts-grid {
        grid-template-columns: 1fr !important;
    }
}

/* ========================================================================== */
/* v37 – Dashboard nach verfügbarer Inhaltsbreite statt Viewportbreite        */
/* ========================================================================== */
/* Windows-Skalierung / Browser-Zoom machten reine @media-Breakpoints für das
   Dashboard unzuverlässig. Die Karten reagieren deshalb ab hier auf die
   tatsächlich nach der Sidebar verbleibende Dashboard-Breite. */
body.page-dashboard .dashboard-page {
    container-type: inline-size;
    container-name: lp-dashboard;
}

/* Scrollen bleibt möglich, Scrollleisten selbst sollen im Panel nie sichtbar sein. */
html, body, body * {
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar,
body *::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
}

/* Grundzustand: kein Element darf durch lange Werte seinen Grid-Track aufdrücken. */
body.page-dashboard .dashboard-board-grid,
body.page-dashboard .market-ranking-grid,
body.page-dashboard .dashboard-board-grid > *,
body.page-dashboard .market-ranking-grid > *,
body.page-dashboard .economy-combined-body,
body.page-dashboard .economy-societies-pane,
body.page-dashboard .economy-chart-pane,
body.page-dashboard .connection-list,
body.page-dashboard .ranking-list {
    min-width: 0 !important;
}
body.page-dashboard .state-equation-total {
    min-width: 0 !important;
}
body.page-dashboard .state-equation-total > span {
    max-width: 118px !important;
    font-size: 11px !important;
    line-height: 1.05 !important;
}
body.page-dashboard .state-total,
body.page-dashboard .state-equation-total .state-total {
    font-size: clamp(22px, 2.05cqw, 30px) !important;
    letter-spacing: -.035em !important;
}

/* Große Inhaltsfläche: die ursprüngliche 3er-Komposition bleibt erhalten. */
@container lp-dashboard (min-width: 1180px) {
    body.page-dashboard .dashboard-board-grid {
        grid-template-columns: minmax(0, 1.82fr) minmax(270px, .78fr) minmax(270px, .80fr) !important;
        gap: 12px !important;
    }
    body.page-dashboard .economy-combined-card,
    body.page-dashboard .admin-warning-combined-card,
    body.page-dashboard .first-connect-card {
        height: 326px !important;
        min-height: 326px !important;
        max-height: 326px !important;
    }
    body.page-dashboard .first-connect-card {
        grid-column: auto !important;
    }
    body.page-dashboard .first-connect-card .connection-list,
    body.page-dashboard .first-connect-card .ranking-list {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 5px !important;
    }
    body.page-dashboard .economy-combined-body {
        height: 258px !important;
        min-height: 258px !important;
        grid-template-columns: minmax(210px, .76fr) minmax(0, 1.38fr) !important;
        gap: 10px !important;
    }
    body.page-dashboard .economy-chart {
        height: 218px !important;
    }
    body.page-dashboard .economy-chart svg {
        height: 188px !important;
    }
    body.page-dashboard .market-ranking-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }
    body.page-dashboard .market-ranking-grid > .card,
    body.page-dashboard .market-ranking-grid > .card:last-child {
        grid-column: auto !important;
        height: 235px !important;
        min-height: 235px !important;
        max-height: 235px !important;
    }
}

/* Mittlere Inhaltsfläche: zwei Spalten, aber ohne gequetschte Inhalte. */
@container lp-dashboard (min-width: 860px) and (max-width: 1179px) {
    body.page-dashboard .dashboard-board-grid {
        grid-template-columns: minmax(0, 1.58fr) minmax(285px, .82fr) !important;
        gap: 11px !important;
    }
    body.page-dashboard .economy-combined-card,
    body.page-dashboard .admin-warning-combined-card {
        min-height: 326px !important;
    }
    body.page-dashboard .first-connect-card {
        grid-column: 1 / -1 !important;
        min-height: 0 !important;
        height: auto !important;
        max-height: none !important;
    }
    body.page-dashboard .first-connect-card .connection-list,
    body.page-dashboard .first-connect-card .ranking-list {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 6px !important;
    }
    body.page-dashboard .market-ranking-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    body.page-dashboard .market-ranking-grid > .card:last-child {
        grid-column: 1 / -1 !important;
    }
}

/* Schmale Inhaltsfläche: bewusst untereinander statt unlesbar klein. */
@container lp-dashboard (max-width: 859px) {
    body.page-dashboard .dashboard-board-grid,
    body.page-dashboard .market-ranking-grid {
        grid-template-columns: 1fr !important;
    }
    body.page-dashboard .dashboard-board-grid > *,
    body.page-dashboard .market-ranking-grid > * {
        grid-column: auto !important;
        height: auto !important;
        max-height: none !important;
    }
    body.page-dashboard .economy-combined-body {
        grid-template-columns: 1fr !important;
        height: auto !important;
        min-height: 0 !important;
    }
    body.page-dashboard .economy-societies-pane {
        padding-right: 0 !important;
        border-right: 0 !important;
        padding-bottom: 10px !important;
        border-bottom: 1px solid rgba(255,255,255,.08) !important;
    }
}


/* ========================================================================== */
/* v38 – sitewide responsive foundation                                      */
/* A final, authoritative layer for every public/admin screen.                 */
/* ========================================================================== */

:root {
    --lp-safe-gap: clamp(10px, 1vw, 18px);
    --lp-content-pad: clamp(10px, 1vw, 18px);
    --lp-sidebar-fluid: clamp(208px, 14.5vw, 260px);
}

html {
    width: 100%;
    max-width: 100%;
    min-width: 320px;
    overflow-x: hidden !important;
    scrollbar-gutter: auto !important;
}
body {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden !important;
}

/* Never allow long IDs, names, URLs or generated values to enlarge a layout. */
.layout,
.main,
.page,
.card,
.stat-card,
.page > *,
.card > *,
form,
fieldset,
section,
article,
aside,
header,
footer,
nav,
div {
    min-width: 0;
}

img,
video,
canvas,
svg,
iframe {
    max-width: 100%;
}

input,
select,
textarea,
button {
    min-width: 0;
    max-width: 100%;
}

p,
small,
label,
strong,
span,
a,
td,
th {
    overflow-wrap: break-word;
}

/* ----------------------------- App shell --------------------------------- */
@media (min-width: 901px) {
    .layout {
        display: grid !important;
        grid-template-columns: var(--lp-sidebar-fluid) minmax(0, 1fr) !important;
        width: 100% !important;
        max-width: 100vw !important;
        min-height: 100dvh !important;
        align-items: stretch !important;
    }

    .sidebar {
        position: sticky !important;
        inset-block-start: 0 !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        height: 100dvh !important;
        min-height: 0 !important;
        padding: clamp(10px, .9vw, 18px) !important;
        overflow: hidden !important;
    }

    .sidebar-nav {
        min-height: 0 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        overscroll-behavior: contain;
    }

    .main,
    .main:has(.beta-dashboard-page),
    .main:has(.reports-page),
    .main:has(.warnings-page) {
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        min-height: 100dvh !important;
        padding: var(--lp-content-pad) !important;
        margin: 0 !important;
        overflow-x: hidden !important;
    }
}

/* Short desktop screens: navigation stays usable without painting a rail. */
@media (min-width: 901px) and (max-height: 780px) {
    .sidebar { padding-block: 8px !important; }
    .brand { margin-bottom: 9px !important; gap: 8px !important; }
    .brand-image { width: 36px !important; height: 36px !important; min-width: 36px !important; }
    .brand h1 { font-size: 15px !important; }
    .brand span { font-size: 9px !important; }
    .nav-analysis-block,
    .nav-management-block { margin-top: 7px !important; }
    .nav-section-title,
    .nav-section-title-muted { font-size: 8px !important; padding-bottom: 1px !important; }
    .nav-section-divider.nav-section-divider-green { margin-bottom: 3px !important; }
    .sidebar-nav a,
    .sidebar nav a { padding: 6px 8px !important; font-size: 11px !important; line-height: 1.1 !important; }
    .sidebar > .sidebar-utility-links { padding-top: 5px !important; gap: 1px !important; }
    .sidebar > .sidebar-utility-links > a,
    .sidebar > .sidebar-logout { min-height: 30px !important; height: auto !important; padding: 6px 9px !important; font-size: 11px !important; }
}

/* Mobile shell: header-like sidebar, nav opens below it. */
@media (max-width: 900px) {
    .layout {
        display: block !important;
        width: 100% !important;
        min-height: 100dvh !important;
    }
    .sidebar {
        position: sticky !important;
        top: 0 !important;
        z-index: 5000 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        padding: 9px 12px !important;
        overflow: visible !important;
    }
    .brand { margin: 0 !important; min-height: 44px !important; padding-right: 52px !important; }
    .brand-image { width: 36px !important; height: 36px !important; min-width: 36px !important; }
    .sidebar-toggle { display: grid !important; }
    .sidebar.sidebar-open .sidebar-nav {
        max-height: calc(100dvh - 135px) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }
    .main,
    .main:has(.beta-dashboard-page),
    .main:has(.reports-page),
    .main:has(.warnings-page) {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        padding: 10px !important;
        overflow-x: hidden !important;
    }
}

/* ------------------------- Universal page flow ---------------------------- */
.main > .page,
.main > section,
.main > .beta-dashboard-page,
.main > .reports-page,
.main > .warnings-page,
.beta-shell,
.reports-page,
.warnings-page {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-inline: 0 !important;
}

.card,
.stat-card,
.login-box,
.login-hero-card {
    max-width: 100%;
}

.page-head,
.report-page-heading,
.card-title-row,
.dashboard-toolbar,
.player-toolbar,
.map-toolbar,
.discord-page-head,
.changelog-version-row,
.team-hierarchy-toolbar,
.team-home-org-heading,
.team-panel-title-row {
    min-width: 0 !important;
    max-width: 100% !important;
}

/* Standard two/three-column forms stay readable instead of squeezing. */
.form-two,
.create-report-grid,
.ticket-info-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.form-three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 1000px) {
    .form-three { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
}
@media (max-width: 700px) {
    .form-two,
    .form-three,
    .create-report-grid,
    .ticket-info-grid { grid-template-columns: 1fr !important; }
    .create-report-grid .span-2 { grid-column: auto !important; }
}

/* Tables are allowed to pan inside their own card; the website itself never pans. */
.table-responsive,
.small-table-wrap,
.report-table-card,
.discord-links-table,
.warnings-page .dashboard-warning-list,
.card:has(> table),
.card:has(.small-table) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

/* ----------------------------- Login/setup -------------------------------- */
.login-body {
    width: 100% !important;
    min-height: 100dvh !important;
    height: auto !important;
    padding: clamp(12px, 3vw, 28px) !important;
    align-items: center !important;
    justify-content: center !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}
.login-shell {
    width: min(980px, 100%) !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: auto !important;
    gap: clamp(12px, 1.4vw, 18px) !important;
}
.login-shell-centered {
    width: min(520px, 100%) !important;
    grid-template-columns: minmax(0,1fr) !important;
}
.login-box,
.login-box-unified,
.login-hero-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding: clamp(18px, 3vw, 32px) !important;
}
.login-box form,
.login-box label,
.login-box input,
.login-box button,
.discord-login-button {
    width: 100% !important;
    max-width: 100% !important;
}
.login-brand-center img {
    width: clamp(56px, 10vw, 76px) !important;
    height: clamp(56px, 10vw, 76px) !important;
}
.login-brand-center h1 {
    font-size: clamp(23px, 5vw, 30px) !important;
    overflow-wrap: anywhere;
}
.login-brand-center p,
.login-box small { overflow-wrap: anywhere !important; word-break: normal !important; }

@media (max-width: 900px) {
    .login-shell,
    .setup-shell { grid-template-columns: 1fr !important; }
    .login-hero-card { min-height: 240px !important; }
}
@media (max-width: 540px) {
    .login-body { padding: 10px !important; align-items: flex-start !important; }
    .login-shell { margin-block: auto !important; }
    .login-box,
    .login-box-unified,
    .login-hero-card { padding: 17px !important; border-radius: 16px !important; }
    .login-divider-label { gap: 8px !important; }
}
@media (max-height: 720px) and (min-width: 541px) {
    .login-body { align-items: flex-start !important; padding-block: 12px !important; }
    .login-shell { margin-block: auto !important; }
    .login-hero-card { min-height: 300px !important; }
    .login-brand-center { margin-bottom: 10px !important; }
    .login-brand-center img { width: 54px !important; height: 54px !important; }
    .login-divider-label { margin-top: 14px !important; }
    .login-box label { margin-top: 10px !important; }
    .login-box input { padding-block: 10px !important; }
}

/* ----------------------------- Dashboard --------------------------------- */
body.page-dashboard .dashboard-page {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
}
body.page-dashboard .dashboard-board-grid,
body.page-dashboard .market-ranking-grid,
body.page-dashboard .dashboard-map-warning-grid {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}
body.page-dashboard .economy-combined-card,
body.page-dashboard .admin-warning-combined-card,
body.page-dashboard .first-connect-card,
body.page-dashboard .market-ranking-grid > .card,
body.page-dashboard .dashboard-map-warning-grid > .card {
    min-width: 0 !important;
    max-width: 100% !important;
}
body.page-dashboard .state-equation-row {
    grid-template-columns: 16px minmax(0,1fr) minmax(76px,auto) !important;
}
body.page-dashboard .state-equation-row strong,
body.page-dashboard .state-total,
body.page-dashboard .rank-values,
body.page-dashboard .admin-event-stats > div {
    min-width: 0 !important;
    max-width: 100% !important;
}
body.page-dashboard .state-total {
    font-size: clamp(22px, 2.2cqw, 34px) !important;
    white-space: nowrap !important;
}
body.page-dashboard .rank-name,
body.page-dashboard .connection-row strong,
body.page-dashboard .connection-row small {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/* ------------------------------- Spieler --------------------------------- */
body.page-players .main { container-type: inline-size; container-name: lp-players-main; }
body.page-players .page,
body.page-players .player-list,
body.page-players .player-detail-page-clean,
body.page-players .player-detail-actions-wrap,
body.page-players .player-detail-window-wrap {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}
body.page-players:not(.player-detail-mode) .player-row {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: minmax(0,1fr) minmax(170px,28%) !important;
}
body.page-players .player-row-main,
body.page-players .player-row-right,
body.page-players .player-name-line {
    min-width: 0 !important;
}
body.page-players .player-row-main strong,
body.page-players .player-row-right strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
@container lp-players-main (max-width: 850px) {
    body.page-players:not(.player-detail-mode) .player-toolbar,
    body.page-players:not(.player-detail-mode) .player-row {
        grid-template-columns: 1fr !important;
    }
    body.page-players:not(.player-detail-mode) .player-row-right { text-align: left !important; }
    body.page-players.player-detail-mode .player-detail-window-card .detail-window-grid {
        grid-template-columns: repeat(2,minmax(0,1fr)) !important;
    }
}
@container lp-players-main (max-width: 560px) {
    body.page-players.player-detail-mode .player-detail-window-card .detail-window-grid,
    body.page-players.player-detail-mode .record-facts-grid,
    body.page-players.player-detail-mode .record-kpi-grid,
    body.page-players.player-detail-mode .record-money-grid,
    body.page-players.player-detail-mode .live-stats-grid,
    body.page-players.player-detail-mode .combat-facts-grid {
        grid-template-columns: 1fr !important;
    }
}

/* ------------------------------- Live Map -------------------------------- */
body.page-map .main { container-type: inline-size; container-name: lp-map-main; }
body.page-map .page-live-map-clean,
body.page-map .live-map-workspace,
body.page-map .live-map-main-card,
body.page-map .live-map-player-card {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}
@container lp-map-main (min-width: 960px) {
    body.page-map { height: 100dvh !important; overflow: hidden !important; }
    body.page-map .layout,
    body.page-map .main { height: 100dvh !important; min-height: 0 !important; overflow: hidden !important; }
    body.page-map .page-live-map-clean { height: 100% !important; min-height: 0 !important; overflow: hidden !important; }
    body.page-map .live-map-workspace {
        height: 100% !important;
        min-height: 0 !important;
        grid-template-columns: minmax(0,1.55fr) minmax(300px,.65fr) !important;
        gap: 12px !important;
        overflow: hidden !important;
    }
    body.page-map .live-map-main-card,
    body.page-map .live-map-player-card,
    body.page-map .lp-map,
    body.page-map .lp-map-canvas {
        height: 100% !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }
    body.page-map .live-map-player-content { overflow-y: auto !important; overflow-x: hidden !important; }
}
@container lp-map-main (max-width: 959px) {
    body.page-map { height: auto !important; overflow-y: auto !important; }
    body.page-map .layout,
    body.page-map .main,
    body.page-map .page-live-map-clean,
    body.page-map .live-map-workspace { height: auto !important; min-height: 0 !important; overflow: visible !important; }
    body.page-map .live-map-workspace { grid-template-columns: 1fr !important; }
    body.page-map .live-map-main-card { height: clamp(380px,60dvh,620px) !important; min-height: 360px !important; }
    body.page-map .live-map-player-card { height: auto !important; min-height: 320px !important; }
}

/* ------------------------------- Reports --------------------------------- */
.reports-page .report-toolbar,
.reports-page .report-page-heading {
    width: 100% !important;
    max-width: 100% !important;
}
.reports-page .report-search { min-width: 0 !important; width: min(360px,100%) !important; }
.reports-page .report-table-card { max-width: 100% !important; }
@media (max-width: 1050px) {
    .reports-page .report-toolbar,
    .reports-page .report-page-heading { align-items: stretch !important; flex-direction: column !important; }
    .reports-page .report-search { width: 100% !important; }
}
@media (max-width: 620px) {
    .reports-page .report-filters,
    .reports-page .report-view-tabs { width: 100% !important; display: grid !important; grid-template-columns: 1fr 1fr !important; }
    .reports-page .report-filters > *,
    .reports-page .report-view-tabs > * { width: 100% !important; min-width: 0 !important; }
}

/* ------------------------ Settings / DB / Discord ------------------------- */
.settings-grid,
.settings-compact-grid,
.changelog-layout,
.discord-overview-grid,
.discord-main-grid,
.discord-automation-grid,
.discord-rule-form,
.discord-metric-grid,
.discord-health-stats {
    max-width: 100% !important;
    min-width: 0 !important;
}
@media (max-width: 1180px) {
    .settings-grid,
    .settings-compact-grid,
    .changelog-layout,
    .discord-overview-grid,
    .discord-main-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 760px) {
    .discord-automation-grid,
    .discord-rule-form,
    .discord-metric-grid,
    .discord-health-stats { grid-template-columns: 1fr !important; }
}

/* ----------------------------- Warnings ---------------------------------- */
.warnings-page .dashboard-warning-columns,
.warnings-page .dashboard-warning-row { min-width: 0 !important; }
@media (max-width: 1100px) {
    .warnings-page .dashboard-warning-columns { display: none !important; }
    .warnings-page .dashboard-warning-row {
        grid-template-columns: minmax(0,1fr) auto !important;
        gap: 8px 12px !important;
        align-items: start !important;
    }
    .warnings-page .dashboard-warning-badges,
    .warnings-page .warning-check-form,
    .warnings-page .warning-reviewed-badge { grid-column: 1 / -1 !important; }
}

/* ----------------------------- Team pages -------------------------------- */
body.page-team_hierarchy .main { container-type: inline-size; container-name: lp-team-main; }
.team-hierarchy-page,
.team-hierarchy-shell,
.team-hierarchy-main,
.team-hierarchy-canvas,
.team-area-overview,
.team-home-org,
.team-hierarchy-overview,
.team-hierarchy-focus {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
}
.team-area-row { max-width: 100% !important; }
.team-home-org-tree,
.team-hierarchy-tree,
.team-focus-tree {
    max-width: 100% !important;
    overflow: auto !important;
    overscroll-behavior: contain;
}
@container lp-team-main (max-width: 900px) {
    .team-area-row { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
    .team-home-org-heading { flex-direction: column !important; align-items: stretch !important; }
    .team-home-org-actions { width: 100% !important; }
}
@container lp-team-main (max-width: 560px) {
    .team-area-row { grid-template-columns: 1fr !important; }
    .team-home-org-actions { display: grid !important; grid-template-columns: 1fr !important; }
}

/* ------------------------------- Dialogs --------------------------------- */
dialog,
.ticket-dialog,
.create-report-dialog,
.changelog-confirm-window,
.lp-history-dialog,
.player-manipulation-dialog,
.team-role-modal-card,
.team-assignment-modal-card,
.team-board-modal-card,
.team-area-modal-card,
.team-delete-modal-card,
.team-deputy-board-modal-card {
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100dvh - 24px) !important;
}
.ticket-dialog-frame,
.ticket-modal-grid,
.changelog-confirm-body,
.player-manipulation-body,
.team-assignment-list,
.team-board-editor,
.team-deputy-board-list {
    max-width: 100% !important;
}
@media (max-width: 700px) {
    dialog,
    .ticket-dialog,
    .create-report-dialog,
    .changelog-confirm-window,
    .lp-history-dialog,
    .player-manipulation-dialog,
    .team-role-modal-card,
    .team-assignment-modal-card,
    .team-board-modal-card,
    .team-area-modal-card,
    .team-delete-modal-card,
    .team-deputy-board-modal-card {
        width: calc(100vw - 12px) !important;
        max-width: calc(100vw - 12px) !important;
        max-height: calc(100dvh - 12px) !important;
        border-radius: 14px !important;
    }
}

/* Hide rails everywhere while keeping wheel/touch scrolling available. */
html,
body,
.sidebar-nav,
.table-responsive,
.small-table-wrap,
.report-table-card,
.discord-links-table,
.team-hierarchy-tree,
.team-home-org-tree,
.team-focus-tree,
.team-hierarchy-canvas,
.team-area-overview,
.ticket-modal-grid,
.dialog-list,
.dashboard-warning-list,
.live-map-player-content,
.player-manipulation-body,
.changelog-confirm-body {
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar,
.sidebar-nav::-webkit-scrollbar,
.table-responsive::-webkit-scrollbar,
.small-table-wrap::-webkit-scrollbar,
.report-table-card::-webkit-scrollbar,
.discord-links-table::-webkit-scrollbar,
.team-hierarchy-tree::-webkit-scrollbar,
.team-home-org-tree::-webkit-scrollbar,
.team-focus-tree::-webkit-scrollbar,
.team-hierarchy-canvas::-webkit-scrollbar,
.team-area-overview::-webkit-scrollbar,
.ticket-modal-grid::-webkit-scrollbar,
.dialog-list::-webkit-scrollbar,
.dashboard-warning-list::-webkit-scrollbar,
.live-map-player-content::-webkit-scrollbar,
.player-manipulation-body::-webkit-scrollbar,
.changelog-confirm-body::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
}

/* ========================================================================== */
/* v39 – authentication/start screens: true viewport-responsive sizing        */
/* ========================================================================== */

/*
 * v38 still capped the centered login at 520px on every desktop.  These
 * overrides intentionally scale the authentication surface with the available
 * viewport while keeping readable min/max bounds.
 */
.login-body {
    min-height: 100svh !important;
    min-height: 100dvh !important;
    box-sizing: border-box !important;
    padding-inline: clamp(12px, 3.2vw, 64px) !important;
    padding-block: clamp(12px, 3.2vh, 48px) !important;
}

/* Normal login + forced password page */
.login-shell-centered {
    width: clamp(360px, 42vw, 680px) !important;
    max-width: calc(100vw - clamp(24px, 6.4vw, 128px)) !important;
    min-width: 0 !important;
}

.login-shell-centered .login-box,
.login-shell-centered .login-box-unified {
    padding: clamp(22px, 2.4vw, 44px) !important;
    border-radius: clamp(16px, 1.45vw, 26px) !important;
}

.login-shell-centered .login-brand-center {
    margin-bottom: clamp(14px, 1.5vw, 24px) !important;
}

.login-shell-centered .login-brand-center img {
    width: clamp(62px, 5.2vw, 96px) !important;
    height: clamp(62px, 5.2vw, 96px) !important;
    padding: clamp(7px, .55vw, 11px) !important;
    border-radius: clamp(15px, 1.15vw, 22px) !important;
}

.login-shell-centered .login-brand-center span {
    margin-top: clamp(8px, .65vw, 13px) !important;
    font-size: clamp(11px, .72vw, 14px) !important;
}

.login-shell-centered .login-brand-center h1 {
    margin-block: clamp(4px, .35vw, 7px) clamp(7px, .55vw, 11px) !important;
    font-size: clamp(25px, 2vw, 38px) !important;
    line-height: 1.08 !important;
}

.login-shell-centered .login-brand-center p {
    font-size: clamp(13px, .9vw, 16px) !important;
    line-height: 1.5 !important;
}

.login-shell-centered .login-box label {
    margin-top: clamp(11px, .9vw, 17px) !important;
    margin-bottom: clamp(5px, .45vw, 8px) !important;
    font-size: clamp(12px, .82vw, 15px) !important;
}

.login-shell-centered .login-box input,
.login-shell-centered .login-box button,
.login-shell-centered .discord-login-button {
    min-height: clamp(44px, 3.2vw, 56px) !important;
    padding-inline: clamp(12px, 1vw, 18px) !important;
    padding-block: clamp(10px, .8vw, 14px) !important;
    font-size: clamp(13px, .86vw, 16px) !important;
    border-radius: clamp(10px, .7vw, 13px) !important;
}

.login-shell-centered .login-divider-label {
    margin-block: clamp(16px, 1.35vw, 25px) clamp(4px, .35vw, 7px) !important;
    font-size: clamp(10px, .68vw, 12px) !important;
}

.login-shell-centered .login-box small {
    margin-top: clamp(11px, .9vw, 17px) !important;
    font-size: clamp(11px, .74vw, 13px) !important;
    line-height: 1.45 !important;
}

/* Setup/start screen: two columns also grow on larger monitors. */
.setup-shell {
    width: clamp(760px, 76vw, 1180px) !important;
    max-width: calc(100vw - clamp(24px, 6.4vw, 128px)) !important;
    grid-template-columns: minmax(280px, .88fr) minmax(390px, 1.12fr) !important;
    gap: clamp(14px, 1.5vw, 26px) !important;
}

.setup-shell .login-hero-card,
.setup-shell .login-box {
    padding: clamp(22px, 2vw, 38px) !important;
    border-radius: clamp(18px, 1.35vw, 26px) !important;
}

.setup-shell .login-hero-card {
    min-height: clamp(390px, 58vh, 620px) !important;
}

.setup-shell .login-hero-card img {
    width: clamp(72px, 5.2vw, 104px) !important;
    height: clamp(72px, 5.2vw, 104px) !important;
}

.setup-shell .login-hero-card h1 {
    font-size: clamp(32px, 3.2vw, 58px) !important;
}

.setup-shell .login-box h2 {
    font-size: clamp(24px, 1.65vw, 32px) !important;
}

.setup-shell .login-box input,
.setup-shell .login-box textarea,
.setup-shell .login-box select,
.setup-shell .login-box button {
    font-size: clamp(13px, .82vw, 15px) !important;
}

/* On medium laptop widths the login stays generous but never dominates. */
@media (max-width: 1180px) {
    .login-shell-centered {
        width: clamp(380px, 50vw, 570px) !important;
    }
    .setup-shell {
        width: min(920px, calc(100vw - 36px)) !important;
    }
}

/* Stack setup only when two readable columns no longer fit. */
@media (max-width: 820px) {
    .setup-shell {
        width: min(620px, 100%) !important;
        grid-template-columns: 1fr !important;
    }
    .setup-shell .login-hero-card {
        min-height: 230px !important;
    }
}

@media (max-width: 620px) {
    .login-body {
        padding: 10px !important;
        align-items: center !important;
    }
    .login-shell-centered,
    .setup-shell {
        width: 100% !important;
        max-width: 100% !important;
    }
    .login-shell-centered .login-box,
    .login-shell-centered .login-box-unified,
    .setup-shell .login-box,
    .setup-shell .login-hero-card {
        padding: clamp(16px, 5vw, 22px) !important;
        border-radius: 16px !important;
    }
    .login-shell-centered .login-brand-center img {
        width: clamp(54px, 18vw, 68px) !important;
        height: clamp(54px, 18vw, 68px) !important;
    }
    .login-shell-centered .login-brand-center h1 {
        font-size: clamp(23px, 8vw, 29px) !important;
    }
}

/* Short laptop windows: fit vertically without making the card permanently tiny. */
@media (max-height: 760px) and (min-width: 621px) {
    .login-body { padding-block: 10px !important; }
    .login-shell-centered .login-box,
    .login-shell-centered .login-box-unified { padding-block: 18px !important; }
    .login-shell-centered .login-brand-center { margin-bottom: 8px !important; }
    .login-shell-centered .login-brand-center img { width: 52px !important; height: 52px !important; }
    .login-shell-centered .login-brand-center h1 { font-size: 25px !important; }
    .login-shell-centered .login-brand-center p { font-size: 12px !important; }
    .login-shell-centered .login-divider-label { margin-block: 10px 2px !important; }
    .login-shell-centered .login-box label { margin-top: 8px !important; }
    .login-shell-centered .login-box input,
    .login-shell-centered .login-box button,
    .login-shell-centered .discord-login-button { min-height: 40px !important; padding-block: 8px !important; }
}

/* ========================================================================== */
/* v42 – Live Map: Desktop-Proportionen gezielt wiederherstellen              */
/* ========================================================================== */
/* Die globale Responsive-Runde hatte die Karte auf großen Displays zu stark
   verbreitert und die Spielerakte zu einer schmalen Restspalte gemacht.
   Live Map bleibt deshalb bewusst als eigener Workspace behandelt. */
body.page-map .main {
    container-type: inline-size;
    container-name: lp-map-main-v42;
}

@container lp-map-main-v42 (min-width: 1180px) {
    body.page-map,
    body.page-map .layout,
    body.page-map .main {
        height: 100dvh !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    body.page-map .main {
        padding-top: 14px !important;
        padding-bottom: 14px !important;
    }

    body.page-map .page-live-map-clean,
    body.page-map .live-map-workspace,
    body.page-map .live-map-main-card,
    body.page-map .live-map-player-card {
        height: 100% !important;
        min-height: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body.page-map .live-map-workspace {
        display: grid !important;
        /* Nahe am ursprünglichen Layout: Map und Spielerakte bewusst ausgewogen. */
        grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr) !important;
        gap: 14px !important;
        overflow: hidden !important;
    }

    body.page-map .live-map-main-card {
        padding: 12px !important;
        overflow: hidden !important;
    }

    body.page-map .live-map-player-card {
        padding: 0 !important;
        overflow: hidden !important;
    }

    body.page-map .lp-map {
        width: 100% !important;
        height: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        max-width: 100% !important;
        max-height: 100% !important;
    }

    /* Wichtig: Die JS-Fit-Logik bestimmt die eigentliche Kartengröße anhand
       des Bildseitenverhältnisses. Responsive CSS darf den Canvas nicht mehr
       auf die gesamte Spalte zwingen. */
    body.page-map .lp-map-canvas {
        max-width: none !important;
        max-height: none !important;
    }

    body.page-map .live-map-player-content {
        height: 100% !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        padding: 20px !important;
    }
}

/* Etwas schmalere Desktop-/Laptop-Flächen: weiterhin nebeneinander, aber die
   Spielerakte bleibt breit genug für ihre Detailkarten. */
@container lp-map-main-v42 (min-width: 900px) and (max-width: 1179px) {
    body.page-map,
    body.page-map .layout,
    body.page-map .main {
        height: 100dvh !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    body.page-map .page-live-map-clean,
    body.page-map .live-map-workspace {
        height: 100% !important;
        min-height: 0 !important;
    }

    body.page-map .live-map-workspace {
        display: grid !important;
        grid-template-columns: minmax(0, 1.12fr) minmax(340px, .88fr) !important;
        gap: 12px !important;
        overflow: hidden !important;
    }

    body.page-map .live-map-main-card,
    body.page-map .live-map-player-card,
    body.page-map .lp-map {
        height: 100% !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    body.page-map .live-map-player-content {
        height: 100% !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        padding: 15px !important;
    }
}

/* Erst wenn für zwei lesbare Spalten wirklich kein Platz mehr vorhanden ist,
   wird sauber gestapelt. */
@container lp-map-main-v42 (max-width: 899px) {
    body.page-map {
        height: auto !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    body.page-map .layout,
    body.page-map .main,
    body.page-map .page-live-map-clean,
    body.page-map .live-map-workspace {
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
    }

    body.page-map .live-map-workspace {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    body.page-map .live-map-main-card {
        height: clamp(400px, 62dvh, 640px) !important;
        min-height: 380px !important;
    }

    body.page-map .live-map-player-card {
        height: auto !important;
        min-height: 320px !important;
    }
}

/* v42 map aspect-ratio fix: these declarations intentionally come last.
   Earlier responsive layers used width/height:100%!important on the canvas,
   which overrode map.js and stretched the 1080x1620 source image. */
body.page-map .lp-map-canvas {
    width: var(--lp-map-fit-width, 520px) !important;
    height: var(--lp-map-fit-height, 780px) !important;
    max-width: none !important;
    max-height: none !important;
    left: 50% !important;
    top: 50% !important;
}

/* v48 – authoritative Spieler-verwalten responsive rules (loaded last) */
.page-players .player-manipulation-dialog{
    width:min(1560px,calc(100vw - 32px))!important;
    height:min(94dvh,980px)!important;
    max-width:calc(100vw - 32px)!important;
    max-height:calc(100dvh - 32px)!important;
}
.page-players .player-manipulation-body,
.page-players .manipulation-sidebar,
.page-players .manipulation-content,
.page-players .manipulation-workspace{
    scrollbar-width:none!important;
    -ms-overflow-style:none!important;
}
.page-players .player-manipulation-body::-webkit-scrollbar,
.page-players .manipulation-sidebar::-webkit-scrollbar,
.page-players .manipulation-content::-webkit-scrollbar,
.page-players .manipulation-workspace::-webkit-scrollbar{
    display:none!important;
    width:0!important;
    height:0!important;
}
@media(max-width:1050px){
    .page-players .player-manipulation-dialog{width:calc(100vw - 20px)!important;height:calc(100dvh - 20px)!important;max-width:calc(100vw - 20px)!important;max-height:calc(100dvh - 20px)!important}
}
@media(max-width:700px){
    .page-players .player-manipulation-dialog{width:calc(100vw - 12px)!important;height:calc(100dvh - 12px)!important;max-width:calc(100vw - 12px)!important;max-height:calc(100dvh - 12px)!important}
}

/* v49 – final Spieler-verwalten layout override */
.page-players .player-manipulation-modal{
    padding:18px!important;
}
.page-players .player-manipulation-dialog{
    width:min(1440px,calc(100vw - 36px))!important;
    height:min(92dvh,920px)!important;
    max-width:calc(100vw - 36px)!important;
    max-height:calc(100dvh - 36px)!important;
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
    border-radius:18px!important;
    background:linear-gradient(180deg,#0d1627 0%,#09111f 100%)!important;
}
.page-players .player-manipulation-head{
    flex:0 0 auto!important;
    min-height:72px!important;
    padding:17px 22px!important;
    border-bottom:1px solid rgba(148,163,184,.13)!important;
    background:rgba(13,22,39,.96)!important;
    backdrop-filter:blur(12px)!important;
}
.page-players .player-manipulation-body{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow:hidden!important;
    padding:0!important;
}
.page-players .manipulation-workspace{
    display:block!important;
    height:100%!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:20px 22px 28px!important;
    scrollbar-width:none!important;
    overscroll-behavior:contain!important;
}
.page-players .manipulation-workspace::-webkit-scrollbar{
    display:none!important;
    width:0!important;
    height:0!important;
}
.page-players .manipulation-sidebar{
    display:block!important;
    min-width:0!important;
    overflow:visible!important;
    padding:0!important;
    border:0!important;
    background:none!important;
}
.page-players .manipulation-current-summary{
    margin:0!important;
    padding:16px!important;
    border:1px solid rgba(96,165,250,.18)!important;
    border-radius:16px!important;
    background:linear-gradient(135deg,rgba(30,64,175,.09),rgba(15,23,42,.42))!important;
}
.page-players .manipulation-summary-grid{
    display:grid!important;
    grid-template-columns:repeat(8,minmax(0,1fr))!important;
    gap:9px!important;
}
.page-players .manipulation-summary-grid>div{
    min-width:0!important;
    min-height:62px!important;
    padding:10px 12px!important;
    border:1px solid rgba(148,163,184,.10)!important;
    border-radius:12px!important;
    background:rgba(2,6,23,.27)!important;
}
.page-players .manipulation-summary-grid span{
    display:block!important;
    overflow:hidden!important;
    color:#7f8da3!important;
    font-size:9px!important;
    font-weight:800!important;
    letter-spacing:.05em!important;
    text-transform:uppercase!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
}
.page-players .manipulation-summary-grid strong{
    display:block!important;
    margin-top:5px!important;
    color:#f8fafc!important;
    font-size:14px!important;
    line-height:1.2!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
}
.page-players .manipulation-section-nav{
    position:sticky!important;
    top:-1px!important;
    z-index:5!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:10px!important;
    margin:16px 0 18px!important;
    padding:10px!important;
    border:1px solid rgba(148,163,184,.10)!important;
    border-radius:15px!important;
    background:rgba(9,17,31,.94)!important;
    backdrop-filter:blur(12px)!important;
}
.page-players .manipulation-nav-label{display:none!important}
.page-players button.manipulation-section-tab{
    appearance:none!important;
    -webkit-appearance:none!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:11px!important;
    width:100%!important;
    min-height:56px!important;
    margin:0!important;
    padding:9px 13px!important;
    border:1px solid rgba(148,163,184,.14)!important;
    border-radius:12px!important;
    background:#101a2c!important;
    color:#cbd5e1!important;
    box-shadow:none!important;
    font:inherit!important;
    text-align:left!important;
    cursor:pointer!important;
}
.page-players button.manipulation-section-tab:hover{
    border-color:rgba(96,165,250,.35)!important;
    background:#13213a!important;
}
.page-players button.manipulation-section-tab.is-active{
    border-color:rgba(96,165,250,.55)!important;
    background:linear-gradient(135deg,#16366a,#14284b)!important;
    color:#fff!important;
    box-shadow:0 8px 24px rgba(37,99,235,.12)!important;
}
.page-players .manipulation-tab-icon{
    flex:0 0 34px!important;
    display:grid!important;
    place-items:center!important;
    width:34px!important;
    height:34px!important;
    border-radius:9px!important;
    background:rgba(59,130,246,.12)!important;
    color:#93c5fd!important;
    font-size:15px!important;
    font-weight:900!important;
}
.page-players .manipulation-section-tab strong{
    display:block!important;
    color:inherit!important;
    font-size:13px!important;
    line-height:1.2!important;
}
.page-players .manipulation-section-tab small{
    display:block!important;
    margin-top:3px!important;
    color:#8090a7!important;
    font-size:10px!important;
    line-height:1.2!important;
}
.page-players .manipulation-content{
    min-width:0!important;
    overflow:visible!important;
    padding:0!important;
}
.page-players .manipulation-content-head{
    display:none!important;
}
.page-players .manipulation-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:16px!important;
    align-items:stretch!important;
}
.page-players .manipulation-card{
    display:flex!important;
    flex-direction:column!important;
    min-width:0!important;
    min-height:300px!important;
    margin:0!important;
    padding:18px!important;
    border:1px solid rgba(148,163,184,.13)!important;
    border-radius:15px!important;
    background:linear-gradient(180deg,rgba(15,23,42,.78),rgba(10,17,31,.92))!important;
}
.page-players .manipulation-card[hidden]{display:none!important}
.page-players .manipulation-card h4{
    margin:0 0 14px!important;
    color:#f8fafc!important;
    font-size:15px!important;
}
.page-players .manipulation-card label{
    display:block!important;
    margin-top:11px!important;
    color:#8fa0b8!important;
    font-size:10px!important;
    font-weight:750!important;
}
.page-players .manipulation-card input:not([type=checkbox]),
.page-players .manipulation-card select{
    width:100%!important;
    min-height:44px!important;
    margin-top:6px!important;
    border:1px solid rgba(148,163,184,.15)!important;
    border-radius:10px!important;
    background:#0b1424!important;
    color:#e5edf8!important;
    font-size:13px!important;
}
.page-players .manipulation-card .muted{
    color:#8796ac!important;
    line-height:1.45!important;
}
.page-players .lp-manipulation-action{
    margin-top:auto!important;
    min-height:44px!important;
    border-radius:10px!important;
}
.page-players .manipulation-feedback{
    margin:14px 0 0!important;
}
@media(max-width:1250px){
    .page-players .manipulation-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media(max-width:900px){
    .page-players .player-manipulation-modal{padding:8px!important}
    .page-players .player-manipulation-dialog{width:calc(100vw - 16px)!important;height:calc(100dvh - 16px)!important;max-width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px)!important;border-radius:14px!important}
    .page-players .manipulation-workspace{padding:14px!important}
    .page-players .manipulation-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
    .page-players .manipulation-section-nav{grid-template-columns:1fr!important;position:static!important;padding:8px!important}
    .page-players button.manipulation-section-tab{min-height:52px!important}
    .page-players .manipulation-grid{grid-template-columns:1fr!important}
    .page-players .manipulation-card{min-height:0!important}
}
@media(max-width:520px){
    .page-players .player-manipulation-head{min-height:64px!important;padding:13px 14px!important}
    .page-players .manipulation-summary-grid{grid-template-columns:1fr 1fr!important;gap:7px!important}
    .page-players .manipulation-summary-grid>div{min-height:56px!important;padding:9px!important}
    .page-players .manipulation-tab-icon{display:none!important}
}

/* ========================================================================== */
/* v51 – Login im ZF-Team-Raster moderat vergrößert + Autofill-Update */
/* ========================================================================== */
/*
 * Der Login skaliert auf Desktop bewusst NICHT mehr mit vw/vh. Dadurch wirkt
 * die Login-Karte auf Full-HD, WQHD und 4K nahezu gleich groß. Nur auf kleinen
 * Displays wird sie auf die verfügbare Breite reduziert.
 */
body.login-body.login-body-compact {
    min-height: 100vh !important;
    min-height: 100dvh !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 !important;
    padding: 18px !important;
    overflow: auto !important;
    background:
        radial-gradient(circle at 22% 12%, rgba(37, 99, 235, .12), transparent 30%),
        linear-gradient(135deg, #0c1425 0%, #101a2e 56%, #0b1322 100%) !important;
}

body.login-body.login-body-compact .login-shell-centered {
    width: min(450px, calc(100vw - 28px)) !important;
    max-width: 450px !important;
    min-width: 0 !important;
    margin: 0 !important;
    grid-template-columns: 1fr !important;
}

body.login-body.login-body-compact .login-box,
body.login-body.login-body-compact .login-box-unified {
    width: 100% !important;
    max-width: none !important;
    padding: 28px 28px 25px !important;
    border-radius: 0 !important;
    background: rgba(16, 26, 46, .96) !important;
    border: 1px solid rgba(148, 163, 184, .16) !important;
    box-shadow: 0 24px 72px rgba(0, 0, 0, .34) !important;
    backdrop-filter: blur(12px) !important;
}

body.login-body.login-body-compact .login-brand-center {
    margin: 0 0 17px !important;
    text-align: center !important;
}

body.login-body.login-body-compact .login-brand-center img {
    width: 66px !important;
    height: 66px !important;
    padding: 6px !important;
    object-fit: contain !important;
    border-radius: 0 !important;
    background: transparent !important;
}

body.login-body.login-body-compact .login-brand-center span {
    margin-top: 8px !important;
    color: #93c5fd !important;
    font-size: 11px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: 2.6px !important;
    text-transform: uppercase !important;
}

body.login-body.login-body-compact .login-brand-center h1 {
    margin: 8px 0 0 !important;
    color: #f8fafc !important;
    font-size: 24px !important;
    line-height: 1.12 !important;
    font-weight: 900 !important;
    letter-spacing: 3.4px !important;
}

body.login-body.login-body-compact .login-brand-rule {
    width: 100% !important;
    height: 1px !important;
    margin: 14px 0 11px !important;
    background: rgba(148, 163, 184, .28) !important;
}

body.login-body.login-body-compact .login-brand-center p {
    margin: 0 !important;
    color: #cbd5e1 !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    font-weight: 600 !important;
}

body.login-body.login-body-compact .login-error {
    margin: 0 0 10px !important;
    padding: 10px 12px !important;
    border-radius: 0 !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
}

body.login-body.login-body-compact .discord-login-button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 9px 13px !important;
    border-radius: 0 !important;
    background: #080b10 !important;
    border: 1px solid rgba(255, 255, 255, .06) !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: .2px !important;
}

body.login-body.login-body-compact .discord-login-button:hover {
    filter: brightness(1.12) !important;
    transform: translateY(-1px) !important;
}

body.login-body.login-body-compact .discord-login-button.disabled {
    opacity: .55 !important;
    transform: none !important;
}

body.login-body.login-body-compact .login-divider-label {
    gap: 9px !important;
    margin: 14px 0 4px !important;
    color: #64748b !important;
    font-size: 10.5px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: 1.7px !important;
}

body.login-body.login-body-compact .login-divider-label::before,
body.login-body.login-body-compact .login-divider-label::after {
    background: rgba(148, 163, 184, .22) !important;
}

body.login-body.login-body-compact .login-box form {
    margin: 0 !important;
}

body.login-body.login-body-compact .login-box label {
    margin: 10px 0 5px !important;
    color: #e2e8f0 !important;
    font-size: 10.5px !important;
    line-height: 1.2 !important;
    font-weight: 800 !important;
}

body.login-body.login-body-compact .login-box input {
    width: 100% !important;
    min-height: 38px !important;
    height: 38px !important;
    margin: 0 !important;
    padding: 8px 10px !important;
    border: 1px solid #334155 !important;
    border-radius: 0 !important;
    background: #0d1628 !important;
    color: #f8fafc !important;
    font-size: 12px !important;
    outline: none !important;
}

body.login-body.login-body-compact .login-box input:focus {
    border-color: #60a5fa !important;
    box-shadow: 0 0 0 2px rgba(96, 165, 250, .12) !important;
}

body.login-body.login-body-compact .login-password-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 86px !important;
    gap: 6px !important;
}

body.login-body.login-body-compact .login-password-toggle {
    width: 86px !important;
    min-height: 38px !important;
    height: 38px !important;
    margin: 0 !important;
    padding: 0 8px !important;
    border: 1px solid #334155 !important;
    border-radius: 0 !important;
    background: #182236 !important;
    color: #e5e7eb !important;
    font-size: 11px !important;
    font-weight: 900 !important;
}

body.login-body.login-body-compact .login-local-submit {
    width: 100% !important;
    min-height: 40px !important;
    height: 40px !important;
    margin: 12px 0 0 !important;
    padding: 9px 13px !important;
    border-radius: 0 !important;
    background: #f8fafc !important;
    color: #0f172a !important;
    font-size: 11px !important;
    font-weight: 900 !important;
}

body.login-body.login-body-compact .login-box small {
    margin-top: 12px !important;
    color: #7f8da3 !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}

@media (max-width: 440px) {
    body.login-body.login-body-compact {
        padding: 10px !important;
    }
    body.login-body.login-body-compact .login-shell-centered {
        width: 100% !important;
        max-width: 450px !important;
    }
    body.login-body.login-body-compact .login-box,
    body.login-body.login-body-compact .login-box-unified {
        padding: 18px !important;
    }
}

@media (max-height: 660px) and (min-width: 441px) {
    body.login-body.login-body-compact {
        place-items: start center !important;
        padding-block: 10px !important;
    }
    body.login-body.login-body-compact .login-box,
    body.login-body.login-body-compact .login-box-unified {
        max-height: calc(100dvh - 20px) !important;
        overflow-y: auto !important;
    }
    body.login-body.login-body-compact .login-brand-center img {
        width: 46px !important;
        height: 46px !important;
    }
    body.login-body.login-body-compact .login-brand-center h1 {
        font-size: 18px !important;
    }
}
