body {
    font-family: 'Inter', sans-serif;
    background-color: #05070b;
    color: #f8fafc;
    overflow-x: hidden;
    margin: 0;
    min-height: 100vh;
}

/* Original Roblox Voxel / Blok-univers Baggrund */
.roblox-world-bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -10;
    background: linear-gradient(135deg, #040814 0%, #0d1b3a 50%, #03060c 100%);
    overflow: hidden;
}

/* Svævende Roblox-blokke / Voxel elementer */
.roblox-block {
    position: absolute;
    background: rgba(0, 162, 255, 0.15);
    border: 2px solid rgba(0, 162, 255, 0.4);
    box-shadow: 0 0 15px rgba(0, 162, 255, 0.3);
    animation: floatBlock 10s linear infinite;
}

.block-1 { width: 60px; height: 60px; left: 10%; bottom: -100px; animation-duration: 9s; animation-delay: 0s; }
.block-2 { width: 40px; height: 40px; left: 30%; bottom: -100px; animation-duration: 12s; animation-delay: 2s; border-color: rgba(34, 197, 94, 0.4); background: rgba(34, 197, 94, 0.15); box-shadow: 0 0 15px rgba(34, 197, 94, 0.3); }
.block-3 { width: 80px; height: 80px; left: 60%; bottom: -100px; animation-duration: 15s; animation-delay: 1s; border-color: rgba(234, 179, 8, 0.4); background: rgba(234, 179, 8, 0.15); box-shadow: 0 0 15px rgba(234, 179, 8, 0.3); }
.block-4 { width: 50px; height: 50px; left: 80%; bottom: -100px; animation-duration: 8s; animation-delay: 4s; }
.block-5 { width: 70px; height: 70px; left: 20%; bottom: -100px; animation-duration: 11s; animation-delay: 3s; border-color: rgba(34, 197, 94, 0.4); background: rgba(34, 197, 94, 0.15); }

@keyframes floatBlock {
    0% { transform: translateY(0) rotate(0deg); opacity: 0; }
    20% { opacity: 0.8; }
    80% { opacity: 0.8; }
    100% { transform: translateY(-110vh) rotate(360deg); opacity: 0; }
}

/* Pulsérnde Roblox-lyskugler (Blå i top, grøn i bund som på demo.html) */
.roblox-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(90px);
    opacity: 0.4;
    pointer-events: none;
    animation: orbPulse 8s ease-in-out infinite alternate;
}

.r-orb-1 { width: 40vw; height: 40vw; top: -10%; left: -10%; background: #00a2ff; }
.r-orb-2 { width: 45vw; height: 45vw; bottom: -10%; right: -10%; background: #22c55e; animation-delay: -4s; }

@keyframes orbPulse {
    0% { transform: scale(1); opacity: 0.3; }
    100% { transform: scale(1.25); opacity: 0.5; }
}

.glass-card {
    background: rgba(17, 24, 39, 0.85);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 255, 255, 0.08);
    transform: translateZ(0);
    -webkit-font-smoothing: antialiased;
}

.glass-nav {
    background: rgba(7, 11, 20, 0.85);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.gradient-text {
    background: linear-gradient(135deg, #00a2ff 0%, #22c55e 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.toast-notification {
    transform: translateY(100px);
    opacity: 0;
    transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.toast-notification.show {
    transform: translateY(0);
    opacity: 1;
}

@keyframes pulse-ring {
    0% { transform: scale(0.95); opacity: 0.8; }
    50% { transform: scale(1.05); opacity: 0.4; }
    100% { transform: scale(0.95); opacity: 0.8; }
}
.pulse-badge {
    animation: pulse-ring 2s infinite ease-in-out;
}

/* Gør det indbyggede kalender-ikon lyst/hvidt i mørke temaer */
input[type="datetime-local"]::-webkit-calendar-picker-indicator {
    filter: invert(1) brightness(1.8);
    cursor: pointer;
}