html, body, #root { height: 100%; } body { overflow: hidden; } .appRoot { height: 100vh; display: grid; /* Links: flexibel | Rechts: Notes clamp */ grid-template-columns: minmax(900px, 1fr) clamp(380px, 32vw, 520px); gap: 14px; padding: 14px; box-sizing: border-box; overflow: visible; } /* LEFT COLUMN */ .leftPane { overflow: visible; min-width: 0; display: grid; /* Top | Main | HUD */ grid-template-rows: 68px minmax(360px, 1fr) minmax(160px, 190px); gap: 14px; } .topBarRow { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; min-width: 0; } /* MAIN: Tools | Board | PlayerRail */ .mainRow { min-height: 0; overflow: visible; display: grid; /* Tools bewusst schmaler, Board bekommt Bühne */ grid-template-columns: 260px minmax(560px, 1fr) 92px; gap: 14px; min-width: 0; } /* Tools left of board */ .leftTools { min-width: 0; overflow: hidden; display: grid; align-content: start; } .leftToolsRow { display: grid; grid-template-columns: 1fr; gap: 14px; min-width: 0; } /* Board */ .boardWrap { min-height: 0; overflow: hidden; border-radius: 22px; min-width: 0; position: relative; } /* Dice overlay: under board slightly right */ .diceOverlay { position: absolute; bottom: 14px; right: 18px; width: 220px; pointer-events: none; opacity: 0.98; } /* Player rail: right of board, before notes (tight) */ .playerRail { min-height: 0; border-radius: 22px; border: 1px solid rgba(255,255,255,0.08); background: rgba(0,0,0,0.18); backdrop-filter: blur(10px); box-shadow: 0 16px 50px rgba(0,0,0,0.35); padding: 10px 8px; display: grid; grid-template-rows: auto 1fr; justify-items: center; gap: 10px; overflow: visible; /* 🔥 wichtig */ } .playerRailInner { width: 100%; height: 100%; overflow: visible; /* hier wird wieder sauber gecropped */ border-radius: 18px; /* etwas kleiner als außen */ display: grid; justify-items: center; } .playerRailTitle { font-weight: 900; font-size: 12px; opacity: 0.9; } .playerRailList { min-height: 0; overflow: visible; display: grid; gap: 10px; align-content: start; justify-items: center; padding-top: 4px; } /* HUD */ .playerHud { align-items: stretch; overflow: visible; display: grid; grid-template-columns: 1.1fr 1.7fr 1.1fr; gap: 14px; min-width: 0; } .playerHudMiddle { height: 100%; min-width: 0; min-height: 0; overflow: hidden; display: grid; /* Geheimkarten groß, Hilfkarte etwas kleiner */ grid-template-columns: 1fr 0.78fr; gap: 14px; } /* RIGHT COLUMN */ .notesPane { overflow: hidden; min-width: 0; display: grid; grid-template-rows: auto 1fr; } .notesScroll { min-height: 0; overflow-y: auto; overflow-x: hidden; padding-right: 4px; } /* --- Responsive: shrink gracefully (no scroll outside notes) --- */ @media (max-height: 860px) { .leftPane { grid-template-rows: 64px minmax(300px, 1fr) 150px; } .diceOverlay { bottom: 10px; right: 12px; width: 200px; } } @media (max-width: 1440px) { .appRoot { grid-template-columns: minmax(820px, 1fr) clamp(360px, 34vw, 480px); } .mainRow { grid-template-columns: 240px minmax(520px, 1fr) 88px; } } @media (max-width: 1280px) { .appRoot { grid-template-columns: 1fr clamp(340px, 36vw, 460px); } .mainRow { grid-template-columns: 220px minmax(480px, 1fr) 84px; } } @media (max-width: 1180px) { /* ab hier wird’s eng: tools noch schmäler */ .mainRow { grid-template-columns: 200px minmax(440px, 1fr) 82px; } }